このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1342966104/107
#  [1] 授業単元:C言語プログラム 
#  [2] 問題文: 
#  以下のファイルsdata.txtに入っている商品名、単価、売り上げ個数を1件ずつ読み込んで商品別の売上高を求め、 
#  それらの結果を画面表示するとともに、ファイルodata2.txtに書き込むプログラムを作成せよ。 
#  但し、以下の内容のデータファイルsdata.txtをemacsであらかじめ作成しておくこと。 
#  [sdata.txtの内容](商品名、単価、売り上げ個数) 
#  coffee 250 75 
#  tea 270 52 
#  milk 300 22 
#  juice 350 54 
#  coke 300 36 
#  

'ファイルsdata.txtに入っている商品名、単価、売り上げ個数を1件ずつ読み込んで商品別の売上高を求め、それらの結果を画面表示するとともに、ファイルodata2.txtに書き込む' :-
        open('sdata.txt',read,Instream),
        open('odata2.txt',write,Outstream),
        'Instreamから商品名、単価、売り上げ個数を1件ずつ読み込んで商品別の売上高を求め、それらの結果を画面表示するとともに、Outstreamに書き込む'(Instream,Outstream),
        close(Outstream),
        close(Instream).

'Instreamから商品名、単価、売り上げ個数を1件ずつ読み込んで商品別の売上高を求め、それらの結果を画面表示するとともに、Outstreamに書き込む'(Instream,Outstream) :-
        at_end_of_stream(Instream).
'Instreamから商品名、単価、売り上げ個数を1件ずつ読み込んで商品別の売上高を求め、それらの結果を画面表示するとともに、Outstreamに書き込む'(Instream,Outstream) :-
        '商品名、単価、売り上げ個数を1件ずつ読み込んで商品別の売上高を求め'(Instream,_商品名,_単価,_売り上げ個数,_商品別の売上高),
        'それらの結果を画面表示するとともに、Outstreamに書き込む'(Outstream,_商品名,_単価,_売り上げ個数,_商品別の売上高),
        'Instreamから商品名、単価、売り上げ個数を1件ずつ読み込んで商品別の売上高を求め、それらの結果を画面表示するとともに、Outstreamに書き込む'(Instream,Outstream).

'商品名、単価、売り上げ個数を1件ずつ読み込んで商品別の売上高を求め'(Instream,_商品名,_単価,_売り上げ個数,_商品別の売上高) :-
        get_line(Instream,Line),
        split(Line,[' '],[_商品名,_単価,_売り上げ個数]),
        _商品別の売上高 is _単価 * _売上個数.

'それらの結果を画面表示するとともに、Outstreamに書き込む'(Outstream,_商品名,_単価,_売り上げ個数,_商品別の売上高) :-
        writef('%t %t %t %t\n',[_商品名,_単価,_売り上げ個数,_商品別の売上高]),
        writef(Outstream,'%t %t %t %t\n',[_商品名,_単価,_売り上げ個数,_商品別の売上高]).