このディレクトリの索引

'BMI個人データの収集' :- write('+--------------------------------------+\n'), write('| 今から個人データを入力してもらいます |\n'), write('+--------------------------------------+\n'), repeat, 整数項目の取得(入力人数,'入力する人数を設定してください(1〜10)> ',_,nl,_入力人数), 'BMI個人データの収集'(1,_入力人数), write(' 何かキーを押してください '), 行入力(_キー), sub_atom(_キー,0,1,_,q). 'BMI個人データの収集'(N,E) :- N > E,!. 'BMI個人データの収集'(N,E) :- '取得に失敗する場合にも気を付けながらBMI個人データを収集して行く'(N,E). '取得に失敗する場合にも気を付けながらBMI個人データを収集して行く'(N,E) :- 'BMI個人データを取得し、それに成功したら次の個人データの取得に進んで行く'(N,E). '取得に失敗する場合にも気を付けながらBMI個人データを収集して行く'(N,E) :- 'BMI個人データの収集に失敗したらもう一度N人目から取得に行く'(N,E). 'BMI個人データを取得し、それに成功したら次の個人データの取得に進んで行く'(N,E) :- 'BMI個人データの取得'(N), succ(N,M), 'BMI個人データの収集'(M,E). 'BMI個人データの収集に失敗したらもう一度N人目から取得に行く'(N,E) :- 'BMI個人データの収集'(N,E). 'BMI個人データの取得'(N) :- writef('*** %t人目のデータを入力してください ***\n',[N]), 苗字の取得(_苗字), 名前の取得(_名前), 整数項目の取得(年齢,'・年齢を入力してください(整数)> ',_,true,_年齢), 整数項目の取得(身長,'・身長を入力してください(整数)> ',_,nl,_身長), 整数項目の取得(体重,'・体重を入力してください(整数)> ',_,nl,_体重), 'BMI判定'(_身長,_体重,BMI,_判定), 個人データの確認(N,_苗字,_名前,_年齢,_身長,_体重,BMI,_判定), assertz('BMI個人データ'(_苗字,_名前,_年齢,_身長,_体重,BMI,_判定)). 個人データの確認(N,_苗字,_名前,_年齢,_身長,_体重,BMI,_判定) :- write('+++ 個人データを確認します +++\n'), writef('[%w人目]\n',[N]), writef('苗字: %w\n',[_苗字]), writef('名前: %w\n',[_名前]), writef('年齢: %w歳\n',[_年齢]), writef('身長: %wcm\n',[_身長]), writef('体重: %wkg\n',[_体重]), writef('BMI : %w [ %w ]\n\n',[BMI,_判定]). 'BMI判定'(_身長,_体重,BMI,_判定) :- BMI is _体重/_身長/_身長*10000, 'BMI判定'(BMI,_判定). 'BMI判定'(BMI,やせてます) :- BMI =< 18.5. 'BMI判定'(BMI,普通です) :- BMI > 18.5,BMI < 25.0. 'BMI判定'(BMI,'レッツエクササイズ!') :- BMI >= 25.0. 苗字の取得(_苗字) :- write('・苗字を入力してください(半角ローマ字)> '), 行入力(_苗字). 名前の取得(_名前) :- write('・名前を入力してください(半角ローマ字)> '), 行入力(_名前). 整数項目の取得(_項目名,_入力促進文字列,_入力文字列,_オプション,_値) :- write(_入力促進文字列), 行入力(_入力文字列), 整数項目の検査(_項目名,_入力文字列,_値), call(_オプション),!. 整数項目の取得(_項目名,_入力促進文字列,_入力文字列,_オプション,_値) :- 整数項目の取得(_項目名,_入力促進文字列,_入力文字列,_オプション,_値). 整数項目の検査(_項目名,_入力文字列,_値) :- atom_number(_入力文字列,_値), integer(_値),!. 整数項目の検査(_項目名,_入力文字列,_) :- writef('%wの入力[%w]に問題があります\n再入力してください\n',[_項目名,_入力文字列]), fail. 行入力(_行) :- read_line_to_codes(current_input,_コードならび), atom_codes(_行,_コードならび).