このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1335517816/943
#  [1] 授業単元: プログラミング入門  
#  [2] 問題文(含コード&リンク):  
#   
#  1 for文を用いて0.1の二乗、0.2の二乗、0.3の二乗と0.1ずつ10まで増やしていき、その値をファイルdata1.txtに書き出す。 
#  書き出した後で、ファイルからデータを読み込み画面に出力する。 
#   
#   
#  2 a = 3.1, b = 2.9, c = −1.1, d = 5.3の最大値、最小値を求め画面に出力する 
#   

'for文を用いて0.1の二乗、0.2の二乗、0.3の二乗と0.1ずつ10まで増やしていき、その値をファイルdata1.txtに書き出す。書き出した後で、ファイルからデータを読み込み画面に出力する。' :-
        'for文を用いて0.1の二乗、0.2の二乗、0.3の二乗と0.1ずつ10まで増やしていき、その値をファイルdata1.txtに書き出す。',
        '書き出した後で、ファイルからデータを読み込み画面に出力する。'('data1.txt').

'for文を用いて0.1の二乗、0.2の二乗、0.3の二乗と0.1ずつ10まで増やしていき、その値をファイルdata1.txtに書き出す。' :-
        'for文を用いて0.1の二乗、0.2の二乗、0.3の二乗と0.1ずつ10まで増やしていき'(_値ならび),
        'その値をファイルdata1.txtに書き出す。'(_値ならび).        

'for文を用いて0.1の二乗、0.2の二乗、0.3の二乗と0.1ずつ10まで増やしていき'(_値ならび) :-
        findall(_値,(
                    for(0.1,V,10.0,0.1),
                    _値 is V ^ 2),
                _値ならび).

for(_値,_値,_限界値,_) :-
        _値 =< _限界値.
for(S,_値,_限界値,_増分) :-
        S =< _限界値,
        S_2 is S + _増分,
        for(S_2,_値,_限界値,_増分).

'その値をファイルdata1.txtに書き出す。'(_値ならび) :-
        open('data1.txt',write,Outstream),
        書き出す(Outstream,_値ならび),
        close(Outstream).

書き出す(Outstream,[]).
書き出す(Outstream,[_値|R]) :-
        writef(Outstream,'%t\n',[_値]),
        書き出す(Outstream,R).

'書き出した後で、ファイルからデータを読み込み画面に出力する。'(_ファイル) :-
        open(_ファイル,read,Instream),
        データを読み込み画面に出力する(Instream),
        close(Instream).

データを読み込み画面に出力する(Instream) :-
        at_end_of_stream(Instream),!.
データを読み込み画面に出力する(Instream) :-
        get_line(Instream,_値),
        画面に出力する(_値),
        データを読み込み画面に出力する(Instream).

画面に出力する(_値) :-
        writef('%t\n',[_値]).