プログラミング入門2 総合演習課題 2008年 12/22(月), 2009年 1/14(水) 実施 これまでの講義内容についての腕試し 各自、自分なりの工夫を凝らすこと! 細かな仕様は問わないので、適宜配列、関数、構造体, ポインタ,動的記憶域確保など学習したものを用いること。
今後のスケジュール 12/22(月) 第13回 総合演習 1/14(水) 第14回 総合演習 12/22(月) 第13回 総合演習 1/14(水) 第14回 総合演習 1/19(月) 期末試験(3限のみ、3401教室) 持ち込み不可 演習課題は今日終わらせてください。 期末試験の範囲は、1回目から14回目まで全部含む。 TAの方へ連絡 期末試験(1/19)は勤務の必要はありません。(高橋君のみ来る。) 課題の集計結果は今週中に私までメールで送ってください。 プログラミング入門2
総合演習問題1(統計処理) 100名分の学生の学籍番号と点数(100点満点)が格納されているデータファイル(score.txt 、HPからダウンロード)を読み込み、これらのデータに対して(1)~(4)を行えるようにせよ。最初にユーザーに(1)〜(4)のどれを実行するかを選択させるようにすること。また、これらの機能は全て1つのソースファイルで実現すること。 右のように10点刻みで分布グラフを表示する。 平均点、最高点、最低点、標準偏差 を表示する。 キーボードから学籍番号を受け取り、その学生の偏差値を画面に表示する。 全員分の偏差値をファイル(ファイル名はキーボードから読み込む)に出力する。その際、学籍番号と点数も一緒に以下の順で書きだす。 学籍番号 点数 偏差値 ※データの格納には、構造体を用いると良い。 ※必要に応じて、関数を導入せよ。 ○分散 = (データを2乗した値の総和 - (データの総和の2乗 /データ数)) / データ数 ○標準偏差:分散の平方根の正の値 ○偏差 = 個人の値 - 平均値 ○偏差値 = (偏差 / 標準偏差) * 10 + 50 ※score.txtのデータの並び順 学籍番号 点数 Z05001 53 Z05002 ・・・・・・・・・ 0-10 : **** 11-20 : ********** 21-30 : **** ・・・・・・・・・・・・・・・ 91-100 : ** プログラミング入門2
総合演習問題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)について行う)。 x y θ Vx = Vo*cosθ Vy = Vo*sinθ-g*t x = Vo*cosθ*t y = Vo*sinθ*t - 0.5*g*t^2 プログラミング入門2
総合演習問題3(数学:積分近似計算) 二次関数 f(x) = x^2 について、x=0から3までの定 積分 を求めたい。区分求積法により、この 積分の近似値を求めよ。 X軸方向の刻み幅Δxを大→小へと変化させ、近似の精度が良くなることを確認せよ。 0 ※更に自由度を上げるために・・・・ ・積分範囲を可変に ・関数(f(x))を可変に 等、工夫してみるとなお良い。 3 Δx プログラミング入門2