基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)

Slides:



Advertisements
Similar presentations
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
Advertisements

演算、整数型と浮動小数点型 第3回目 [4月27日、H.16(‘04)] 本日のメニュー 1)前回の課題・宿題 2)ファイルサーバの利用
プログラミング入門 電卓番外編 ~エクセルで関数表示~.
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
初年次セミナー 第4回 整数と実数の取り扱い.
計算技術研究会 C言語講座 第3回 Loops (for文 while文).
6/19 前回復習 for文による繰り返し計算 演習1:1から10まで足して画面に結果を表示する 提出者: 1人
解析的には解が得られない 方程式を数値的に求める。 例:3次方程式
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
C言語講座 第4回 ポインタ.
配列の扱い、探索 有効範囲と記憶域期間 第12回 [7月10日、H.15(‘03)] 今日のメニュー 1 前回の課題の復習
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
精密工学科プログラミング基礎Ⅱ 第3回資料 今回の授業で習得してほしいこと: 2次元配列の使い方 (前回の1次元配列の復習もします.)
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
プログラミング演習 バージョン1 担当教員:綴木 馴.
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
Cプログラミング演習 第6回 ファイル処理と配列.
数値積分.
関数の定義.
プログラミング応用 printfと変数.
第10回関数 Ⅱ (ローカル変数とスコープ).
Cプログラミング演習 第7回 メモリ内でのデータの配置.
フーリエ級数展開 ~矩形波について~ 長江 栞 中島 涼 中村 勇樹
プログラミング入門2 第2回 型と演算 条件分岐 篠埜 功.
高度プログラミング演習 (03).
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
知能情報工学演習I 第12回(後半第6回) 課題の回答
前回の練習問題.
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
岩村雅一 知能情報工学演習I 第11回(後半第5回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
整数データと浮動小数データ.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
実数列を生成する際の注意 数学関数の利用 Excel によるリサージュ図形描画 Excel による対数グラフ描画
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
C言語 はじめに 2016年 吉田研究室.
IF文 START もしも宝くじが当たったら 就職活動する 就職活動しない YES END NO.
知能情報工学演習I 第11回( C言語第5回) 課題の回答
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
精密工学科プログラミング基礎 第7回資料 (11/27実施)
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2016年11月25日
実数列を生成する際の注意 数学関数の利用 Excel によるリサージュ図形描画 Excel による対数グラフ描画
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
第4章 double 小数型の変数;.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
プログラミング演習I 数値計算における計算精度と誤差
精密工学科プログラミング基礎Ⅱ 第2回資料 今回の授業で習得してほしいこと: 配列の使い方 (今回は1次元,次回は2次元をやります.)
岩村雅一 知能情報工学演習I 第10回(後半第4回) 岩村雅一
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
地域情報学 C言語プログラミング 第3回 入力、if文、for文 2017年11月1日
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
湘南工科大学 2013年10月22日 情報理論2 湘南工科大学情報工学科 准教授 小林 学.
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
printf・scanf・変数・四則演算
第14章 ファイル操作 14.1 ファイルへの書き込み 14.2 ファイルからの読み込み 14.3 ファイルへの追加書き込み
第2章 数値の入力と変数 scanfと変数をやります.
知能情報工学演習I 第10回( C言語第4回) 課題の回答
第1章 文字の表示と計算 printfと演算子をやります.
第3回Bashゼミ for文処理について 発表者 直江 宗紀.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習) 担当者:  伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習) 2. 数値演算の注意点 (説明と実習) 3. 繰り返しfor, whileの使い方 (説明と実習) 4. 応用問題 (実習) 5. gnuplot(グラフィックソフト)の使い方 (実習)

4.2 円周率の定義の仕方(通常、この様にします) 数学関数を用いた練習(教科書例題4.1~4.5) 4.1 三角関数の引数(ラジアン) 4.2 円周率の定義の仕方(通常、この様にします) 4.3 ceil(小数点切り上げ関数)の使い方 4.4 pow(べき関数)の使い方 4.5 ベクトルの内積(計算機ではベクトルを成分にして処理します) C言語では複素数の取り扱いはない(実数、虚数部に分解)  数値計算では割り算の極限操作は困難です (0/0は計算が困難) P33参照

