コンピュータ演習(A)

Cプログラミング(8) ループ文の活用


【再】INFOSS情報倫理の課題 ←この科目の合格の必要条件です

内容

0. 準備

1. 多重ループ


課題 8.1 1 以上 5 以下の 2 つの整数 x, y の全ての組合せについて,
(0,0) と (x,y) の距離 (x2+y2の平方根) を計算して表示するプログラム distall2.c を作成せよ.


課題 8.2 1 以上 3 以下の 3 つの整数 x, y, z の全ての組合せについて,
x, y, z の相加平均を計算して表示するプログラム aveall3.c を作成せよ.
もし小数点以下が出なかったら, 何かを忘れている ( C3 の「3. 整数除算と実数除算」参照)

2. 多重ループによる解の探索


課題 8.3 自然数 p, a, b (ただし p は素数とする) を入力し, 0≤x<p, 0≤y<p を満たす自然数 x, y の組合せの中で,
ax2+by2 = 1 mod p を満たすものを全て求めるプログラム ieq.c を作成せよ.

次のような出力が得られることを確認せよ (表示形式は各自工夫せよ).


課題 8.4 50円切手が 5 枚, 80円切手が 4 枚, 120円切手が 3 枚ある.
キーボードから目標金額 t を入力し, 金額の合計が t になるような切手の枚数の全ての組合せを求めるプログラム stamp.c を作成せよ.

次のような出力が得られることを確認せよ (表示形式は各自工夫せよ).

3. 条件によるループの打ち切り


課題 8.5 実数 x を入力し, x の平方根 r をニュートン法により求めるプログラム newton2.c を作成せよ.
r の結果は小数点以下10桁まで出力すること.

(ニュートン法による平方根の計算法)

次のような結果が得られることを確認せよ

レポート課題 C8