情報とコンピュータ 静岡大学工学部 安藤和敏 2005.10.24.

Slides:



Advertisements
Similar presentations
プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
Advertisements

平成 27 年 10 月 21 日. 【応用課題 2-1 】 次のビット列は、ある 10 進数を 8 ビット固定小数点表示で表した時の ものです。ただし、小数点の位置は 3 ビット目と 4 ビット目の間としてお り、負数は2の補数で表しています。このとき、元の 10 進数を求めてく ださい。
初年次セミナー 第13回 2次元グラフィックス(1).
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
初年次セミナー 第8回 データの入力.
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
情報処理 第12回.
情報とコンピュータ 静岡大学工学部 安藤和敏
Fortran と有限差分法の 入門の入門の…
プログラミング演習(1組) 第7回
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
初年次セミナー 第4回 整数と実数の取り扱い.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
データ構造とアルゴリズム 第10回 mallocとfree
第12回構造体.
数値計算及び実習 第3回 プログラミングの基礎(1).
プログラミング言語論 第6回 型 情報工学科 篠埜 功.
情報科学1(G1) 2016年度.
プログラミング言語論 第4回 手続きの引数機構 変数の有効範囲
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
初年次セミナー 第2回 文字の出力.
プログラミング入門2 総合演習課題 2008年 1/7, 1/21 実施 これまでの講義内容についての腕試し
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
整数データと浮動小数データ 整数データと浮動小数データの違い.
繰り返し計算 while文, for文.
FlexとBison+アルファ -実習編-
第二回 VB講座 電卓を作ろう.
プログラミング応用 printfと変数.
プログラミング演習(2組) 第8回
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
コンピュータに計算させる命令を確かめよう!
前回の練習問題.
情報とコンピュータ 静岡大学工学部 安藤和敏
第7回 条件による繰り返し.
情報とコンピュータ 静岡大学工学部 安藤和敏
情報とコンピュータ 静岡大学工学部 安藤和敏
すべてのレポートの提出期限 1月22日 火曜日 これ以降は特殊な理由が無い限り レポートを受け取りません!
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
2013年度 プログラミングⅡ ~ 計算してみよう ~.
2015年度 プログラミングⅡ ~ 計算してみよう ~.
情報処理Ⅱ 第2回:2003年10月14日(火).
プログラミング言語論 第5回 手続きの引数機構 変数の有効範囲
C言語 はじめに 2016年 吉田研究室.
情報とコンピュータ 静岡大学工学部 安藤和敏
データ構造とアルゴリズム 第11回 リスト構造(1)
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
基礎プログラミング演習 第6回.
第6回レポート解説 条件1 条件2 条件3 月の入力 月、日、曜日の表示 日の入力 曜日の入力
基本情報技術概論(第13回) 埼玉大学 理工学研究科 堀山 貴史
Webページに動きを持たせるJavascript言語について 例題のプログラムを通して体験的に理解することとします。
情報とコンピュータ 静岡大学工学部 安藤和敏
ウェブデザイン演習 第6回.
1.Scheme の式とプログラム.
標準入出力、変数、演算子、エスケープシーケンス
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
プログラミング演習I 数値計算における計算精度と誤差
情報処理Ⅱ 第2回 2004年10月12日(火).
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
プログラミング入門2 第5回 配列 変数宣言、初期化について
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
printf・scanf・変数・四則演算
第2章 数値の入力と変数 scanfと変数をやります.
情報とコンピュータ 静岡大学工学部 安藤和敏
Presentation transcript:

情報とコンピュータ 静岡大学工学部 安藤和敏 2005.10.24

3章 数値計算と関数の学習 数値計算をしてみよう 単純な計算 関数 ループの作成と関数の学習 最適値の探索 情報を配列に格納する 3章 数値計算と関数の学習 数値計算をしてみよう 単純な計算 関数 ループの作成と関数の学習 最適値の探索 情報を配列に格納する 総和,極小,極大を求める プログラミングのパターン

数値計算をしてみよう(1) 20歳の青年が60歳までに1億円貯めるには,毎月いくら貯金しなければならないか? 新預金残高 = 元の預金残高 + (元の預金算残高*金利) この計算を480回繰り返せば,60歳のときの残高が分かる.

数値計算をしてみよう(2) 1000㎡の錫(すず)の板で円柱をつくるとき,その円柱の体積が最大になるのは正確にどの寸法のときか? 最適化:ある状況におけるパラメータの最適値を求める作業.

数値計算をしてみよう(2)

変数の型 変数は,その変数がどのような値を取ることができるか,つまり,変数の型を指定しなければならない. Pascal で用いられる変数の型 例: var position1: string; var 変数名: 変数の型; Pascal で用いられる変数の型 integer: 整数型 (例:1,2,3,…, -5,-6) string: 文字列型 (例:’安藤’, ‘kazu’); real: 実数型

実数(real)型の変数 実数(real)型の変数の値は,仮数部と指数部の二つの部分からなる. 例: 177 = 1.77 × 102    177 = 1.77 × 102 指数部 仮数部 現在のPCで表現できる実数の絶対値の範囲は,10-45~1038,仮数部は7~8桁.

実数(real)型の変数の宣言 例: var x, y, z: real; var 変数名の並び: real;

実数(real)型の変数 var x, y, z: real; begin x := 12.0; y := 13.3 + x; z := (x + 17.2) * (121 – (y / x)); end. x y z 1.2×101 1.2×101 2.53×101 2.53×101 3.471637×103 3.471637×103

