プログラミング実習II (2026) 課題

[E6] 第6章 配列(1)

(E6_1)

「キックオフ C言語」の第8.4.2項,p. 130,ソースコード 8.3 とソースコード 8.4 を参考にして,各月の日数を表示するプログラムを作成せよ.ただし,0 はじまりの配列 int days0[N_MONTH]1 はじまりの配列 int days1[N_MONTH] を定義し,それぞれの配列を用いて日数の表示を行うこと.

(E6_2)

マクロ定数 N を 10 とし,漸化式 ai+1 = 2ai + 1 に従う数列の各項を配列 a に格納して表示せよ.

表示例:a_0 = 5 のとき
a_0 = 5
a_1 = 11
a_2 = 23
a_3 = 47
a_4 = 95
a_5 = 191
a_6 = 383
a_7 = 767
a_8 = 1535
a_9 = 3071
(E6_3)

データの平均,分散,標準偏差を計算するプログラムを作成せよ.

※ 教科書の版によっては分散の式に記述の誤りがあるため,教科書正誤表を参考にすること.なお,[リスト 6.8] で用いられる計算式についても,教科書正誤表で示された式の方がプログラムの動作に沿っています.
(E6_4)

与えられた整数を昇順(小さい順)または降順(大きい順)に並び替える操作を整列(ソート,ソーティング)という.そのひとつの方法であるバブルソートのプログラムを [リスト 6.9] を参考に作成せよ.

 降順のソート
54 28 72 9 97 39 44 15
72 28 54 9 97 39 44 15
97 28 54 9 72 39 44 15
97 54 28 9 72 39 44 15
97 72 28 9 54 39 44 15
97 72 54 9 28 39 44 15
97 72 54 28 9 39 44 15
97 72 54 39 9 28 44 15
97 72 54 44 9 28 39 15
97 72 54 44 28 9 39 15
97 72 54 44 39 9 28 15
97 72 54 44 39 28 9 15
97 72 54 44 39 28 15 9
97 72 54 44 39 28 15 9
 昇順のソート
54 28 72 9 97 39 44 15
28 54 72 9 97 39 44 15
9 54 72 28 97 39 44 15
9 28 72 54 97 39 44 15
9 15 72 54 97 39 44 28
9 15 54 72 97 39 44 28
9 15 39 72 97 54 44 28
9 15 28 72 97 54 44 39
9 15 28 54 97 72 44 39
9 15 28 44 97 72 54 39
9 15 28 39 97 72 54 44
9 15 28 39 72 97 54 44
9 15 28 39 54 97 72 44
9 15 28 39 44 97 72 54
9 15 28 39 44 72 97 54
9 15 28 39 44 54 97 72
9 15 28 39 44 54 72 97
9 15 28 39 44 54 72 97
(E6_5)

ある日付が 1 年の何日目にあたるかを求めるプログラムを作成せよ.キーボードから月 m と日 d を受け取り,それが 1 年の何日目かを表示せよ.閏年は考慮しなくてよい.各月の日数を格納する配列は 1 はじまりとする.

1月 5日 → 5日目
2月 1日 → 32日目
5月 30日 → 150日目
11月24日 → 328日目
12月31日 → 365日目

その上で,m の値として適切な範囲の整数が与えられない場合は,キーボードからの入力を繰り返し要求するよう書き換えよ(キックオフC言語6.4.3項参照,do-while 文が使用されているがこれは未習のため,while 文を用いて書き換えてみよ).

余力があれば,m に対して適正な d の値が得られるまで繰り返し入力を要求するプログラムを追加せよ.

キックオフ C 言語 6.3.2 項,C言語によるプログラミング 4.3.3項にあるように,do-while 文は,必ず 1 回はループ内の文が実行されるため,今回のプログラムに向いています.一方,while 文を用いる場合は,ループの外側で 1 回キーボードから整数を入力させるか,もしくはループに入る際に while 文の継続条件を満たすような値を変数に代入しておく必要があります.
do-while 文の場合,セミコロン ; が必要なことに注意.

(E6_A)

「キックオフ C言語」の第8.7節, 練習問題2(【最大値】(i) 129ページのソースコード8.2...)を解答せよ. 作成した関数を利用し,動作が確認できるような C 言語のプログラムを作成して提出すること.

(E6_B)

「キックオフ C言語」の第8.7節, 練習問題3(【最大値の添字】(i) 129ページのソースコード8.2...)を解答せよ.作成した関数を利用し,動作が確認できるような C 言語のプログラムを作成して提出すること.

(E6_C*)

「キックオフ C言語」の第12章,p. 202,「7章」を解答せよ. 作成した関数を利用し,動作が確認できるような C 言語のプログラムを作成して提出すること.