プログラミング入門2 第13回、14回 総合演習 情報工学科 篠埜 功.

Slides:



Advertisements
Similar presentations
放射線の計算や測定における統計誤 差 「平均の誤差」とその応用( 1H) 2 項分布、ポアソン分布、ガウス分布 ( 1H ) 最小二乗法( 1H )
Advertisements

情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
初年次セミナー 第8回 データの入力.
プログラミング基礎I(再) 山元進.
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
第1回 担当: 西山 統計学.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
最終回 総合演習 第13回目 [7月17日、H.15(‘03)] 本日のメニュー 1)総合演習課題 2)過去の試験問題 3)試験について
プログラミング演習(2組) 第12回
第13回 プログラミングⅡ 第13回
流れ(3時間分) 1 ちらばりは必要か? 2 分散・標準偏差の意味 3 計算演習(例題と問題) 4 実験1(きれいな山型の性質を知ろう)
IT入門B2 (木曜日1限) 第一回 講義概要 2004年月9日30日.
放射線の計算や測定における統計誤差 「平均の誤差」とその応用(1H) 2項分布、ポアソン分布、ガウス分布(1H) 最小二乗法(1H)
数値計算及び実習 第7回 プログラミングの基礎(5).
シミュレーション物理7 乱数.
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
問題 1 キーボードから入力した数の合計を計算するプログラムを 作成せよ。最初に、何個の数を入力するかその数を入力 するようにする。
湘南工科大学 2013年12月10日 プログラミング基礎1 湘南工科大学情報工学科 准教授 小林 学.
1変量データの記述 経済データ解析 2006年度.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
プログラミング入門2 総合演習課題 2008年 1/7, 1/21 実施 これまでの講義内容についての腕試し
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
第7回 条件による繰り返し.
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
数値積分.
プログラミング演習(2組) 第8回
第10回関数 Ⅱ (ローカル変数とスコープ).
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第2回 ファイル処理 情報・知能工学系 山本一公
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
前回の練習問題.
第7回 条件による繰り返し.
第9回関数Ⅰ (簡単な関数の定義と利用) 戻り値.
プログラミング入門2 第11回 情報工学科 篠埜 功.
測定したデータの平均値を計算してグラフを描こう
情報基礎Ⅱ (第11回) 月曜4限 担当:北川 晃.
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
第4回 ファイル入出力方法.
プログラミング入門2 第13回、14回 総合演習 情報工学科 篠埜 功.
プログラミング入門2 第10回 構造体 情報工学科 篠埜 功.
疑似乱数, モンテカルロ法によるシミュレーション
プログラミング入門2 総合演習課題 2008年 12/22(月), 2009年 1/14(水) 実施 これまでの講義内容についての腕試し
C言語 はじめに 2016年 吉田研究室.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
プログラミング演習I 2003年7月2日(第11回) 木村巌.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
度数分布表における平均・分散 (第1章 記述統計の復習 補足)
情報工学Ⅱ (第9回) 月曜4限 担当:北川 晃.
1変量データの記述 (度数分布表とヒストグラム)
精密工学科プログラミング基礎 第7回資料 (11/27実施)
プログラミング入門2 第5回 配列 for文 変数宣言 初期化
cp-15. 疑似乱数とシミュレーション (C プログラミング演習,Visual Studio 2019 対応)
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
Cプログラミング演習 ニュートン法による方程式の求解.
プログラミング基礎a 第7回 C言語によるプログラミング入門 ファイル入出力
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
情報工学科 3年生対象 専門科目 システムプログラミング 第3回 makeコマンド 動的リンクライブラリ 情報工学科 篠埜 功.
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
Cp-1. Microsoft Visual Studio 2019 C++ の使い方 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
プログラミング入門2 第5回 配列 変数宣言、初期化について
プログラミング入門2 第3回 条件分岐(2) 繰り返し文 篠埜 功.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

プログラミング入門2 第13回、14回 総合演習 情報工学科 篠埜 功

次回について 次回は1/14(木)です。

今日と次回の内容 これまでの学習内容を用いて、少し複雑な問題を3問解く。 TAに確認してもらう期限: 第14回の終了時(16:10)までとする。これまでの課題についても第14回の終了時まで受け付ける。

