Microsoft PowerPoint コンピュータ物理2_第2回.pptx

Size: px
Start display at page:

Download "Microsoft PowerPoint コンピュータ物理2_第2回.pptx"

Transcription

1 コンピュータ物理学 2 第 2 回 ( ) 第 1 回 10/ 2( 金 ) ガイダンス 第 2 回 10/ 9( 金 ) 数値表現と誤差 第 3 回 10/16( 金 ) 第 4 回 10/23( 金 ) 数値微分 積分 第 5 回 10/30( 木 ) 第 6 回 11/13( 金 ) 第 7 回 11/20( 金 ) 常微分方程式 第 8 回 11/27( 金 ) 第 9 回 12/ 4( 金 ) 第 10 回 12/11( 金 ) 偏微分方程式 第 11 回 12/18( 金 ) 第 12 回 12/25( 金 ) 第 13 回 1/ 8( 金 ) モンテカルロ法 第 14 回 1/ 22( 金 ) 量子力学 第 15 回 1/ 29( 金 ) 第 16 回 2/ 5( 金 )

2 達成したい流れ まずどういうプログラムを作りたいのかを想定するのが大事 第 1 回の続き ; Guss 分布データの計算 生成 ソースプログラムをコンパイルして > ++ guss. o guss.ee プログラムを実行すると >./guss.ee 平均値 標準偏差 を聞かれるので適当な値を入力すると > Men vlue? : 100 > Stndrd devition? : 30 o オプション : コンパイルして出来上がる実行ファイル名を guss.ee に指定 こう入力すると m=100, sigm=30 をもとに = 20 から =220 まで d=2.4 刻みでガウス関数値を算出し 出力ファイル (guss.dt) に書き出すようなプログラムを作る この値をもとにガウス関数を計算した値のデータファイルが生成される (=100 を中心に ±120 の範囲で 100 個のデータ生成する 刻み幅 =240/100=2.4) ファイル guss.dt の中身 f()

3 /* Guss funtion */ #inlude <stdio.h> #inlude <mth.h> #define n 100 /* point numer */ doule guss_f(doule, doule m, doule sigm){ doule g; g = 1.0/(sqrt(2.0*M_PI*sigm*sigm))*ep( ( m)*( m)/(2*sigm*sigm)); return g; int min() { /* lol vriles */ doule m, sigm; /* men, stndrd devition */ doule min, m; /* lultion region */ doule, d, guss; int i; FILE *outfile; ここでは分割数は define で定義 π はヘッダファイル mth.h の中で定義されている 日本語変換で π とかしないこと 後で見て分かりやすいようにコメント文を付けること プログラムを見やすくするために インデント ( 字下げ ) を活用する 使う変数の型宣言 プログラムでは日本語変換された文字は使わないこと σ ではなく 半角文字の sigm を使う 等 /* min progrm */ printf("men vlue? "); snf("%lf", &m); printf("stndrd devition? "); snf("%lf", &sigm); outfile = fopen("guss.dt", "w"); min = m sigm*4; m = m + sigm*4; = min; d = (m min)/n; for(i=1; i<=n; i++){ guss = guss_f(, m, sigm); fprintf(outfile, %f %11.8f n",, guss); += d; 1 回ループごとに に d を足す = +d と書いても良い プログラムを走らせたら Men vlue? と端末上に表示させて そこでキーボードから手入力した数字を変数 m に代入する (sigm も同様 ) 計算する範囲を最小値 最大値を指定して決定する =min から始まって d ごとに を増やして 100 回関数 guss を計算する snf で数値を読み取る場合は doule 型なら %lf とする flot 型なら %f で良い guss.dt という名前でファイルを作り 書き込めるモード w で開く 計算刻み幅 d は全データが 100 個になるように (m min) を 100 で割る guss 関数を計算する部分 ここでは min 関数とは別に用意した関数 guss にて計算をさせる 渡す変数は計算に必要な, m, sigm の 3 つ ファイルに出力するのは と計算値 guss 浮動小数点表示は %f だが 表示させる桁を指定したい場合は %11.8 等とする ( 小数点部 8 桁 全部で 11 桁で揃える場合 )

