このディレクトリの索引

# 出典 :: C/C++の宿題片付けます #677 # [1] 授業単元:プログラミング演習 # [2] # 3.キーボードから次々に整数を入力し、入力のたびにそれまでに入力した数字を # 小さい順に表示するプログラムを作成せよ。数字は10個入力したらプログラムは終了するようにすること. 'キーボードから次々に10個の整数を入力し、入力のたびにそれまでに入力した数字を小さい順に表示する' :- length(Ln,10), 'キーボードから次々に10個の整数を入力し、入力のたびにそれまでに入力した数字を小さい順に表示する'(Ln,[]). 'キーボードから次々に10個の整数を入力し、入力のたびにそれまでに入力した数字を小さい順に表示する'([],_) :- !. 'キーボードから次々に10個の整数を入力し、入力のたびにそれまでに入力した数字を小さい順に表示する'([_|Ln],_現在まで整列されたならび) :- 'キーボードから10個の入力のたびにそれまでに入力した数字を小さい順に表示し直して行く'(Ln,_現在まで整列されたならび). 'キーボードから10個の入力のたびにそれまでに入力した数字を小さい順に表示し直して行く'(Ln,_現在まで整列されたならび) :- 'キーボードから整数を入力し、'(_整数), 'それまでに入力した数字を小さい順に表示し直して行く'(Ln,_整数,_現在まで整列されたならび,_整列し直したならび). 'キーボードから整数を入力し、'(_整数) :- 整数を得る(user_input,'',true,_整数),!. 整数を得る(user_input,_催促,_評価,_整数) :- 催促後に行入力(user_input,'',_行), 整数検査(_行,_整数), 整数評価(_評価). 催促後に行入力(_入力,_催促,_行) :- write(_催促), read_line_to_codes(_入力,_文字コードならび), atom_codes(_行,_文字コードならび). 整数検査(_行,_整数) :- atom_number(_行,_整数), integer(_整数). 整数評価(_評価) :- _評価. 'それまでに入力した数字を小さい順に表示し直して行く'(Ln,_整数,_現在まで整列されたならび,_整列し直したならび) :- 'それまでに入力した数字を小さい順に'(_整数,_現在まで整列されたならび,_整列し直したならび), '表示し直して行く'(Ln,_整列し直したならび). 'それまでに入力した数字を小さい順に'(_整数,_現在まで整列されたならび,_整列し直したならび) :- 小さい順整列ならびに挿入(_整数,_現在まで整列されたならび,_整列し直したならび). '表示し直して行く'(Ln,_整列し直したならび) :- 表示する(_整列し直したならび), 'キーボードから次々に10個の整数を入力し、入力のたびにそれまでに入力した数字を小さい順に表示する'(Ln,_整列し直したならび). 表示する(_整列し直したならび) :- atomic_list_concat(_整列し直したならび,' ',_整列文字列), writef('%w\n',[_整列文字列]). 小さい順整列ならびに挿入(_挿入要素,[],[_挿入要素]) :- !. 小さい順整列ならびに挿入(_挿入要素,L1,L) :- 小さい順整列ならびに挿入して行く(_挿入要素,L1,L),!. 小さい順整列ならびに挿入して行く(_挿入要素,[A|R],[_挿入要素,A|R]) :- '挿入要素がAより小さいときは、挿入要素、Aの順に挿入して終了する'(_挿入要素,A). 小さい順整列ならびに挿入して行く(_挿入要素,[A|R1],L) :- '挿入要素がAより大きいか等しい時は、さらに挿入場所を求める'(_挿入要素,[A|R1],L). '挿入要素がAより小さいときは、挿入要素、Aの順に挿入して終了する'(_挿入要素,A) :- _挿入要素 @< A. '挿入要素がAより大きいか等しい時は、さらに挿入場所を求める'(_挿入要素,[A|R1],[A|R2]) :- _挿入要素 @>= A, 小さい順整列ならびに挿入(_挿入要素,R1,R2).