◎復習 2 (第6回〜第9回)
◇下へ・一覧へ
○以下の演習問題を授業中に行うこと
○演習
演習1. a が double型で、b が int型であるとする。
代入文 a=b=1.5によって、aとbの値はどうなるか。
プログラムを作成して確認し、その理由を簡単に説明せよ。
演習2. 文字列aに別の文字列bを連結するプログラムを作成せよ。
ヒント:文字列aの終端を見つけ、そこからbをコピーする(演習8.2)。
演習3. 10進数の数字だけからなる文字列を、整数型変数 n に「数値」として
格納するプログラムstr2num.c(PAD psfile)に数値を代入し、
結果を確かめよ。
( scanf("%d",&n)の内部ではこのようなことが行なわれている )
◇下へ・上へ
演習4. 摂氏c-華氏f温度対応表を印字するプログラムを作りたい。
換算する式 c = 5/9 × (f - 32) の部分を関数として
0 <= f <= 200の範囲で表示せよ(行数は各自で決める)。
演習5. 入力した負でない整数n の階乗の値を返す関数を作成せよ。
int型が表現できる範囲を考え、この関数が正しく計算できる
nの値はどこまでか、説明せよ。
演習6. 2分法のプログラムにおいて、処理部分を「解を値として返す関数」
として切り出し、全体を書き直して、動作を確認せよ。
epsilonの入力には、1e-6(1*10の-6乗)のような書き方もできる。
2分法の説明
【余裕のある人】
演習7. 整数n(1<=n<=50)と配列a[n]が与えられている。a[1]、a[2]、…、
a[n]は整数で、その値はわからないが、重複するものが多く、
異なる値の種類はたかだか10であることがわかっている。
種類数をmに、異なる整数をb[1]、b[2]、…、b[m]に、それらの
頻度(重複して現れた回数)をfreq[1]、freq[2]、…、freq[m]に
入れるプログラムを作成せよ。ただし番兵アルゴリズムを利用する
こと。(テキストp.82【演習3.34】)
◇一覧へ・上へ
○レポート課題
上の演習問題のうち、演習2, 4, 5(説明も含む)のプログラムと
実行結果のスクリプトを提出せよ。
さらに余裕のある人は演習7のプログラムと結果を提出せよ。
必修課題が提出されている場合には加点する。