このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 160代目 #425 # [1]C言語 プログラミング # [2]http://ime.nu/codepad.org/UrZpvr24 # 制御構造について。 # 文字制限のためコードでお願いします。 # [3]Windows 7 # [3.1]vs2010 # [3.2]C言語 # [4]明日 午前中まで # [5]現在制御構造について学んでいます。 # 配列・ポインタ・関数はまだです。 # # /*問題1 # n>=m>=2を満たす整数nとmをキーボードから入力するとm進数でnを出力するプログラムを # 作成せよ。ただしm<=10としていい。表示は逆順でも良い。 # # 問題2 # 2<=n<=10000を満たす整数nをキーボードから入力すると2以上n以下の素数とその個数を表示する # プログラムを作成せよ。ただし最後の行に素数の個数のみを表示しその他の各行には # 最後の一行を除いてちょうど10個の素数を表示しなければならない。 # 例:n=50 # 2 3 5 7 11 13 17 19 23 29 # 31 37 41 43 47 # 15 # # 問題3 # 絶対値が1未満の実数xと正の整数nが入力されるまで繰り返してキーボードからxとnを入力し # xとnが正しく入力されたら関数log(1+x)の近似値を次の式で計算して表示するプログラム。 # # log(x+1)=nΣi=1 (-1)^i+1 / i    のx^i    # # 例:n=100 x=0.5とすると0.405465と表示される。*/ '絶対値が1未満の実数xと正の整数nが入力されるまで繰り返してキーボードからxとnを入力しxとnが正しく入力されたら関数log(1+x)の近似値を次の式で計算して表示する' :- '絶対値が1未満の実数xと正の整数nが入力されるまで繰り返してキーボードからxとnを入力し'(_x,_n), '関数log(1+x)の近似値を次の式で計算して表示する'(_x,_n). '絶対値が1未満の実数xと正の整数nが入力されるまで繰り返してキーボードからxとnを入力し'(_x,_n) :- '絶対値が1未満の実数xが入力されるまで繰り返してキーボードから入力し'(_x), '正の整数nが入力されるまで繰り返してキーボードから入力し'(_n),!. '絶対値が1未満の実数xが入力されるまで繰り返してキーボードから入力し'(_x) :- 実数を得る('絶対値が1未満の実数x : ',abs(_x) < 1.0,_x),!. '絶対値が1未満の実数xが入力されるまで繰り返してキーボードから入力し'(_x) :- '絶対値が1未満の実数xが入力されるまで繰り返してキーボードから入力し'(_x). '正の整数nが入力されるまで繰り返してキーボードから入力し'(_n) :- 整数を得る('正の整数n : ',_n > 0,_n),!. '正の整数nが入力されるまで繰り返してキーボードから入力し'(_n) :- '正の整数nが入力されるまで繰り返してキーボードから入力し'(_n). '関数log(1+x)の近似値を次の式で計算して表示する'(_x,_n) :- '関数log(1+x)の近似値を次の式で計算して'(_x,_n,_近似値), 表示する(_近似値). 表示する(_近似値) :- writef('関数log(1+x)の近似値は %t です\n',[_近似値]). '関数log(1+x)の近似値を次の式で計算して'(_x,_n,_近似値) :- findsum(U,( between(1,_n,_i), U is (((-1) ^ (_i + 1) / _i) * _x ^ _i)), _近似値). findsum(A,B,C) :- findall(A,B,L), sum_list(L,C). 実数を得る(_実数) :- 実数を得る('',true,_実数),!. 実数を得る(_催促文,_実数) :- 実数を得る(_催促文,true,_実数),!. 実数を得る(_催促文,_値評価目標,_実数) :- writef('%w',[_催促文]), 行入力(_行), 実数入力検査(_行,_実数), 実数入力検査値評価(_値評価目標),!. 行入力(_行) :- read_line_to_codes(current_input,Codes), atom_codes(_行,Codes). 実数入力検査(_行,_実数) :- catch(read_term_from_atom(_行,_実数,[]),E,( !,実数入力検査解析エラー(_行),fail)), 実数であるか(_行,_実数),!. 実数であるか(_行,_実数) :- 実数(_実数),!. 実数であるか(_行,_実数) :- writef('%tから得られた%tは実数ではありません。\n',[_行,_実数]), fail. 実数入力検査解析エラー(_行) :- writef('%tの解析に失敗しました。Prolog項が得られません。\n',[_行]). 実数入力検査値評価(_値評価目標) :- call(_値評価目標),!. 実数入力検査値評価(_値評価目標) :- writef('評価目標が偽となりました。\n',[_値評価目標]), fail. read_line_to_codes(current_input,Codes), number_codes(_実数,Codes), call(_値評価目標),!. 実数(_実数) :- number(_実数). 整数を得る(_整数) :- 整数を得る('',true,_整数),!. 整数を得る(_催促文,_整数) :- 整数を得る(_催促文,true,_整数),!. 整数を得る(_催促文,_値評価目標,_整数) :- writef('%w',[_催促文]), 行入力(_行), 整数入力検査(_行,_整数), 整数入力検査値評価(_値評価目標),!. 整数入力検査(_行,_整数) :- catch(read_term_from_atom(_行,_整数,[]),E,( !,整数入力検査解析エラー(_行),fail)), 整数であるか(_行,_整数),!. 整数であるか(_行,_整数) :- integer(_整数),!. 整数であるか(_行,_整数) :- writef('%tから得られた%tは整数ではありません。\n',[_行,_整数]), fail. 整数入力検査解析エラー(_行) :- writef('%tの解析に失敗しました。Prolog項が得られません。\n',[_行]). 整数入力検査値評価(_値評価目標) :- call(_値評価目標),!. 整数入力検査値評価(_値評価目標) :- writef('評価目標が偽となりました。\n',[_値評価目標]), fail. 整数(_整数) :- integer(_整数).