- 191 名前:デフォルトの名無しさん mailto:sage [2010/07/02(金) 06:10:53 ]
- >>189
% Prolog 問題B 問題B.1 _学籍番号+_氏名+_誕生_月+_誕生_日 :- open('data_b.txt',append,Output), write_formatted(Output,'%t %t %t %t\n',[_学籍番号,_氏名,_誕生_月,_誕生_日]), close(Output). 'data_b.txtを読み込み、4月1日を年初めとして、誕生日の早いもの順にソートし、その結果を「output_b.txt」ファイルに出力する' :- get_split_lines([' '],'data_b.txt',LL), 鍵項目の付加(LL,LL2), 整列(LL2,LL3), 鍵項目を除去しながら出力する(LL3). 鍵項目の付加([],[]) :- !. 鍵項目の付加([[_学籍番号,_氏名,_誕生_月,_誕生_日]|R1],[_誕生_月_2,_誕生_日,_学籍番号,_氏名,_誕生_月,_誕生_日]|R2]) :- '1-3月を13-15月に修正'(_誕生_月,_誕生月_2), 鍵項目の付加(R1,R2). '1-3月を13-15月に修正'(_誕生_月,_誕生月_2) :- _誕生_月 >= 1,_誕生_月 =< 3,_誕生_月_2 is _誕生_月 + 12,!. '1-3月を13-15月に修正'(_誕生_月,_誕生月). 鍵項目を除去しながら出力する([]) :- !. 鍵項目を除去しながら出力する([[_,_|L]|R]) :- open('out_b.txt',append,Output), write_formatted(Output,'%t %t %t月 %t日\n',L), close(Output), 鍵項目を除去しながら出力する(R).
|

|