4 C++ 仕様の書き方 : #inlude <iostrem> #inlude <fstrem> #inlude <mth.h> using nmespe std; doule guss_f(doule, doule m, doule sigm){ doule g; g = 1.0/(sqrt(2.0*M_PI*sigm*sigm))*ep( ( m)*( m)/(2*sigm*sigm)); return g; int min() { doule m, sigm, min, m, guss,, d; int i, n=100; out << "Men vlue?"; in >> m; out << "Stndrd devition?"; in >> sigm; std::ofstrem ofs("guss.dt"); out << "m=" << m << endl; out << "sigm=" << sigm << endl; min = m sigm*4; m = m+sigm*4; = min; d = (m min)/n; for(i=1; i<=n; i++){ guss = guss_f(, m, sigm); ofs << << " " << guss << std::endl; +=d;

5 gnuplot で guss.dt をプロットする (1) スタートメニューから gnuplot を起動する (2) 現在の作業ディレクトリに移動する (3) guss.dt をプロットする gnuplot では uni コマンド d (hnge diretory) が使えるただし 移動先のディレクトリ名は で囲む この授業での環境なら d z: 等 plot guss.dt と入力するとデータの 1 列目を横軸 2 列目を縦軸にしてプロットしてくれる

6 (4) もうひとつ作った guss0.dt も並べてプロットする

7 第 2-3 回のテーマ 扱える数値の大きさ 小ささ 数値計算で生じる誤差 例題 レポート問題を通してこれらを定量的に評価できるようにする 級数和の計算 計算結果ファイルから数値を読み取っての比較

8 数値表現 it : メモリの最小記憶単位 (0, 1 の 2 進数 ) 1 B N it を使って表せる整数は 2 N 個 符号の正負区別に 1it 使うので 2 N 1 個 yte : 1 yte = 1 B = 8 its 1 kb = 2 10 B = 1024 ytes 1yte = 8it は 2 8 =256 1 yte で英数字 1 文字を記憶できる = 061 = = 062 = 等 int 型整数 : 32 it 2 31 までの整数を表現できる ,147,483, 648 許される限度を超えた大きな数計算機が扱える精度より小さな数 overflow underflow limits.h 内で INT_MAX 等で定義されている

9 浮動小数点は? = (-1) [ 符号部 ] [ 仮数部 ] 2 [ 指数部 ] [ バイアス ] 例 : (-1) flot 型 1 つの実数変数を表すのに 32 it を使う 1it: 符号部 8it: 指数部 23it: 仮数部 [ バイアス ]= ~ を実現 10 進数で 38 桁 m m2 2 m3 2 m23 2 仮数部の有効桁数 = 2 進数で 23 桁 = 10 進数で log 桁 例 : 3.5 仮数 : 符号 = +, 絶対値 = 2.5 ( 仮数部の定義は [ 仮数部 1]) 基数 : 2 で固定 (IEEE 方式 ) 指数 : 0 = (-1) = (-1) = (-1) 0 (1+0.75) 符号部 = 0 仮数部 = 0.75 = 指数部 = 128 = 2 7 =

10 doule 型 1 つの実数変数を表すのに 64 it を使う ( 倍精度 ) 符号部 1it 指数部 11 it [ バイアス ]= ~ を実現 10 進数で 308 桁 m 仮数部 52 it m2 2 m3 2 m52 2 仮数部の有効桁数 = 2 進数で 52 桁 = 10 進数で log 桁 例題 1: 数値範囲の確認 doule 型の変数 に対して 1~180 までの階乗を計算し コンピュータ上での数値を確認せよ 1!, 2!, 3!, 4!, 5!,..., 180! また 各時点の と同時に y=1/ と z=*y も表示して 計算結果がどう表示されるか確認せよ 階乗は for ループの各回ごとに 1 づつ増える整数をかければ良い *=i 等 ( I は for 文のパラメータ ) 大きな数値や小さな数値を表示させるときは指数で出すのが良い ; printf( %e, ) 端末上にこう出力させたい i=1 ; =1.0, y=1.0, z=1.0 i=2 ; =2.0, y=0.5, z=1.0 i=3 ; =6.0, y= , z=1.0 : : : : : : : : 無限大 (inf) や非数値 (NN) がどういう状況で出てきてしまうかわかっておく ( 今後も計算結果に inf / NN が出て悩むことがあるかもしれないので )