# include<stdio.h> # include<math.h> int main(void){ 複素数と極限操作 虚数 ”i” の 計算(失敗例) Sin(x)/xの計算 #include <stdio.h> #include <math.h> int main(void){ double x; double y; x=0.5;  y=sin(x)/x; printf("%lf",y); return 0; } # include<stdio.h> # include<math.h> int main(void){ double x; x=sqrt(-1.0); printf("%lf",x); return 0; } 数字を小さく してみましょう z = a + ib ⇒ a,bは別々に取り扱う (Fortranは複素数あり) X=0の計算はできない

2. 大きく桁の違う数字の足し算、引き算には注意 浮動小数点のエラー P34、プログラム例4.2を実行してみましょう 出力形式をlf ⇒ 17.15lfに変更してみてください (17桁中、小数点が15ケタ) 浮動小数点には必ず誤差が付きまとう。この誤差を成長 させないようにプログラムを組まないといけない! 代表的な注意点 1. 小さい数字どうしの割り算に注意 2. 大きく桁の違う数字の足し算、引き算には注意

#include <stdio.h> int main(void){ int i; for(i=1;i<=10;i++){ For, whileによる繰り返し (1) for(初期化 ; 条件式 ; 処理式){ 実行文 } 1. for 文 #include <stdio.h> int main(void){ int i; for(i=1;i<=10;i++){ printf("i=%d\n",i); } return 0; i はカウンタ変数 i = 1からスタート (初期化) i は10以下の条件 (条件式) i =i+1の計算を行う (処理式) printf を実行する できた人は例題7.1を実行。和の計算を勉強してください。

For, whileによる繰り返し (2) while(条件式){ 実行文 } 2. while 文 #include <stdio.h> int main(void){ int i,s; s=0; i=1; while(i<=100){ s+=i; ++i; printf("i=%d s=%d\n",i-1,s); } return 0; i はカウンタ変数(整数型) i は100以下の条件 (条件式) s = s+i (和の計算) i=i+1 (カウンタの計算) Printfの実行

応用問題 1. 計算の仕方 2. 計算結果の出力 xの値 cosh(x)の値 sinh(x)の値 tanh(x)の値 双曲線関数 sinh(x), cosh(x), tanh(x)をx=-3~3の領域で計算せよ。 1. 計算の仕方 双曲線関数は数学関数に無い ⇒ 数学関数の組み合わせで作る。 xの刻み幅は0.1、カウンタiは-30~30までfor文を実行する。 2. 計算結果の出力 結果の出力は任意だが、グラフにすることを考え、以下の様に並べよう。 xの値 cosh(x)の値 sinh(x)の値 tanh(x)の値 ●●● ●●● ●●● ●●●

3. 計算結果のファイルへの保存 計算結果のファイルへの保存は (実行ファイル).exe > (出力ファイル) 4. gnuplotの準備 1. すべてのプログラムからgnuplotを見つける。 2. gnuplotをコピーし、自分の作業フォルダにショートカットを作成する 3. gnuplotのアイコンをダブルクリックし、gnuplotを立ち上げる 4. pwdのコマンドを入力し自分の作業フォルダへ移動する

gnuplotの動かし方 以下のコマンドを入力すべし gnuplot > plot “出力ファイル” using 1:2 with lines ⇒ 出力ファイルの一列目をx軸データ、二列目をy軸データ   として、データ間を直線で結んだグラフが描かれる   ( cosh(x)のグラフ ) 引き続き以下のコマンドを入力すべし gnuplot > replot “出力ファイル” using 1:3 with lines ⇒ sinh(x)のグラフを描く(三列目がy軸) gnuplot > replot “出力ファイル” using 1:4 with lines ⇒ tanh(x)のグラフを描く(四列目がy軸)

双曲線関数計算 の解答例 #include <stdio.h> #include <math.h> int main(void){ double dx,x,y1,y2,y3; int i,j,n; n=30; dx = 0.1; for(i=-30;i<=n;i++){ x=(double) i * dx; y1=( exp(+x)+exp(-x) ) / 2.0; //coh y2=( exp(+x)-exp(-x) ) / 2.0; // sinh y3=( exp(+x)-exp(-x) ) / ( exp(+x)+exp(-x) ); // tanh printf("%lf %lf %lf %lf\n",x,y1,y2,y3); } return 0; 双曲線関数計算 の解答例