このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1267796762/853
#  【 課題 】(1)三科目の点数を入力し、平均点を表示するプログラムを作成せよ。 
#       (2)まず人数を入力、その人数分の三科目の点数を入力、個人ごとの平均点を表示するプログラムを作成せよ。 
#     (3)(2)を継承。オーバーライドを使用し、入力する科目を五科目に増やし、さらに合計点も表示するプログラムを作成せよ。 
#  【 形態 】1. Javaアプリケーション(main()で開始) 
#  【 GUI  】制限なし  
#  【 期限 】本日九時  
#  【 Ver  】java version "1.6.0_21" 
#     Java(TM) SE Runtime Environment (build 1.6.0_21-b07) 
#     Java HotSpot(TM) Client VM (build 17.0-b17, mixed mode, sharing) 
#  【 補足 】問題が口頭だったため、文章におかしいところがあるかも知れませんが、よろしくお願いします。 
まず人数を入力、その人数分の三科目の点数を入力、個人ごとの平均点を表示する :-
        まず人数を入力(_人数),
        その人数分の三科目の点数を入力(_人数,_その人数分の三科目の得点ならび),
        個人ごとの平均点を表示する(_その人数分の三科目の得点ならび).

まず人数を入力(_人数) :-
        write('人数を入力してください : '),
        get_line(Line),
        人数入力診断(Line,_人数),!.
まず人数を入力(_人数) :-
        まず人数を入力(_人数).

人数入力診断(Line,_人数) :-
        atom_to_term(Line,_人数,_),
        integer(_人数),
        _人数 > 0,!.
人数入力診断(Line,_人数) :-
        write_formatted('入力された文字列 %t からは人数を得られませんでした。再入力をお願いします。\n',[Line]),
        fail.

その人数分の三科目の点数を入力(_人数,_その人数分の三科目の得点ならび) :-
        length(_その人数分の三科目の得点ならび,_人数),
        findall(_三科目の得点,(
                    append(_,[_三科目の得点|_],_その人数分の三科目の得点ならび),
                    三科目の点数を入力し(_三科目の得点)),
                _その人数分の三科目の得点ならび).

個人ごとの平均点を表示する(_その人数分の三科目の得点ならび) :-
        append(L0,[_三科目の得点|R],_その人数分の三科目の得点ならび),
        個人idを付加して表示(L0),
        平均点を表示する(_三科目の得点),
        R = [].

個人idを付加して表示(L0) :-
        length([_|L0],_何番目]),
        write_formatted('%t : ',[_何番目]).

三科目の点数を入力し(_三科目の得点) :-
        write('三科目の点数をカンマ区切りで一行で入力してください : '),
        get_split_line([','],_三科目の得点).

平均点を表示する(_三科目の点数) :-
        平均点を(_三科目の点数,_平均点),
        表示する(_平均点).

平均点を([_第一科目の点数,_第二科目の点数,_第三科目の点数],_平均点) :-
        
        _平均点 is (_第一科目の点数 + _第二科目の点数 + _第三科目の点数) / 3.

表示する(_平均点) :-
        write_formatted('三科目の平均は %t です\n',[_平均点]).