このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1311089619/327
#  [1] 授業単元:C言語  
#  [2] 問題文(含コード&リンク):http://ime.nu/codepad.org/biBuP97v  
#    20人分の生徒の名前と、5教科(国語、数学、英語、理科、社会)の点数を入力し、 
#    data.txtファイルに保存するプログラムを作成しなさい。( 保存ファイルの書式は、各自で設計すること) 
#  

'20人分の生徒の名前と、5教科(国語、数学、英語、理科、社会)の点数を入力し、data.txtファイルに保存する' :-
        '20人分の生徒の名前と、5教科(国語、数学、英語、理科、社会)の点数を入力し'(_生徒の名前と5教科の点数ならび),
        'data.txtファイルに保存する'(_生徒の名前と5教科の点数ならび).

'20人分の生徒の名前と、5教科(国語、数学、英語、理科、社会)の点数を入力し'(_生徒の名前と5教科の点数ならび) :-
        findall([_名前,_国語,_数学,_英語,_理科,_社会],(
                    '20人分の',
                    生徒の名前と(_名前),
                    '5教科の点数の入力し'(_国語,_数学,_英語,_理科,_社会)),
                _生徒の名前と5教科の点数ならび).

'20人分の' :-
        length(_20人分,20),
        append(L0,[_|_],_20人分),
        length([_|L0],_何人目),
        writef('[%t人目/20人] ',[_何人目]).

生徒の名前と(_名前) :-
        write('生徒の名前 : '),
        readln([_名前]),!.

'5教科の点数の入力し'(_国語,_数学,_英語,_理科,_社会) :-
        write('5教科の点数をカンマ区切りで入力してください : '),
        readln([_国語,_数学,_英語,_理科,_社会]),!.
'5教科の点数の入力し'(_国語,_数学,_英語,_理科,_社会) :-
        write('入力が適切でありませんでした。再入力をお願いします。\n'),
        '5教科の点数の入力し'(_国語,_数学,_英語,_理科,_社会).

'data.txtファイルに保存する'(_生徒の名前と5教科の点数ならび) :-
        open('data.txt',write,Outstream),
        append(_,[_生徒の名前と5教科の点数|R],_生徒の名前と5教科の点数ならび),
        writef(Outstream,'%q,%t,%t,%t,%t,%t\n',_生徒の名前と5教科の点数),
        R = [],
        close(Outstream).