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