您的位置:首页 > 编程语言

如何教孩子Scheme编程(2)

2017-06-11 21:46 567 查看

第二课 猜数字

知识点

变量定义

嵌套调用

条件判断

小朋友在课堂上经常玩这样的游戏:一个人心里想一个数字(1~100以内),另一个人猜,看谁能用最少的次数猜出来。这时告诉孩子,你心里想一个数字,让计算机猜,或者计算机想一个数字,你来猜。这个游戏,孩子是无法抗拒的。

小朋友想一个数字,计算机猜

(define lower 1)
(define upper 100)

(define guess2
(lambda ()
(display '计算机猜这个数字是:)
(quotient (+ lower upper) 2)
)
)
(define too-small
(lambda ()
(set! lower (max lower (+ (guess2) 1)))
(guess2)))

(define too-big
(lambda ()
(set! upper (min upper (- (guess2) 1)))
(guess2)))


计算机想一个数字,小朋友猜

(define secret (random 100))

(define guess
(lambda ()
(display "请输入你猜的数字:")
(let ((b (string->number (read-line))))
(cond
((= b secret) (display '恭喜!猜对了)
(display secret)
(set! secret (random 100)))
((> b secret) (display '笨蛋!太大了) (guess))
((< b secret) (display '笨蛋!太小了) (guess))
(else
(display '不是有效数字)
(guess))
)
)
))


这么短的代码就能实现猜数的功能,小朋友很惊讶!于是小朋友自己玩了很多遍。过了会儿就离开去干别的事情了。

程序逻辑似乎有点难,小朋友在遇到不好理解的东西时习惯性地逃避。好吧,让小朋友歇会儿,我来想想下一课的内容。最好和小朋友念的数学课有关联。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scheme