このディレクトリの索引

#  問1 
#  5つの整数と長さ3の文字列を読み込み,文字列が"MAX"のときは最大値を,文字列が"MIN"のときは最小値を出力するプログラムを以下の関数 main() を用いて作成せよ.
#  
#  実行例
#  0 > 1
#  1 > 5
#  2 > 4
#  3 > 8
#  4 > 3
#  MIN or MAX > MAX
#  最大値: 8
#  
#  実行例
#  0 > 1
#  1 > 5
#  2 > 4
#  3 > 8
#  4 > 3
#  MIN or MAX > MIN
#  最小値: 1
#  

'5つの整数と長さ3の文字列を読み込み,文字列が"MAX"のときは最大値を,文字列が"MIN"のときは最小値を出力する' :-
        '5つの整数と長さ3の文字列を読み込み'(_5つの整数ならび,_長さ3の文字列),
        '文字列が"MAX"のときは最大値を,文字列が"MIN"のときは最小値を出力する'(
'5つの整数と長さ3の文字列を読み込み'(_5つの整数ならび,_長さ3の文字列) :-
        '5つの整数'(_5つの整数ならび),
        長さ3の文字列(_長さ3の文字列).

'5つの整数'(_5つの整数ならび) :-
        length(_5つの整数ならび,5),
        writef('5個の整数をスペース区切りで入力してください : '),
        readln(_5つの整数ならび),!.
'5つの整数'(_5つの整数ならび) :-
        write('正しく入力できていません\n'),
        '5つの整数'(_5つの整数ならび).

長さ3の文字列(_長さ3の文字列) :-
        write('MAX or MIN 3文字で入力してください : '),
        get_line(_長さ3の文字列),
        sub_atom(_長さ3の文字列,0,3,0,_長さ3の文字列),!.
長さ3の文字列(_長さ3の文字列) :-
        長さ3の文字列(_長さ3の文字列).

'文字列が"MAX"のときは最大値を,文字列が"MIN"のときは最小値を出力する'(_5つの整数ならび,'MAX') :-
        append(L0,[_最大値|R],_5つの整数ならび),
        \+((member(N1,L0),N1 > _最大値)),
        \+((member(N2,R),N2 > _最大値)),
        writef('MAX = %t\n',[_最大値]).
'文字列が"MAX"のときは最大値を,文字列が"MIN"のときは最小値を出力する'(_5つの整数ならび,'MIN') :-
        append(L0,[_最小値|R],_5つの整数ならび),
        \+((member(N1,L0),N1 < _最小値)),
        \+((member(N2,R),N2 < _最小値)),
        writef('MIN = %t\n',[_最小値]).