1 / 9

2.1 式

2.1 式. コードのほとんどすべて. 式?. 式ってどれのこと? コード内に存在する 値を表すあらゆる記述 のこと 値を返す 関数も式に含める ことが出来る. 10. count + 1. x. sin(0.05). cos(rad ) + x. 実際のコードでは. 実際のコードでは 複雑な式 が登場する ただの代入でも 関数と変数が入り乱れたり・・・ どんな様子で処理が進むのか見てみよう. // ニュートン法を用いて、 // 実数 d の平方根を取得する関数 double Sqrt( double d) { double x = d;

marty
Télécharger la présentation

2.1 式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2.1式 コードのほとんどすべて

  2. 式? • 式ってどれのこと? • コード内に存在する値を表すあらゆる記述のこと • 値を返す関数も式に含めることが出来る 10 count + 1 x sin(0.05) cos(rad) + x 2.1 式

  3. 実際のコードでは • 実際のコードでは複雑な式が登場する • ただの代入でも関数と変数が入り乱れたり・・・ • どんな様子で処理が進むのか見てみよう // ニュートン法を用いて、 // 実数 d の平方根を取得する関数 double Sqrt(double d) { double x = d; for (int i = 0; i < 10; i++) { x = (pow(x, 2) + d) / (2 * x); } return x; } 2.1 式

  4. 実際のコードでは • Sqrt(2.0)として呼んだ時のことを考える • dは 2.0なので、x = dで xも 2.0になるよね • ループ1回目での、この行の処理を考えよう // ニュートン法を用いて、 // 実数 d の平方根を取得する関数 double Sqrt(double d) { double x = d; for (int i = 0; i < 10; i++) { x = (pow(x, 2) + d) / (2 * x); } return x; } 2.1 式

  5. 式評価の流れ(1) • まず xに代入したいけど、右辺が分からない • 右辺を左から順に解釈してゆく • 関数 powを実行したいが xが分からない • x の内容を読み込んで置き換える • 関数 pow を実行し、戻り値に置き換える x=(pow(x,2)+d)/(2*x); x=(pow( 2.0 ,2)+d)/(2*x); x=( 4.0 +d)/(2*x); 2.1 式

  6. 式評価の流れ(2) • 今度は dが分からない • d の内容を読み込んで置き換える • ただの定数になったので計算する • 続いて xが分からない • xの内容を読み込んで置き換える x=( 4.0 + 2.0 )/(2*x); x=6.0 /(2*x); x=6.0/(2* 2.0 ); 2.1 式

  7. 式評価の流れ(3) • ただの定数になったので計算する • ただの定数になったので計算する • 全体が完全に定数になったので代入 x=6.0/ 4.0 ; x=1.5 ; x= 1.5 ; 2.1 式

  8. 流れを把握する意義 • バカバカしいみたいだけども重要 • いざ自分で書くときに自然にできるようになろう • 特に関数を式に含めるのに慣れよう • いちいち変数に代入していては非効率だよね // こういう風にも書けるけど double a = pow(x, 2) + d; double b = 2 * x; x = a / b; // こっちのがスッキリしてるよね x = (pow(x, 2) + d) / (2 * x); 2.1 式

  9. 補足事項 • 見やすいコードを書こう(式編) • Wikiを見てね http://nanzanmmc.net/pc/lecture/game/add 2.1 式

More Related