このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1258158172/368
# [1] 授業単元: プログラミング実習
# [2] 問題文(含コード&リンク):
# http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10180.txt
#
# 〜課題5〜
# 次の要領でテストの点数を入力し、それぞれの点数代の人数が何人いるか求めるプログラムを作成しなさい。
#
# 1、テストの点数を入力するガイダンスを用いて次のように出力しなさい:点数を入力しなさい、終了条件:eあるいはE
# 2、fget()を用いて、テストの点数を文字列として入力しなさい
# 3、1で入力した文字列がeあるいはEであるとき、処理2〜5の処理を終了して6の処理を行いなさい
# 4、文字列で入力した点数をint型変数に変換しなさい(atoiを使用しなさい)
# 5、4で変換したint型の点数が0点以上100点以下なら、次のそれぞれの点数代の人数を数えなさい。
# 6,5の結果を表示しなさい。

テストの点数を入力し、それぞれの点数代の人数が何人いるか求める :-
    get_line(Line),
    テストの点数を入力し、それぞれの点数代の人数が何人いるか求める(Line,[0,0,0,0,0,0,0,0,0,0,0],L),
    それぞれの点数台の人数が何人いるか表示(L).

それぞれの点数台の人数が何人いるか表示(L) :-
    append(L1,[M|L2],L),
    length(L1,N),
    write_formatted('%2d~%2d点台は%t人です。\n',[N*10,N*10+9,M]),
    N = 9,
    last(L,M11),
    write_formatted('      100点は%t人です。\n',[M11]).

テストの点数を入力し、それぞれの点数代の人数が何人いるか求める(e,L,L).
テストの点数を入力し、それぞれの点数代の人数が何人いるか求める('E',L,L).
テストの点数を入力し、それぞれの点数代の人数が何人いるか求める(Line,L1,L) :-
    atom_to_term(Line,N,_),
    点数台集計に加算(N,L1,L2),
    get_line(Line2),
    テストの点数を入力し、それぞれの点数代の人数が何人いるか求める(Line2,L2,L).

点数台集計に加算(N,L1,L2) :-
    N1 is N // 10,
    length(L0,N1),
    append(L0,[M|L3],L1),
    M2 is M + 1,
    append(L0,[M2|L3],L2).