このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 128代目 # 75 # [1] 授業単元: C # [2] 問題文(含コード&リンク): # キーボードから入力された1以上の整数nについて、次の例に示すように行番号と*を表示するプログラムを作成せよ # 。また、0や負の数が入力された場合はプログラムが終了するようにせよ。 # 表示結果の例 # 正の整数:6 # 1****** # 2 ***** # 3 **** # 4  *** # 5 ** # 6 * 'キーボードから入力された1以上の整数nについて、次の例に示すように 行番号と*を表示するプログラムを作成せよ。 また、0や負の数が入力された場合はプログラムが終了するようにせよ。 表示結果の例 正の整数:6 1****** 2 ***** 3 **** 4  *** 5 ** 6 * ' :- '整数_n'(_n), '0や負の数が入力されるまで、行番号と*を表示する'(_n). '整数_n'(_n):- '入力催促後、行入力を得て、それを整数に変換する'(_n). '入力催促後、行入力を得て、それを整数に変換する'(_n) :- '入力催促後、', '行入力を得て、それを整数に変換する'(_n). '入力催促後、' :- write('1以上の整数を入力してください。0以下を入力するとプログラムは停止します : '). '行入力を得て、それを整数に変換する'(_n) :- '行入力を得て、'(_行), それを整数に変換する(_行,_n). '行入力を得て、'(_行) :- read_line_to_codes(current_input,_コードならび), atom_codes(_行,_コードならび). それを整数に変換する(_行,_n) :- atom_number(_行,_n), integer(_n). '0や負の数が入力されるまで、行番号と*を表示する'(_n) :- '0や負の数が入力されるまで、'(_n),!. '0や負の数が入力されるまで、行番号と*を表示する'(_n) :- '0や負の数が入力されるまで、行番号と*を表示して行く'(_n). '0や負の数が入力されるまで、'(_n) :- _n =< 0. '0や負の数が入力されるまで、行番号と*を表示して行く'(_n) :- '行番号と*を表示して'(_n), 'キーボードから入力された1以上の整数nについて、次の例に示すように 行番号と*を表示するプログラムを作成せよ。 また、0や負の数が入力された場合はプログラムが終了するようにせよ。 表示結果の例 正の整数:6 1****** 2 ***** 3 **** 4  *** 5 ** 6 * '. '行番号と*を表示して'(_n) :- length(L,_n), '星が表示できなくなるまで、行番号は上昇、星は減らしながら、間に空白を挿んで表示する'(L). '星が表示できなくなるまで、行番号は上昇、星は減らしながら、間に空白を挿んで表示する'(L) :- forall( '星が表示できなくなるまで、行番号は上昇、星は減らしながら、'(L,L1,L2), 行表示(L1,L2,L)). '星が表示できなくなるまで、行番号は上昇、星は減らしながら、'(L,L1,L2) :- append(L1,L2,L), '星が表示できなくなるまで、'(L2). '星が表示できなくなるまで、'(L2) :- \+(L2=[]). 行表示(L1,L2,L) :- 空白と星で埋める(L1,L2), 行番号を得る(L1,_行番号), 表示する(L,_行番号). 空白と星で埋める(L1,L2) :- 空白を埋める(L1), 星を埋める(L2). 空白を埋める(L1) :- 埋める(L1,' '). 星を埋める(L2) :- 埋める(L2,'*'). 埋める([],_). 埋める([V|R],V) :- 埋める(R,V). 行番号を得る(L1,_行番号) :- length([_|L1],_行番号). 表示する(_空白と星の文字ならび,_行番号) :- '_空白と星の文字ならびを結合して、_空白と星文字列を作り'(_空白と星の文字ならび,_空白と星文字列), 行番号と並べて表示する(_行番号,_空白と星文字列). '_空白と星の文字ならびを結合して、_空白と星文字列を作り'(_空白と星の文字ならび,_空白と星文字列) :- atomic_list_concat(_空白と星の文字ならび,_空白と星文字列). 行番号と並べて表示する(_行番号,_空白と星文字列) :- writef('%w%w\n',[_行番号,_空白と星文字列]). ?- 'キーボードから入力された1以上の整数nについて、次の例に示すように | 行番号と*を表示するプログラムを作成せよ。 | また、0や負の数が入力された場合はプログラムが終了するようにせよ。 | 表示結果の例 | 正の整数:6 | 1****** | 2 ***** | 3 **** | 4  *** | 5 ** | 6 * | '. 1以上の整数を入力してください。0以下を入力するとプログラムは停止します : 3 1*** 2 ** 3 * 1以上の整数を入力してください。0以下を入力するとプログラムは停止します : 17 1***************** 2 **************** 3 *************** 4 ************** 5 ************* 6 ************ 7 *********** 8 ********** 9 ********* 10 ******** 11 ******* 12 ****** 13 ***** 14 **** 15 *** 16 ** 17 * 1以上の整数を入力してください。0以下を入力するとプログラムは停止します : -1 true.