期末試験について 日時 第15回 1/18(月) 3限のみ 場所 3409教室 持ち込み不可 出題範囲: 第1回から第14回まですべて 日時 第15回 1/18(月) 3限のみ 場所 3409教室 持ち込み不可 出題範囲: 第1回から第14回まですべて 出題形式:中間試験と同様とする予定。

総合演習課題1(円周率近似値計算) モンテカルロ法による円周率の近似値の計算を行うプログラムを書け。 生成する点の個数はキーボードから受け取るようにせよ。 乱数の生成にはMersenne twisterを用いよ。 (実行例) [sasano@oli004 13kai]$ ./a.out 点の生成回数: 1000000 円周率=3.141200 [sasano@oli004 13kai]$

総合演習課題2(統計処理) 100名分の学生の学籍番号と点数(100点満点)が格納されているデータファイル(score.txt 、HPからダウンロード)を読み込み、これらのデータに対して以下を行うプログラムを作成せよ。 右のように10点刻みで分布グラフを(文字で)画面に表示し、平均点、最高点、最低点、標準偏差 を画面に表示する。 全員分の偏差値をファイル(ファイル名は自由)に出力する。その際、学籍番号と点数も一緒に以下の順で書きだす。   学籍番号 点数 偏差値 ○分散 = (データを2乗した値の総和 - (データの総和の2乗 /データ数)) / データ数 ○標準偏差:分散の正の平方根 ○偏差 = 個々の値 - 平均値 ○偏差値 = (偏差 / 標準偏差) * 10 + 50 0-10 : **** 11-20 : ******* ・・・ 91-100 : **

総合演習課題3(積分近似計算) 二次関数 f(x) = x2 について、x=0から3までの定積分を求めたい。区分求積法により、この積分の近似値を求めよ。 x軸方向の刻み幅Δxを大→小へと変化させ、近似の精度が良くなることを確認せよ。 y 0 3 x Δx

チャレンジ課題 課題3において、積分範囲をキーボードから受け取れるようにせよ。

Mersenne Twisterの使い方 http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/mt19937ar.html のページから、mt19937ar.sep.tgzをダウンロードする。ダウンロードしたtgzファイルを適当なディレクトリにおき、以下のようにして展開する。 $ tar zxvf mt19937ar.sep.tgz ファイルがそのディレクトリに5つ展開される。その中のmt19937ar.cとmt19937ar.hを用いる。 この演習では、mt19937ar.c中のgenrand_real2()という関数を用いることとする。これは0以上1未満の乱数を生成する。

Mersenne Twisterの使い方(続き) genrand_real2()関数を呼び出すプログラムの先頭において、 #include "mt19937ar.h“ を記述する。(genrand_real2()のプロトタイプ宣言を読み込む為。)これまでは#include <stdio.h>のように< >の中にヘッダーファイル名を書いていたが、これは定められたディレクトリから探してくるという意味である。カレントディレクトリにあるヘッダーファイルを読み込む場合は” “で囲む。 コンパイルは、genrand_real2()関数を使っているファイルの名前をkadai1.cとすると、 $ gcc kadai1.c mt19937ar.c のように行う。 (参考)Mersenne Twisterの改良版SFMTも公開されている。

Mersenne Twisterの使い方(続き) 実行毎に生成する乱数列を変えたい場合は、 init_genrand (time(0));のように、time関数の返り値を初期化関数に与えるようにすればよい。 (init_genrand関数を最初に一度呼び出してから、genrand_real2()関数を必要な回数呼び出せばよい。)

円周率の近似値の計算 y (1,1) (0,1) x (1,0) (0,0) 0から1の範囲の乱数を2つ生成すると、それらは上記の正方形の範囲内の1つの座標と見ることができる。 点をN個生成し、そのうちn個が円の中に入っていた場合は、(n/N)*4が円周率の近似値となる。

課題2補足説明 score.txtからの学籍番号、点数の読み取り方法について 平方根について まず、ファイルをオープンする。 scoreFile = fopen (“score.txt”, “r”); 次に、fscanfで一行ずつデータを読み込む。 fscanf (scoreFile, “%s%d”, …………); 平方根について 数学ライブラリlibm.so中のsqrt関数を用いる。(double型を受け取り、その平方根をdouble型で返す) #include <math.h>を先頭に加える。 コンパイル時に、$ gcc kadai2.c -lm のようにすることにより、libm.soが検索され、リンクされる。