果果编程课】005 如果魔法 —— 让程序会“选择”!

果果编程第5课:如果魔法 —— 让程序会“选择”!

课程目标(45分钟)
学会 if:让程序根据不同情况,做出不同选择!
核心口诀:如果(条件)就做A,否则做B

整体风格延续

  • 口语化故事教学(果果攒钱、精灵冒险)
  • 比喻:如果魔法 = “十字路口的选择精灵”
  • 结合前几课:变量、列表、图形、lambda
  • 逐步递进:从简单判断 → 嵌套判断 → 在map里用if
  • 预告下节:compose 魔法(把多个机器连成超级机器)

第一部分:问题引入(5分钟)

老师故事
“果果攒了好多零花钱,上节课我们用 map 把所有钱都翻倍了!
现在果果要去买最新款小天才手表(2399元)!

如果钱够了 → 果果开心跳舞!🎉
如果钱不够 → 果果伤心继续攒钱 😢

电脑怎么知道‘够不够’?今天教你一个超级魔法:如果魔法
它就像路口的选择精灵:看情况,带你走不同的路!”

板书十字路口图:

1
2
3
4
5
6
7
8
┌──────────────┐
│ 钱够吗? │
└──────┬───────┘

是 │ 否
┌──▼───┐ ┌──▼───┐
│ 买! │ │ 攒! │
└──────┘ └──────┘


第二部分:认识 if 魔法(15分钟)

1. 基本语法(5分钟)

1
2
3
4
5
6
7
#lang racket
(define my-money 2500) ; 果果现在的钱
(define watch-price 2399) ; 手表价格

(if (> my-money watch-price)
"可以买!开心!🎉"
"还差一点,继续攒钱😢")

运行结果:"可以买!开心!🎉"

解释

  • if = 选择精灵启动
  • (> my-money watch-price) = 判断条件(真或假)
  • 第一个字符串 = 条件为真时做的事
  • 第二个字符串 = 条件为假时做的事

比喻
if 就像一个有三个口袋的精灵:

  1. 放判断问题
  2. 放“对的时候做的事”
  3. 放“错的时候做的事”

2. 动手练习(10分钟)

练习1:钱够不够买玩具
改数字试试不同结果!

1
2
3
4
5
6
(define my-money 2000)
(define toy-price 2200)

(if (>= my-money toy-price)
"买买买!"
"再攒攒~")

练习2:图形版如果魔法(结合第一课)

1
2
3
4
5
6
7
(require 2htdp/image)

(define mood "happy") ; 改成 "sad" 试试!

(if (string=? mood "happy")
(circle 50 "solid" "yellow") ; 开心画太阳
(circle 50 "solid" "blue")) ; 伤心画乌云

练习3:数字判断大挑战

1
2
3
4
5
6
7
(define score 85)

(if (>= score 90)
"优秀!得小红花🌸"
(if (>= score 70)
"不错!继续加油🚀"
"要努力哦~"))

老师提示:可以把 if 套 if! 这叫“嵌套判断”


第三部分:如果魔法 + 列表 + map(15分钟)

故事
“果果有好多朋友的成绩单!我们要给每个人发不同鼓励的话!”

1
2
3
4
5
6
7
8
9
(define scores (list 95 82 68 91 75))

(map (lambda (s)
(if (>= s 90)
"超级棒!🌟"
(if (>= s 80)
"很不错!👍"
"加油哦!💪")))
scores)

结果:'("超级棒!🌟" "很不错!👍" "加油哦!💪" "超级棒!🌟" "加油哦!💪")

小挑战:价格标签升级版(结合第4课)

1
2
3
4
5
6
7
(define prices (list 10 60 35 120))

(map (lambda (p)
(if (> p 50)
(string-append (number->string p) "元(贵!)")
(string-append (number->string p) "元(便宜!)")))
prices)

结果:'("10元(便宜!)" "60元(贵!)" "35元(便宜!)" "120元(贵!)")


第四部分:综合创作(8分钟)

终极任务:果果的冒险选择器

1
2
3
4
5
6
7
8
(define energy 80)     ; 果果的体力(0-100)
(define weather "sunny") ; 天气:"sunny" 或 "rainy"

(if (>= energy 70)
(if (string=? weather "sunny")
"去公园玩!🌞"
"在家画画!🎨")
"先休息一下~😴")

创作时间
让孩子们自己设计一个“冒险决策器”:

  • 判断体力 + 天气 + 心情 → 决定今天做什么活动
  • 或者:判断成绩 + 作业完成 → 决定周末玩多久游戏

老师巡回指导,鼓励多层if!


第五部分:总结与作业(2分钟)

核心口诀
if 就是选择魔法:
(if 判断题 对的时候做事 错的时候做事)

今天学会了

  1. if 让程序会判断
  2. 嵌套 if 做多层选择
  3. if 放进 map 批量判断

回家作业(简单又好玩):

  1. 写一个“天气预报机”:输入天气(”sunny”/“rainy”),输出今天穿什么衣服
  2. map + if(list 45 78 92 65 88) 打等级:90+ A,80+ B,70+ C,其他 D

果果编程第5课

下节课预告
“下节课学 compose 组合魔法 —— 把多个变形机器连成一个超级大机器!
比如:先翻倍 → 再加10 → 再变字符串 → 再加‘元’……一行代码搞定!”

板书总结:

1
2
3
4
如果魔法 if
(if 条件 真→做事A 假→做事B)
可以嵌套!
可以和 map 一起用 → 批量判断!

教学小贴士

  • 多用前几课内容(变量、列表、图形、map)做例子,强化衔接
  • 遇到错误就说“选择精灵迷路了,我们帮他指路!”
  • 进度快的孩子可以试 cond 多条件写法(预告高级魔法)

果果们,今天你们都变成了会“选择”的小魔法师啦!✨