このディレクトリの索引

# 出典 :: #392 # [1] 授業単元: プログラミング # [2] 問題文(含コード&リンク): # http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9937.txt # # 1以上の正の整数の値をキーボードから入力し、1からNまでの和を求める # プログラムをC言語で作成する。 # それと、キーボードから100を入力すると答えはいくらなるか。 '1以上の正の整数の値をキーボードから入力し、1からNまでの和を求める'(_1からNまでの和) :- 整数を得る('\n整数を入力してください :',N >= 1,N), '1からNまでの和を求める'(N,_1からNまでの和). '1からNまでの和を求める'(N,_1からNまでの和) :- _1からNまでの和 is ((N + 1) * N) / 2. 整数を得る(_催促,_条件,_整数) :- '催促表示後に行入力、行を整数に変換し、条件を評価する'(_催促,_条件,_整数),!. 整数を得る(_催促,_条件,_整数) :- 整数を得る(_催促,_条件,_整数). '催促表示後に行入力、行を整数に変換し、条件を評価する'(_催促,_条件,_整数) :- 催促表示後に行入力(_催促,_行), 整数入力検査(_行,_整数), 整数評価(_条件),!. 催促表示後に行入力(_催促,_行) :- 催促表示(_催促), 行入力(_行). 催促表示(_催促) :- write(_催促). 行入力(_行) :- read_line_to_codes(current_input,_コードならび), atom_codes(_行,_コードならび). 整数入力検査(_行,_整数) :- 行を整数に変換(_行,_整数),!. 整数入力検査(_行,_) :- 行を整数に変換できない時は整数入力は偽となる(_行). 行を整数に変換できない時は整数入力は偽となる(_行) :- writef('入力された %w からは整数が得られません。\n',[_行]), fail. 行を整数に変換(_行,_整数) :- atom_number(_行,_整数), integer(_整数). 整数評価(_条件) :- call(_条件),!. 整数評価(_条件) :- 条件の評価に失敗したら整数入力は偽となる(_条件). 条件の評価に失敗したら整数入力は偽となる(_条件) :- writef('条件 %t の評価が偽となりました。\n',[_条件]), fail.