11 端末上にこう出力させたい i=1 ; =1.0, y=1.0, z=1.0 i=2 ; =2.0, y=0.5, z=1.0 i=3 ; =6.0, y= , z=1.0 : : : : : : : : そのためには : For 文 for(i=1; i<=180; i++) を使って i=1 の時点では = 1 i=2 の時点では = 2 1 i=3 の時点では = 等々を各回ごとに出力する 1 回前のループでの の値に今回のループでの i の値をかけることで 階乗が得られる = * i ( に i をかけた値を新たに に代入する ) これと同じ演算を *= i と書ける 当然 i が増えていくと! は爆発的に増えていく そこで浮動小数点が扱える範囲を超えるのを確認する 同時に の逆数も各ループで見てみる y=1/ として こちらは i が増えていくと 極めて小さい数値になっていく *y は定義上 1 だが や y が正常値をとれなくなると 値が定義できなくなるので それも見る =1.0; 0! = 1 なので 初期値は=1. for(i=1; i<=n; i++){ *= i; y=1/; z=*y; printf("i=%d =%e y=%e z=%e n", i,, y, z); 浮動小数点を指数型 (10^) で表示させると大きな数値や小さな数値を精度良く見れる (%e)

12 数値計算における誤差 コンピュータ上で計算を行う際 2 種類の誤差を考慮する必要がある (1) 近似誤差 コンピュータで問題を解くために 数学の厳密性を簡単化したために生じる誤差 無限級数 有限の和 無限小の間隔 有限のステップ e n N! n f ( ) d lim f N n 0 n n 0! n 1 0 N n0 n N 1 N N n0 f n N 1 N (2) 丸め誤差 計算機で扱う数値は有限個のビットで表されるので ( 有限な桁数を扱う ) 精度に限界があり 誤差が生じる 計算内容によっては有限桁数しか扱えないために生じる誤差が蓄積して大きな誤差を生じることがある 引き算で生じる誤差 ( 桁落ち ) 掛け算で生じる誤差

13 演算で生じる誤差 計算機で行われる計算は解析的な解に対する近似でしかない 2 つの数値の和を計算する場合を考える : 計算機の中での数値は添え字 を付けて厳密値と異なる近似値だと考えられる : 計算機内の有限桁数により生じる誤差を ε, ε とすると 1 1 誤差 1% なら ε = 0.01 誤差 0.1% なら ε = 一方 引算では 相対誤差は 1 の平均的誤差は と の誤差を重み付きで平均したもの だとすると ( 一方の誤差が大きい場合 ) 1 大きい方の誤差で和の誤差が決まる 引算で生じる相対誤差は 1 のときは の相対誤差が大きくなる ほとんど同じ大きさの数の間で差をとる 大きい桁の部分がなくなる 残りの小さい桁の部分に占める誤差の割合が相対的に大きくなる 桁落ち

14 桁落ちの例 大きい値同士の差で小さい値が生じるとき と の差を計算することを 考える ともに有効数字 7 桁の精度を保持している 有効数字は 3 桁 小さい値同士の差で小さい値が生じるとき と の差を計算することを 考える ともに有効数字 7 桁の精度を保持している 有効数字は 5 桁

15 例題 2: 桁落ちが見られる関数計算 球 Bessel 関数 球 Bessel 関数 j l () を l = 2,3,4,, 10 まで計算 ファイル出力してグラフで確認する 漸化式と既知の j 0 (), j 1 () から求める 2l 1 jl 1( ) jl ( ) jl 1( ) j 0 ( ) sin, j ( ) 1 sin os 2 キーボード入力で計算したい次数 l を決めて計算できるようにする = 0.1 (=min) から始めて 刻み幅 0.1 で = 30 (=m) までの範囲で計算する for 文で を増加するループを作り 各回において決めた l に対する j l () を漸化式から計算する 漸化式を計算するのも欲しい l に達するまで for 文でループさせる 漸化式計算は関数として別たてするとよい doule up(doule, int l){ min 関数内で for(=min; <=m; +=d){ u = up(, l); fprintf(outfile, "%f %f n",, u); ( 上昇漸化式なので関数名を up としてる ) 漸化式は前の 2 つの項から求めるので 2 つ前の項を one 1 つ前の項を two として three = (2.0*n+1.0)/ * two one として新たな項を求める (n を増加させていく ) l が大きくなってくると原点付近で計算に誤差が生じてくる j 0 () j 1 () これを計算する (j 2 ()) 同様に j 10 () まで

プログラミング実習I

プログラミング実習I プログラミング実習 I 03 変数と式 人間システム工学科井村誠孝 [email protected] 3.1 変数と型 変数とは p.60 C 言語のプログラム中で, 入力あるいは計算された数や文字を保持するには, 変数を使用する. 名前がついていて値を入れられる箱, というイメージ. 変数定義 : 変数は変数定義 ( 宣言 ) してからでないと使うことはできない. 代入 : 変数には値を代入できる.

More information

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき

More information

PowerPoint Presentation

PowerPoint Presentation 工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 2018/10/05 竹島研究室創成課題 第 2 回 C 言語演習 変数と演算 東京工科大学 加納徹 前回の復習 Hello, world! と表示するプログラム 1 #include 2 3 int main(void) { 4 printf("hello, world! n"); 5 return 0; 6 } 2 プログラム実行の流れ 1. 作業ディレクトリへの移動 $ cd

More information

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く 変数 入出力 演算子ここまでに C 言語プログラミングの様子を知ってもらうため printf 文 変数 scanf 文 if 文を使った簡単なプログラムを紹介した 今回は変数の詳細について習い それに併せて使い方が増える入出力処理の方法を習う また 演算子についての復習と供に新しい演算子を紹介する 変数の宣言プログラムでデータを取り扱う場合には対象となるデータを保存する必要がでてくる このデータを保存する場所のことを

More information

計算機シミュレーション

計算機シミュレーション . 運動方程式の数値解法.. ニュートン方程式の近似速度は, 位置座標 の時間微分で, d と定義されます. これを成分で書くと, d d li li とかけます. 本来は が の極限をとらなければいけませんが, 有限の小さな値とすると 秒後の位置座標は速度を用いて, と近似できます. 同様にして, 加速度は, 速度 の時間微分で, d と定義されます. これを成分で書くと, d d li li とかけます.

More information

パソコンシミュレータの現状

パソコンシミュレータの現状 第 2 章微分 偏微分, 写像 豊橋技術科学大学森謙一郎 2. 連続関数と微分 工学において物理現象を支配する方程式は微分方程式で表されていることが多く, 有限要素法も微分方程式を解く数値解析法であり, 定式化においては微分 積分が一般的に用いられており. 数学の基礎知識が必要になる. 図 2. に示すように, 微分は連続な関数 f() の傾きを求めることであり, 微小な に対して傾きを表し, を無限に

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 講座を行う前に 自己紹介 僕と上回生について 1 年生同士で少しお話しよう! オリエンテーションの宿題 アルゴロジック http://home.jeita.or.jp/is/highschool/algo/index3.html どこまでできましたか? あまりできなかった人はこれから全部クリアしよう! 2016 年度 C 言語講座 第一回目 2016/6/11 fumi 今回の目標 プログラムを書いて実行するやり方を覚える

More information

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

書式に示すように表示したい文字列をダブルクォーテーション () の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf( 情報処理基礎 ); printf(c 言語の練習 ); printf 情報処理基礎 C 言語についてプログラミング言語は 1950 年以前の機械語 アセンブリ言語 ( アセンブラ ) の開発を始めとして 現在までに非常に多くの言語が開発 発表された 情報処理基礎で習う C 言語は 1972 年にアメリカの AT&T ベル研究所でオペレーションシステムである UNIX を作成するために開発された C 言語は現在使われている多数のプログラミング言語に大きな影響を与えている

More information

PowerPoint Presentation

PowerPoint Presentation プログラミング基礎 第 2 週 (4,5,6 回 ) 2011-10-07 出村公成 この資料の再配布を禁止します 予定 プログラミング入門 (45 分 ) 変数 入出力 分岐 演習 (90 分 ) タッチタイプ練習 統合開発環境 Codeblocksの使い方 教科書例題の打ち込みと実行 プログラミング入門 C 言語の簡単な例を体験 変数 入出力 分岐 プログラムの例リスト 2.1 改 #include

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 多倍長精度演算の性能評価 日時 年 月 日 :3-: 場所工学院大学新宿校舎 8 階第 4 会議室 高エネルギー加速器研究機構 濱口信行 [email protected] // 第 回多倍長精度計算フォーラム . はじめに 計算センター => ユーザプログラムの実行効率は何 % です よく出ています or 改善してください 実行性能 = 演算量 / 実行時間実行効率 = 実行性能 / 理論性能 ユーザ実行時間

More information

Taro-数値計算の誤差(公開版)

Taro-数値計算の誤差(公開版) 0. 目次 1. 情報落ち 計算のルールを 10 進 4 桁 切り捨て と仮定する 2 つの数の加算では まず小数点が合わされ 大きい数が優先される したがって 12.34 + 0.005678 は 12.34 と計算される このように 絶対値の小さい数を絶対値の大きい数に加えてもほとんど影響を与えない現象を情報落ちという 2. オーバーフロー アンダーフロー 計算結果の絶対値がコンピュータの処理できる最大の数を越えてしまう現象をオーバーフローという

More information

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ 4 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プログラミング技術 工業 333 実教出版 ) 共通 : 科目 プログラミング技術 のオリエンテーション プログラミング技術は

More information

Microsoft PowerPoint コンピュータ物理2_第1回.pptx

Microsoft PowerPoint コンピュータ物理2_第1回.pptx コンピュータ物理学 2 第 1 回 (2016.10.4) 第 1 回 10/ 4( 火 ) ガイダンス 第 2 回 10/11( 火 ) 数値表現と誤差 第 3 回 10/18( 火 ) 第 4 回 10/25( 火 ) 数値微分 積分 第 5 回 11/ 1( 火 ) 第 6 回 11/ 8( 火 ) 第 7 回 11/15( 火 ) 常微分方程式 第 8 回 11/22( 火 ) 第 9 回

More information

Microsoft PowerPoint - program.ppt [互換モード]

Microsoft PowerPoint - program.ppt [互換モード] プログラミング演習 バージョン 1 担当教員 : 綴木馴 プログラムの決まりについて学ぶ おすすめする参考書 ザ C 戸川隼人サイエンス社 本日の予定 1. 授業の説明. 2. コンパイラーのインストール. プログラムの決まりについて学ぶ,P31 /* The most in C */ /* hello.c */ printf("hello,world n"); プログラムの決まり ( コメント )

More information

Microsoft Word - NumericalComputation.docx

Microsoft Word - NumericalComputation.docx 数値計算入門 武尾英哉. 離散数学と数値計算 数学的解法の中には理論計算では求められないものもある. 例えば, 定積分は, まずは積分 ( 被積分関数の原始関数をみつけること できなければ値を得ることはできない. また, ある関数の所定の値における微分値を得るには, まずその関数の微分ができなければならない. さらに代数方程式の解を得るためには, 解析的に代数方程式を解く必要がある. ところが, これらは必ずしも解析的に導けるとは限らない.

More information

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作ります FORTRAN の場合 OPEN 文でファイルを開いた後 標準入力の場合と同様に READ 文でデータを読みこみます

More information

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること C プログラミング演習 1( 再 ) 4 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順

More information

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤

情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤 情報工学実験 C コンパイラ第 2 回説明資料 (2017 年度 ) 担当 : 笹倉 佐藤 2017.12.7 前回の演習問題の解答例 1. 四則演算のできる計算機のプログラム ( 括弧も使える ) 2. 実数の扱える四則演算の計算機のプログラム ( 実数 も というより実数 が が正しかったです ) 3. 変数も扱える四則演算の計算機のプログラム ( 変数と実数が扱える ) 演習問題 1 で行うべきこと

More information

cp-7. 配列

cp-7. 配列 cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標

More information

ガイダンス

ガイダンス 情報科学 B 第 2 回変数 1 今日やること Java プログラムの書き方 変数とは何か? 2 Java プログラムの書き方 3 作業手順 Java 言語を用いてソースコードを記述する (Cpad エディタを使用 ) コンパイル (Cpad エディタを使用 ) 実行 (Cpad エディタを使用 ) エラーが出たらどうしたらよいか??? 4 書き方 これから作成する Hello.java 命令文 メソッドブロック

More information

memo

memo 数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int

More information

講習No.1

講習No.1 プログラムはどこに保存され, どこで実行されるのか? 復習 ハードディスク キーボード Central Processing Unit 例えば i7, ARM, Cortex-A17 ディスプレイ 例えば 4G バイト メモリ プログラムは, ワープロ文章などと同様, ハードディスクなどにファイルとして保存されている. プログラムは, メモリ上に呼び出されて ( ロード ) 実行される. プログラムの作成

More information

数値計算で学ぶ物理学 4 放物運動と惑星運動 地上のように下向きに重力がはたらいているような場においては 物体を投げると放物運動をする 一方 中心星のまわりの重力場中では 惑星は 円 だ円 放物線または双曲線を描きながら運動する ここでは 放物運動と惑星運動を 運動方程式を導出したうえで 数値シミュ

数値計算で学ぶ物理学 4 放物運動と惑星運動 地上のように下向きに重力がはたらいているような場においては 物体を投げると放物運動をする 一方 中心星のまわりの重力場中では 惑星は 円 だ円 放物線または双曲線を描きながら運動する ここでは 放物運動と惑星運動を 運動方程式を導出したうえで 数値シミュ 数値計算で学ぶ物理学 4 放物運動と惑星運動 地上のように下向きに重力がはたらいているような場においては 物体を投げると放物運動をする 一方 中心星のまわりの重力場中では 惑星は 円 だ円 放物線または双曲線を描きながら運動する ここでは 放物運動と惑星運動を 運動方程式を導出したうえで 数値シミュレーションによって計算してみる 4.1 放物運動一様な重力場における放物運動を考える 一般に質量の物体に作用する力をとすると運動方程式は

More information

Microsoft PowerPoint - kougi4.ppt

Microsoft PowerPoint - kougi4.ppt C の実行モデル 自由落下距離 前回の授業の 例題 1 の復習と重要事項 の確認 地上で物を落とし始めた後の自由落下距離を 求める 重力加速度 g は 9.8 とする 自由落下距離を求めるために, プログラム中に, 計算式 y = ( 9.8 / 2.0 ) * x * x を書く C++ ソースファイルの編集 編集画面 編集中のファイル名 関係するファイルなどが表示される ビルド結果などが表示される画面

More information

Microsoft PowerPoint - 第3回2.ppt

Microsoft PowerPoint - 第3回2.ppt 講義内容 講義内容 次元ベクトル 関数の直交性フーリエ級数 次元代表的な対の諸性質コンボリューション たたみこみ積分 サンプリング定理 次元離散 次元空間周波数の概念 次元代表的な 次元対 次元離散 次元ベクトル 関数の直交性フーリエ級数 次元代表的な対の諸性質コンボリューション たたみこみ積分 サンプリング定理 次元離散 次元空間周波数の概念 次元代表的な 次元対 次元離散 ベクトルの直交性 3

More information

データ解析

データ解析 データ解析 ( 前期 ) 最小二乗法 向井厚志 005 年度テキスト 0 データ解析 - 最小二乗法 - 目次 第 回 Σ の計算 第 回ヒストグラム 第 3 回平均と標準偏差 6 第 回誤差の伝播 8 第 5 回正規分布 0 第 6 回最尤性原理 第 7 回正規分布の 分布の幅 第 8 回最小二乗法 6 第 9 回最小二乗法の練習 8 第 0 回最小二乗法の推定誤差 0 第 回推定誤差の計算 第

More information

情報処理演習 B8クラス

情報処理演習 B8クラス 予定スケジュール ( 全 15 回 ) 1 1. 終了 プログラミング言語の基礎 2. 終了 演算と型 3. 終了 プログラムの流れの分岐 (if 文,switch 文など ) 4. 終了 プログラムの流れの繰返し (do, while, for 文など ) 5. 終了 中間レポート1 6. 終了 配列 7. 終了 関数 8. 終了 文字列 ( 文字列の配列, 文字列の操作 ) 9. 終了 ポインタ

More information

Cプログラミング1(再) 第2回

Cプログラミング1(再) 第2回 C プログラミング 1( 再 ) 第 2 回 講義では Cプログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ 1 前回のレポートから 前回の宿題 数あてゲーム の説明において 次のように書いていたものがいた : これはコンピュータがランダムに設定した数字を人間が当てるゲームである この説明でどこかおかしなところはないだろうか? 2 コンピュータの用語と日常的な用語の違い 物理において

More information

- 2 -

- 2 - 計算機工学 第1回 計算機利用の基礎1 計算機の仕組み 1 1 計算機はどのようなハードウェアによって構成されているのか 1 2 計算機の五大装置 制御の流れ データの流れ 制御装置 記憶装置に記録されているプログラムを解読し その指示に従ってその他の装置 を制御する 演算装置 四則演算 条件判断 論理演算を行う 上記2つを合わせて CPU(Central Processing Unit)と呼ぶ 記憶装置

More information

Microsoft PowerPoint - H22制御工学I-2回.ppt

Microsoft PowerPoint - H22制御工学I-2回.ppt 制御工学 I 第二回ラプラス変換 平成 年 4 月 9 日 /4/9 授業の予定 制御工学概論 ( 回 ) 制御技術は現在様々な工学分野において重要な基本技術となっている 工学における制御工学の位置づけと歴史について説明する さらに 制御システムの基本構成と種類を紹介する ラプラス変換 ( 回 ) 制御工学 特に古典制御ではラプラス変換が重要な役割を果たしている ラプラス変換と逆ラプラス変換の定義を紹介し

More information

微分方程式による現象記述と解きかた

微分方程式による現象記述と解きかた 微分方程式による現象記述と解きかた 土木工学 : 公共諸施設 構造物の有用目的にむけた合理的な実現をはかる方法 ( 技術 ) に関する学 橋梁 トンネル ダム 道路 港湾 治水利水施設 安全化 利便化 快適化 合法則的 経済的 自然および人口素材によって作られた 質量保存則 構造物の自然的な性質 作用 ( 外力による応答 ) エネルギー則 の解明 社会的諸現象のうち マスとしての移動 流通 運動量則

More information

プログラミング実習I

プログラミング実習I プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 [email protected] 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,

More information

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63> C 言語講座第 2 回 作成 : ハルト 前回の復習基本的に main () の中カッコの中にプログラムを書く また 変数 ( int, float ) はC 言語では main() の中カッコの先頭で宣言する 1 画面へ出力 printf() 2 キーボードから入力 scanf() printf / scanf で整数を表示 / 入力 %d 小数を表示 / 入力 %f 3 整数を扱う int 型を使う

More information

<4D F736F F D2094F795AA95FB92F68EAE82CC89F082AB95FB E646F63>

<4D F736F F D2094F795AA95FB92F68EAE82CC89F082AB95FB E646F63> 力学 A 金曜 限 : 松田 微分方程式の解き方 微分方程式の解き方のところが分からなかったという声が多いので プリントにまとめます 数学的に厳密な話はしていないので 詳しくは数学の常微分方程式を扱っているテキストを参照してください また os s は既知とします. 微分方程式の分類 常微分方程式とは 独立変数 と その関数 その有限次の導関数 がみたす方程式 F,,, = のことです 次までの導関数を含む方程式を

More information

Microsoft PowerPoint - CproNt02.ppt [互換モード]

Microsoft PowerPoint - CproNt02.ppt [互換モード] 第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント

More information

Microsoft PowerPoint - kougi2.ppt

Microsoft PowerPoint - kougi2.ppt C プログラミング演習 第 2 回 Microsoft Visual Studio.NET を使ってみよう 説明 例題 1. プログラム実行の体験 コンピュータを役に立つ道具として実感する 次ページのプログラムを使って, Microsoft Visual Studio.NETでの C++ ソースファイル編集, ビルド, テスト実行の一連の過程を体験する 例題 1 のプログラムの機能 計算の繰り返し

More information

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y  小幡智裕 Java Script プログラミング入門 3-6~3-7 茨城大学工学部情報工学科 08T4018Y 小幡智裕 3-6 組み込み関数 組み込み関数とは JavaScript の内部にあらかじめ用意されている関数のこと ユーザ定義の関数と同様に 関数名のみで呼び出すことができる 3-6-1 文字列を式として評価する関数 eval() 関数 引数 : string 式として評価する文字列 戻り値 :

More information

Microsoft PowerPoint コンピュータ物理2_第1回.pptx

Microsoft PowerPoint コンピュータ物理2_第1回.pptx コンピュータ物理学 第 1 回 (015.10.) 第 1 回 10/ ( 金 ) ガイダンス 第 回 10/ 9( 金 ) 数値表現と誤差 第 3 回 10/16( 金 ) 第 4 回 10/3( 金 ) 数値微分 積分 第 5 回 10/30( 木 ) 第 6 回 11/13( 金 ) 第 7 回 11/0( 金 ) 常微分方程式 第 8 回 11/7( 金 ) 第 9 回 1/ 4( 金 )

More information

Microsoft PowerPoint - 基礎・経済統計6.ppt

Microsoft PowerPoint - 基礎・経済統計6.ppt . 確率変数 基礎 経済統計 6 確率分布 事象を数値化したもの ( 事象ー > 数値 の関数 自然に数値されている場合 さいころの目 量的尺度 数値化が必要な場合 質的尺度, 順序的尺度 それらの尺度に数値を割り当てる 例えば, コインの表が出たら, 裏なら 0. 離散確率変数と連続確率変数 確率変数の値 連続値をとるもの 身長, 体重, 実質 GDP など とびとびの値 離散値をとるもの 新生児の性別

More information

Microsoft PowerPoint - å®�æ−•試é¨fi3ㆮ対ç�Œ.pptx

Microsoft PowerPoint - å®�æ−•試é¨fi3ㆮ対ç�Œ.pptx C言語の繰り返し処理 for文と while文と do文 臼杵 潤 0) 準備 変数の加減算 int a, b=10; // a= a = 0; a = a+1; // a= a += 1; // a= // a= a ++; a = a + b; // a= a += b; // a= // a= a --; 下を1行ずつ実行すると それぞれ aの値はどう変わるか 0 1 2 3 13 23 22

More information

数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留

数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留 第 10 章分割コンパイル 1 ソースを分割する今まで出てきたソースは全て一つのソースファイルにソースを記述してきました しかし ソースが長くなっていくと全てを一つのファイルに書くと読みづらくなります そこで ソースを複数のファイルに分割してコンパイルを行う分割コンパイルをします 今章は章名にもなっている 分割コンパイルの方法についてやります 分割コンパイルする時は大抵 関連性のある機能ごとにファイルにまとめます

More information

Autodesk Inventor Skill Builders Autodesk Inventor 2010 構造解析の精度改良 メッシュリファインメントによる収束計算 予想作業時間:15 分 対象のバージョン:Inventor 2010 もしくはそれ以降のバージョン シミュレーションを設定する際

Autodesk Inventor Skill Builders Autodesk Inventor 2010 構造解析の精度改良 メッシュリファインメントによる収束計算 予想作業時間:15 分 対象のバージョン:Inventor 2010 もしくはそれ以降のバージョン シミュレーションを設定する際 Autodesk Inventor Skill Builders Autodesk Inventor 2010 構造解析の精度改良 メッシュリファインメントによる収束計算 予想作業時間:15 分 対象のバージョン:Inventor 2010 もしくはそれ以降のバージョン シミュレーションを設定する際に 収束判定に関するデフォルトの設定をそのまま使うか 修正をします 応力解析ソルバーでは計算の終了を判断するときにこの設定を使います

More information

PowerPoint Presentation

PowerPoint Presentation ファイルの入出力 芝浦工業大学情報工学科 青木義満 今回の講義内容 ファイル入出力 ファイルからのデータ読込み ファイルと配列 2 1 ファイルへのデータ書き込み ( 復習 ) ソースファイル名 :fileio1.c データをファイルに書き込み #include int main(void) { ファイルポインタ宣言 int student_id = 100; char name[

More information

プログラミング基礎

プログラミング基礎 C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス

More information

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド メソッド ( 教科書第 7 章 p.221~p.239) ここまでには文字列を表示する System.out.print() やキーボードから整数を入力する stdin.nextint() などを用いてプログラムを作成してきた これらはメソッドと呼ばれるプログラムを構成する部品である メソッドとは Java や C++ などのオブジェクト指向プログラミング言語で利用されている概念であり 他の言語での関数やサブルーチンに相当するが

More information

Microsoft PowerPoint - prog06.ppt

Microsoft PowerPoint - prog06.ppt プログラミング言語 2 第 06 回 (2007 年 06 月 11 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 06 月 11 日分と書いてある部分が 本日の教材です 本日の内容

More information