Document

プログラミング入門2
総合演習課題
2008年 12/22(月), 2009年 1/14(水) 実施
これまでの講義内容についての腕試し
各自、自分なりの工夫を凝らすこと!
細かな仕様は問わないので、適宜配列、関数、構造体,
ポインタ,動的記憶域確保など学習したものを用いる
こと。
今後のスケジュール
12/22(月) 第13回 総合演習
1/14(水) 第14回 総合演習
1/19(月) 期末試験(3限のみ、3401教室) 持ち込み不可
演習課題は今日終わらせてください。
期末試験の範囲は、1回目から14回目まで全部含む。
TAの方へ連絡
期末試験(1/19)は勤務の必要はありません。(高橋君のみ来る。)
課題の集計結果は今週中に私までメールで送ってください。
プログラミング入門2
2
総合演習問題1(統計処理)

100名分の学生の学籍番号と点数(100点満点)が格納されているデータファイル
(score.txt 、HPからダウンロード)を読み込み、これらのデータに対して(1)~(4)を行える
ようにせよ。最初にユーザーに(1)〜(4)のどれを実行するかを選択させるようにすること。
また、これらの機能は全て1つのソースファイルで実現すること。
0-10 : ****
11-20 : **********
21-30 : ****
・・・・・・・・・・・・・・・
91-100 : **
※score.txtのデータの並び順
学籍番号 点数
Z05001 53
Z05002
・・・・・・・・・
(1)
右のように10点刻みで分布グラフを表示する。
(2)
(3)
(4)
平均点、最高点、最低点、標準偏差 を表示する。
キーボードから学籍番号を受け取り、その学生の偏差値を画面に表示する。
全員分の偏差値をファイル(ファイル名はキーボードから読み込む)に出力する。その際、学
籍番号と点数も一緒に以下の順で書きだす。
学籍番号 点数 偏差値
※データの格納には、構造体を用いると良い。
※必要に応じて、関数を導入せよ。
○分散 = (データを2乗した値の総和 - (データの総和の2乗 /データ数)) / データ数
○標準偏差:分散の平方根の正の値
○偏差 = 個人の値 - 平均値
○偏差値 = (偏差 / 標準偏差) * 10 + 50
プログラミング入門2
3
総合演習問題2(物理計算)
 斜方投射シミュレーション
ボールを地面に対してθ度の角度で、初速度Vo(m/s)で投げあ
げる。空気抵抗の影響は無視するものとする。ボールを投げる
ときの地面からの高さは0とする。
(1) Vo, θを引数として受け取り、最高到達点(高さ方向)に達するまでの時間(秒)
とその高さ(m)を表示する関数を作成せよ。
(2) Vo, θを引数として受け取り、地面に落下するまでの時間(秒)及び距離(飛距
離、m)を表示する関数を作成せよ。
(3) 松坂大輔投手のストレートの初速を150km/hとする。松坂投手が30度、
45度、60度でボールを投げ上げた際の飛距離を(2)の関数を使って求めよ。
また、3つの場合それぞれについて、一定時間間隔でボールの位置(x,y)をフ
ァイル(拡張子をcsvとする)に書き出し、エクセル(Microsoft Excel)を使ってそ
の軌跡をグラフ化せよ。ファイルへの出力は、csv形式で行うとよい(fprintf
(file, ”%d,%d\n”, x, y); を各座標(x,y)について行う)。
y
θ
Vx = Vo*cosθ
Vy = Vo*sinθ-g*t
x = Vo*cosθ*t
y = Vo*sinθ*t - 0.5*g*t^2
x
プログラミング入門2
4
総合演習問題3(数学:積分近似計算)
 二次関数 f(x) = x^2 について、x=0から3までの定
S

3
 x dxを求めたい。区分求積法により、この
2
積分
0
積分の近似値を求めよ。
X軸方向の刻み幅Δxを大→小へと変化させ、近似の精度が
良くなることを確認せよ。
※更に自由度を上げるために・・・・
・積分範囲を可変に
・関数(f(x))を可変に
等、工夫してみるとなお良い。
0
Δx
3
プログラミング入門2
5