四則演算 加算(足し算) ( + ) 減算(引き算) ( - ) 乗算(掛け算) ( * ) 除算(割り算) ( / )

円柱の体積の計算 πを円周率,r を円柱の底面の半径,h を円柱の高さとすると,この円柱の体積 V は これをPascalで書くと, V := 3.14159 * r * r * h;

円柱の体積の計算のアルゴリズム 半径 r を読み込む. 高さ h を読み込む. V = πr2h を計算する. 体積 V を書き出す.

円柱の体積の計算のプログラム program CyllinderVolume(input, output); var r, h, V: real; begin writeLn('円柱の半径を入力して下さい.'); readLn(r); writeLn('円柱の高さを入力してください.'); readLn(h); V := 3.14159*r*r*h; writeLn('円柱の体積は',V,'です.'); end.

円柱の体積の計算のプログラム program CyllinderVolume2(input, output); var r, h: real; begin writeLn(‘円柱の半径と高さを入力して下さい.'); readLn(r,h); writeLn('円柱の体積は',3.14159*r*r*h,'です.'); end.

金利計算の公式 金利は少数で表されているとする.(12% = 0.12) 新預金残高 = 元の預金残高 + (元の預金算残高*金利) savings を預金残高,interestrate を金利とすると,Pascal の計算は, savings := savings + (savings*interestrate);

預金残高計算のアルゴリズム 預金の初期残高 savings を読み込む. 一定期間の金利 interestrate を読み込む. savings := savings + (savings*interestrate) を計算する. savings を書き出す.

預金残高計算のプログラム program FindSavings(input, output); var savings, interestrate: real; begin writeLn(‘預金の初期残高を入力して下さい(単位:万円).'); readLn(savings); writeLn('金利を入力して下さい.'); readLn(interestrate); savings := savings + (savings*interestrate); writeLn(‘一期後の預金残高は,', savings:6:2, '万円です.'); end.

注意(演算の優先順位) x = 2, y = 3, z = 4 のとき,次の計算結果はどうなるか? result := x + y * z;

注意(演算の優先順位) プログラミング言語では,曖昧な状況では,以下のような優先順位を持っている. 優先順位 乗算・除算(*, /) 加算・減算(+, -) x = 2, y = 3, z = 4 のとき,result := x + y * z; を実行した結果は,14.

注意(演算の優先順位) 優先順位の等しい一連の計算では,左から右へ計算が行われる. x = 6, y = 2, z = 3 のとき,result := x / y * z; を実行した結果は, (6/2)*3 = 9   (6/(2*3)=1ではない.) 括弧を使うことで,優先順位を強制的に指定できる. result := (x + y) * z; (result は 24). result := x + (y*z); (result は 36);

注意(誤差) コンピュータのメモリには,有限の桁数の数しか記憶できない. 例えば,1/3を小数で表すと 0.33333….であるが,コンピュータの中では,1/3の計算結果は 0.333333 として記憶される.

ErrorDemo program ErrorDemo(input, output); var data, extra: real; begin readLn(data); readLn(extra); data := data + extra; data := data - extra; writeLn(data:30:2); end.

data = 100 Extra = 100000000000000000000000 data = data+extra = 100000000000000000000100 = 100000000000000000000000 data = data- extra = 0

関数(言語による記述) 関数とは,入力を受け取り,出力を返す機能. 例) 人の名前を受け取るとその人の父親の名前を返す機能.(この関数を F と呼ぶ.) F 入力 出力 小泉孝太郎 石原良純 Abel Issac Abraham 小泉純一郎 Adam 石原慎太郎 例) 国の名前を入力として,首都名を返す関数, 半径と高さを入力としてその円柱の体積を返す関数.

関数(数式による記述) 数学的には,関数名の後の()の中に入力を書き,出力を = の右に書く. 例) 父親関数 F の場合は, F(Issac) = Abraham F(Abel) = Adam F(小泉孝太郎) =小泉純一郎 F(石原良純) =石原慎太郎

数値関数の例 入力データを2倍して返す関数を考え,この関数を d と呼ぶ. d(3) = 6 d(17) = 34 より一般的には,d(x) = 2x と書ける. 円柱の半径 r と円柱の高さ h を受け取って,その 体積を返す関数 v は, v(r, h) = πr2h と書ける.

数値関数の表による記述 2倍関数 d(x) = 2x は以下のような表で表すこともできる.

数値関数の表による記述 円柱体積関数 v(r, h) = πr2h を表現するためには,2次元の表が必要になる.

数値関数のグラフによる記述 2倍関数 d(x) = 2x をグラフで表現すると以下のようになる.

数値関数のグラフによる記述 円柱体積関数 v(r, h) = πr2h をグラフで表現すると以下のようになる.

第2回目のレポートについて 課題:テキスト p.55 練習問題 2 「あなたが興味のある事柄に関して決定木を作り,それをプログラムに書け.」 提出方法:決定木の図を記述した Microsoft Word ファイル,及び,Pascal プログラムをEメールに添付して送信しなさい. Eメールの宛先は,ic@coconut.sys.eng.shizuoka.ac.jp Eメールの送信アドレスは,大学から配布されたものを用いること. Eメールの件名には,      第2回レポート, XXXX-YYYY, ZZZZZZ と記載すること.ここで,XXXX-YYYYは学生番号,ZZZZZZは氏名である. 提出期限は,10月30日(日)17:00 である.