プログラミング実習II (2025) 課題
[E2] 第4章 制御の流れ(1)
(E2_1) p.110 の [リスト 4.1] と p.117 の [リスト 4.3] を参考に,次のようなプログラムを作成せよ.
コンパイル,実行し,次の動作を確認せよ.
#include <stdio.h> int main(void) { int math, eng; scanf( "%d", &math ); scanf( "%d", &eng ); return 0; } |
(E2_2) 教科書4.2.5項「多岐条件文」を参考に,if(), else if(), elseをすべて用いて次のようなプログラムを作成し,コンパイル・実行せよ.
実行時にキーボードから 17, 21, 25, 30, 48, 50, 55, 60 をそれぞれ入力し,実行結果が正しいことを確認せよ(各数字に対して出力されるべき文字は自分で考えること).
#include <stdio.h> int main( void ) { int n; scanf( "%d", &n ); return 0; } |
(E2_3)
2次方程式の実数解を求める [リスト 4.9] を入力し,コンパイル・実行せよ.[実行結果 4.9] に示される数値を入力し,正しく表示されることを確認すること.
また,異なる 2 個の実数解を持つような a, b, c を自分で作成して入力し,解が正しく表示されることを確認せよ.
《以下もできるだけ取り組むこと.難しい場合は,[リスト 4.9]のプログラムを提出してよい.》
次に,異なる
2個の実数解が存在する場合にはそれらの正負に基づいて,
(E2_4) キーボードから 2 個の整数を受け取り,それぞれ int 型変数 a および b に代入する. a 以上 b 未満 の整数のうち 3 または 5 で割り切れるものをすべて表示するプログラムを for 文を用いて作成せよ.論理演算子は教科書 p. 124 以降を参照せよ.
for 文のループ内で if 文を書けばよい.
作成したプログラムの動作を検証するのに適した数値の組をキーボードから 5 組程度入力することで,それぞれについて,実行結果が正しいことを確認せよ(例えば,a = 10,b = 27 の場合は,10, 12, 15, 18, 20, 21, 24, 25).結果はレポートに記すこと.
#include <stdio.h> int main(void) { int i; int a, b; scanf("%d", &a); scanf("%d", &b); return 0; } |
(E2_5)
キーボードから受け取った整数を a および b とする.a 以上 b 未満の正の整数のうち, 3 の倍数であるが 5 の倍数ではない整数の個数を求めるプログラムを作成して,コンパイルと実行を行え.
for 文のループ内で if 文を書き,条件式が真ならば変数 cnt をインクリメント(1だけ増やす)すればよい.
作成したプログラムの動作を検証するのに適した数値の組をキーボードから 5 組程度入力することで,それぞれについて,実行結果が正しいことを確認せよ(例えば,a = 10,b = 32 の場合は,12, 18, 21, 24, 27 であるため,5 個).結果はレポートに記すこと.
#include <stdio.h> int main(void) { int i, cnt; /* cnt は,個数を数えるための変数 */ int a, b; scanf("%d", &a); scanf("%d", &b); cnt = 0; /* cnt を初期化 */ printf( "答えは %d 個です\n", cnt ); return 0; } |
(E2_6)
[リスト 4.11] を入力し,コンパイル・実行せよ.
このプログラムは,望ましくない例として挙げられており,数値計算の誤差を防ぐためカウンタ変数は整数とすべきことが説明されている.
この説明に従って,[リスト 4.11] のカウンタ変数 t を int 型に変更(double t; → int t;)した上で,[実行結果 4.11] と同じ出力が得られるようにプログラムを変更せよ.
( t と 0.1 の乗算の際には,混合演算(3.2.6項)が行われることに注意)
(E2_7)
[リスト 4.11] を参考にして,t = 0, 15, 30, 45, 60, 75, 90 (度) における正弦(sin)と余弦(cos)を表示するプログラムを作成せよ.for 文を用いること.
p. 139 に述べられている通り,数学関数 sin() および cos() へ渡す際,角度をラジアン(度ではない)に変換する必要があることに注意.
表示例: t cos sin ------------------------- 0 1.000000 0.000000 15 0.965926 0.258819 30 0.866025 0.500000 45 0.707107 0.707107 60 0.500000 0.866025 75 0.258819 0.965926 90 0.000000 1.000000
(E2_8)
以下のプログラムについて考える.*=, -= 等の代入演算子については教科書pp. 90〜92を参照せよ.
実行すると,キーボードから入力する値に依存して,表示される x と y の値が一致しない場合がある.
#include <stdio.h> int main( void ) { int a, x, y; printf("整数を入力して下さい\n"); scanf("%d", &a); x = a; y = a; if( a % 2 == 0 ) x *= 5; if( a % 3 == 0 ) x -= 2; if( a % 2 == 0 ) y *= 5; else if( a % 3 == 0 ) y -= 2; printf("x = %d, y = %d です.", x, y); return 0; } |