このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 140代目 #924 # ../test/read.cgi/tech/1284632294/878 # # ありがとうございます。 # # 1] 授業単元:プログラミング演習 # [2] 文字列を入力し、指定した文字位置から5文字分を表示する # プログラムを作成せよ。ただし、入力する文字列は # 半角のアルファベットとする。文字列の数は40文字程度とし、 # 5文字分を取り出す位置の関係を意識すること。 # また、文字列の取り出しにはポインタを使うこと。 # '文字列を入力し、指定した文字位置から5文字分を表示する' :- 催促付き行入力('文字列を入力してください : ',_行), 指定した文字位置から5文字分を表示する(_行). 催促付き行入力(_催促,_行) :- write('%w',[_催促]), 行入力(_行). 行入力(_行) :- read_line_to_codes(current_input,_文字コードならび), atom_codes(_行,_文字コードならび). 指定した文字位置から5文字分を表示する(_行) :- 指定した文字位置を得る(_指定した文字位置), 指定した文字位置から5文字分を表示する(_行,_指定した文字位置). 指定した文字位置を得る(_指定した文字位置) :- 整数を得る('取り出す文字位置を指定してください : ',true,_指定した文字位置). 整数を得る(_催促,_評価,_整数) :- 催促付き行入力(_催促,_行), 整数検査(_行,_整数),!, 整数を得る(_催促,_評価,_整数) :- 整数を得る(_催促,_評価,_整数). 整数検査(_行,_整数) :- 行は数値変換可能で変換した数は整数(_行,_整数),!, 整数評価(_評価),!. 整数検査(_行,_整数) :- writef('入力された %w からは整数が得られません。再入力をお願いします。\n',[_行]), fail. 整数評価(_評価) :- call(_評価),!. 整数評価(_評価) :- writef('評価 %w に失敗しました。再入力をお願いします。\n',[_評価]), fail. 行は数値変換可能で変換した数は整数(_行,_整数) :- 行は数値変換可能で(_行,_整数), 変換した数は整数(_整数). 行は数値変換可能で(_行,_整数) :- atom_number(_行,_整数). 変換した数は整数(_整数) :- integer(_整数). 指定した文字位置から5文字分を表示する(_行,_指定した文字位置) :- 指定した文字位置から5文字分(_行,_指定した文字位置,_とり出された5文字), writef('%w\n',[_指定した5文字分]). 指定した文字位置から5文字分(_行,_指定した文字位置,_取り出された5文字) :- _位置_1 is _指定した文字位置 - 1, sub_atom(_行,_位置_1,5,_,_取り出された5文字).