3 1 Scheme 2 Scheme Scheme define areaofdisk
- Slides: 112
3 -1 Scheme の関数 2
Scheme のプログラムと関数 • Scheme のプログラムは,一般に,複数の関 数の集まり (define (area-of-disk r) (* 3. 14 (* r r))) (define (area-of-ring outer inner) (- (area-of-disk outer) (area-of-disk inner))) ⇒ 参照: これらは Scheme の式 例題3、4 11
Dr. Scheme の使用 • Dr. Scheme の起動 プログラム → PLT Scheme → Dr. Scheme • 今日の演習では「Intermediate Student」 に設定 Language → Choose Language → Intermediate Student → Execute ボタン 15
2乗の和のプログラム • x 2+y 2 を求める (define (sqr x) (* x x)) (define (sum-of-squares x y) (+ (sqr x) (sqr y))) sqr の部分 sum-of-squares の部分 46
関数の関係 sum-of-squares 関数 (define (sum-of-squares x y) (+ (sqr x) (sqr y))) sum-of-squares 関数の中で, sqr 関数を使っている(2箇所) sqr 関数 (define (sqr x) (* x x)) 47
例題4.ステップ実行 • 関数 sum-of-squares (例題3)について,実行結 果に至る過程を見る • (sum-of-squares 20 30) から 1300 に至る過程を見る • Dr. Scheme の stepper を使用する (define (sqr x) (* x x)) (define (sum-of-squares x y) (+ (sqr x) (sqr y))) (sum-of-squares 20 30) = (+ (sqr 20) (sqr 30)) = (+ (* 20 20) (sqr 30)) = (+ 400 (* 30 30)) = (+ 400 900) = 1300 50
(sum-of-squares 20 30) から 1300 が得られる過程 (sum-of-squares 20 30) = (+ (sqr 20) (sqr 30)) = (+ (* 20 20) (sqr 30)) これは, = (+ 400 (sqr 30)) (define (sum-of-squares x y) (+ 30 (sqr 30)) x) (sqr y))) = (+ 400 (* の x を 20 で,y を 30 で置き換えたもの = (+ 400 900) = 1300 59
リングの面積のプログラム 外径: outer 内径: inner (define (area-of-disk r) (* 3. 14 (* r r))) (define (area-of-ring outer inner) (- (area-of-disk outer) (area-of-disk inner))) outer area-of-disk の部分 area-of-ring の部分 71
関数の関係 area-of-ring 関数 (define (area-of-ring outer inner) (- (area-of-disk outer) (area-of-disk inner))) area-of-disk 関数 (define (area-of-disk r) (* 3. 14 area-of-ring 関数の中で, (* r r))) area-of-disk 関数を使っている(2箇所) 72
データの流れ area-of-ring 関数 (define (area-of-ring outer inner) (- (area-of-disk outer) (area-of-disk inner))) ① 数値を, area-of-disk 関数に渡す ②渡された値を, 「r」という名前で使う area-of-disk 関数 (define (area-of-disk r) (* 3. 14 (* r r))) ③実行結果を area-of-ring 関数に返す 73
例題6.ステップ実行 • 関数 area-of-ring (例題5)について,実行結果 に至る過程を見る • (area-of-ring 5 3) から 50. 24 に至る過程を見る • Dr. Scheme の stepper を使用する (define (area-of-disk r) (* 3. 14 (* r r))) (define (area-of-ring outer inner) (- (area-of-disk outer) (area-of-disk inner))) (area-of-ring 5 3) = (- (area-of-disk 5) (area-of-disk 3)) = (- (* 3. 14 (* 5 5)) (area-of-disk 3)) = (- (* 3. 14 25) (area-of-disk 3)) = (- 78. 5 (* 3. 14 (* 3 3))) = (- 78. 5 (* 3. 14 9)) = (- 78. 5 28. 26) = 50. 24 75
(area-of-ring 5 3) から 50. 24 が得られる過程 (area-of-ring 5 3) 最初の式 = (- (area-of-disk 5) (area-of-disk 3)) = (- (* 3. 14 (* 5 5)) (area-of-disk 3)) (- (area-of-disk outer) (area-of-disk inner)) に outer = 5, inner = 3 が代入される (* 3. 14 (* r r)) に r = 5 が代入される = (- (* 3. 14 25) (area-of-disk 3)) (* 5 5) → 25 = (- 78. 5 (area-of-disk 3)) (* 3. 14 25) → 78. 5 = (- 78. 5 (* 3. 14 (* 3 3))) (* 3. 14 に r = 3 が代入される (* r r)) = (- 78. 5 (* 3. 14 9)) (* 3 3) → 9 = (- 78. 5 28. 26) (* 3. 14 9) → 28. 26 = 50. 24 実行結果 コンピュータ内部での計算 86
(area-of-ring 5 3) から 50. 24 が得られる過程 (area-of-ring 5 3) = (- (area-of-disk 5) (area-of-disk 3)) = (- (* 3. 14 (* 5 5)) (area-of-disk 3)) =これは, (- (* 3. 14 25) (area-of-disk 3)) (define (area-of-ring = (- 78. 5 (area-of-disk 3)) outer inner) ((area-of-disk outer) = (- 78. 5 (* 3. 14 (* 3 3))) (area-of-disk inner))) =の (- 78. 5 (* 3. 14 outer を 59)) で,inner を 3 で置き換えたも =の (- 78. 5 28. 26) = 50. 24 87
「例題7.利益の計算」の手順 (1/4) 1. 次を「定義用ウインドウ」で,実行しなさい • 文法的な「間違い」が無いことを確認するため,入力した後 Execute ボタンを押す ; ; profit : number -> number ; ; to compute the profit as the difference between ; ; revenue and costs at some given ticket-price (define (profit ticket-price). . . ) ; ; revenue: number → number ; ; to compute the revenue, given ticket-price (define (revenue ticket-price). . . ) ; ; cost : number -> number ; ; to compute the cost, given ticket-price (define (cost ticket-price). . . ) ; ; attendees: number → number ; ; to compute the number of attendees, ; ; given ticket-price (define (attendees ticket-price). . . ) ☆ 次ページに進んでください 94
(define (profit ticket-price) (- (revenue ticket-price) profit 関数 (cost ticket-price))) (define (revenue ticket-price) (* (attendees ticket-price)) revenue 関数 (define (cost ticket-price) (+ 180 cost 関数 (* 0. 04 (attendees ticket-price)))) (define (attendees ticket-price) (+ 120 (* (/ 15 0. 10) (- 5. 00 ticket-price)))) attendees 関数 105
関数の関係 profit 関数 (define (profit ticket-price) (- (revenue ticket-price) (cost ticket-price))) revenue, cost 関数を 使っている revenue 関数 (define (revenue ticket-price) (* (attendees ticket-price)) attendees 関数を使っている cost 関数 (define (cost ticket-price) (+ 180 (* 0. 04 (attendees ticket-price)))) attendees 関数を使っている attendees 関数 (define (attendees ticket-price) (+ 120 (* (/ 15 0. 10) (- 5. 00 ticket-price)))) 106
例題8.ステップ実行 • 関数 profit (例題7)について,実行結果に至る 過程を見る • (profit 3) から 1063. 2 に至る過程を見る • Dr. Scheme の stepper を使用する (profit 3) = (- (revenue 3) (cost 3)) = (- (* (attendees 3) 3) (cost 3)) = (- (* (+ 120 (* (/ 15 0. 10) (- 5. 00 3))) 3) (cost 3)) = (- (* (+ 120 (* 150 2)) 3) (cost 3)) = (- (* (+ 120 300) 3) (cost 3)) = (- (* 420 3) (cost 3)) = (- 1260 (+ 180 (* 0. 04 (attendees 3)))) = (- 1260 (+ 180 (* 0. 04 (+ 120 (* (/ 15 0. 10) (- 5. 00 3)))))) = (- 1260 (+ 180 (* 0. 04 (+ 120 (* 150 2))))) = (- 1260 (+ 180 (* 0. 04 (+ 120 300)))) = (- 1260 (+ 180 (* 0. 04 420))) = (- 1260 (+ 180 16. 8)) = (- 1260 196. 8) =1063. 2 107
「例題3.ステップ実行」の手順 1. 次を「定義用ウインドウ」で,実行しなさい • Intermediate Student で実行すること • 入力した後に,Execute ボタンを押す ; ; profit: number -> number ; ; to compute the profit as the difference between ; ; revenue and costs at some given ticket-price (define (cost ticket-price) (+ 180 (*. 04 (attendees ticket-price)))) ; ; revenue: number → number ; ; to compute the revenue, given ticket-price (define (revenue ticket-price) (* (attendees ticket-price)) ; ; cost : number -> number ; ; to compute the cost, given ticket-price (define (cost ticket-price) (+ 180 (*. 04 (attendees ticket-price)))) ; ; attendees: number → number ; ; to compute the number of attendees, ; ; given ticket-price (define (attendees ticket-price) (+ 120 (* (/ 15. 10) (- 5. 00 ticket-price)))) (profit 3) 例題7と同じ ステップ実行したい ので,入力済みの プログラムは,消さず に残しておく 例題7に 1行書き加える 2. Dr. Scheme を使って,ステップ実行の様子を 確認しなさい (Step ボタン,Next ボタンを使用) 108
(profit 3) から 1063. 2 が得られる過程 (profit 3) 最初の式 = (- (revenue 3) (cost 3)) = (- (* (attendees 3) 3) (cost 3)) = (- (* (+ 120 (* (/ 15 0. 10) (- 5. 00 3))) 3) (cost 3)) = (- (* (+ 120 (* 150 2)) 3) (cost 3)) = (- (* (+ 120 300) 3) (cost 3)) = (- (* 420 3) (cost 3)) = (- 1260 (+ 180 (* 0. 04 (attendees 3)))) = (- 1260 (+ 180 (* 0. 04 (+ 120 (* (/ 15 0. 10) (- 5. 00 3)))))) = (- 1260 (+ 180 (* 0. 04 (+ 120 (* 150 2))))) = (- 1260 (+ 180 (* 0. 04 (+ 120 300)))) = (- 1260 (+ 180 (* 0. 04 420))) = (- 1260 (+ 180 16. 8)) コンピュータ内部での計算 = (- 1260 196. 8) 109 =1063. 2 実行結果
(profit 3) から 1063. 2 が得られる過程 (profit 3) 最初の式 = (- (revenue 3) (cost 3)) = (- (* (attendees 3) 3) (cost 3)) = (- (* (+ 120 (* (/ 15 0. 10) (- 5. 00 3))) 3) (cost 3)) =これは, (- (* (+ 120 (* 150 (- 5. 00 3))) 3) (cost 3)) = (- (* (+ 120 (* 150 2)) 3) (cost 3)) (profit ticket-price) = (- (define (* (+ 120 300) 3) (cost 3)) = (- (*(-420 3) (cost 3))ticket-price) (revenue = (- 1260(cost 3)) ticket-price))) = (- 1260 (+ 180 (* 0. 04 (attendees 3)))) ticket-price を (+3 120 で置き換えたもの =の (- 1260 (+ 180 (* 0. 04 (* (/ 15 0. 10) (- 5. 00 3)))))) = (- 1260 (+ 180 (* 0. 04 (+ 120 (* 150 2))))) = (- 1260 (+ 180 (* 0. 04 (+ 120 300)))) = (- 1260 (+ 180 (* 0. 04 420))) = (- 1260 (+ 180 16. 8)) = (- 1260 196. 8) =1063. 2 実行結果 110
3 -3 課題 111
- 3 domain scheme and 5 kingdom scheme
- Stata graph schemes download
- Pyramid scheme vs ponzi
- Year 7 food technology scheme of work
- Jonathan and frances eduqas mark scheme
- Heroic couplet
- Blake complementary opposites
- Abab rhyme scheme
- Sonnet 127
- Structure of we wear the mask
- Relocating loader diagram
- Relocation and linking concepts
- Pe understanding standards
- Pattern
- Tiep 1 application form
- Belt of straw and ivy buds
- The lake isle of innisfree poem analysis
- The scheme of redemption
- Rhyme scheme of shakespeare sonnet
- Double split complementary colors
- Aldi lawrence
- My heart leaps up litcharts
- Dante's inferno terza rima
- Stopping by woods on a snowy evening tone
- Sonnet shall i compare thee
- English sonnet
- My mistress' eyes are nothing like the sun rhyme scheme
- Structure of she walks in beauty
- Tpcastt sonnet 130
- Sonnet poetry comedy drama
- Sonnet 130 simile, metaphor and personification
- Seneca gpa
- How to prepare scheme of work
- Python scheme
- Rhyme scheme meter
- Rhyming words for relax
- Examples of rhymes in poems
- Rhyme ex
- Commercial framework
- Piddle-paddle by jaymie gerard.
- Benefits of vande mataram scheme slideshare
- Raws certified workshop
- Grandmother's song nellie wong
- Hkie scheme a cpd
- Bel retired employees health scheme
- Farewell love by thomas wyatt
- External rhyme scheme
- Refrain in poetry
- Musical devices in poetry
- Terza rima
- Stanzas
- Abab poem example
- 2 elements of poetry
- A dream deferred poem analysis
- English poem for class 5
- Rhyme scheme
- An example of ode
- Ballad structure
- Pmss scheme
- Avoid monochromatic color scheme when plating.
- Pfizer uk graduate scheme
- Ozymandias poem quotations
- Summary of the poem ozymandias
- In this scheme cpu execution waits while i/o proceeds.
- O captain! my captain! analysis
- Ess scheme nsw
- Continuous progression scheme
- Nmdc pension scheme
- Mid day meal scheme in tripura
- Love is not all you need
- Literary terms hyperbole
- Limerick poem rhyme scheme
- Limerick structure
- Criminology unit 3 notes
- Mary had a little lamb rhyme scheme
- Definition of network marketing
- Langage scheme
- Lancashire pe scheme of work
- Invitation formal and informal
- Icds scheme
- No guilt in life
- No power of death no scheme of man
- Modulation coding scheme
- Ict services scheme
- Closed form solution
- Midday meal scheme in tamil
- Gcse media studies nea 2021
- Scheme foldl
- Scheme functional programming
- External rhyme scheme
- Example of scheme of work
- Aglm scheme feeders
- What is split complementary color scheme
- How to prepare scheme of work
- Rhyme in dulce et decorum est
- Dulce et decorum est alliteration
- Plt scheme
- Hyperbole about the beach
- Rhyming scheme of twinkle twinkle little star
- The rhyme scheme for this is twinkle twinkle little star
- Square color scheme
- Tetrad color scheme interior design
- The visual response of the eye to reflected rays of light
- Warwick mentoring scheme
- 2019 ib boundaries
- Single user contiguous scheme in operating system
- Whirlpool in cryptography
- Function of the control unit
- Polipotent
- Blank rose and berlin 1978
- Bioseparation techniques
- Square color scheme
- Aswas scheme