◎復習 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のプログラムと結果を提出せよ。 必修課題が提出されている場合には加点する。
一覧へ