>>460
% Prolog
% http://nojiriko.asia/prolog/t460.html

'5 人の学生の身長を読み込んで、その平均身長を求める' :-
  '5 人の学生の身長を読み込んで、'(_身長ならび),
  sum(_身長ならび,_合計),
  _平均身長 is _合計 / 5,
  write_formatted('平均身長: %t\n',[_平均身長]),

'5 人の学生の身長を読み込んで、'(_身長ならび) :-
  findall(_身長,(for(1,N番目,5),身長を得る(N番目,_身長)),_身長ならび).

身長を得る(N番目,_身長) :-
  write_formatted('%t 番: ',[N番目]),
  数値を得る(_身長),
  _身長 > 0.0,
  _身長 < 220.0,!.
身長を得る(N番目,_身長) :-
  write('身長が適切な数値ではありませんでした。再入力が必要です\n'),
  身長を得る(N番目,_身長).

数値を得る(_数値) :-
  get_line(_改行までの文字列),
  atom_to_term(_改行までの文字列,_数値,_),
  number(_数値).