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

[E6] 第6章 配列(1)


(E6_1) 配列の要素の最大値を求めるプログラムを作成する.
「キックオフ C言語」の p. 123, 8.1.1 項を読んだうえで, p. 124,ソースコード 8.1 を入力,コンパイル・実行することでプログラムを理解せよ.p. 124 に従って,要素数はマクロ定数に置き換えておくとよい.

(E6_2) マクロ定数 N を 10 とし,要素数が N である配列 a を定義する.
漸化式 ai+1 = 2 ai + 1 に従う数列 {ai} の各項を配列 a に格納し,それらを順に表示せよ. ただし,第 0 項の値 a0 はキーボードから受け取り,a[ 0 ] に代入する.
配列 a の添字は N-1 までしかないことに注意すること.

表示例:
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.7] および [リスト 6.8] に沿って,データの平均,分散,標準偏差を計算するプログラムを作成する.

(注)平均,分散,標準偏差について pp. 236-239 に説明がある.ただし,教科書第3版第1刷(2020年11月発行)では,p. 238 中央,分散に関する式の一部(左から2番目の = と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 年の何日目にあたるかを求めるプログラムを作成する.

次を確認せよ.


(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 言語のプログラムを作成して提出すること.