Scratch少儿编程第四例:简易计算器

项目介绍

这是一个功能完整的简易计算器,可以进行加减乘除四则运算,学习变量使用、条件判断和数学运算,培养逻辑思维和数学能力。

学习目标

  • ✅ 掌握变量的创建和使用
  • ✅ 学习条件判断和逻辑运算
  • ✅ 理解数学运算原理
  • ✅ 培养严谨的逻辑思维

详细步骤

第一步:创建计算器界面

创建变量:

  1. 数字1 - 存储第一个数字
  2. 数字2 - 存储第二个数字
  3. 运算符 - 存储运算符号
  4. 结果显示 - 存储计算结果
  5. 当前输入 - 存储正在输入的数字

绘制计算器界面:

当绿旗被点击
切换背景为 [计算器背景 v]
显示变量 [当前输入 v]
显示变量 [结果显示 v]
将 [当前输入 v] 设为 [0]
将 [结果显示 v] 设为 []
将 [数字1 v] 设为 [0]
将 [数字2 v] 设为 [0]
将 [运算符 v] 设为 []

第二步:创建数字按钮

数字0-9按钮代码:

当角色被点击
如果 <(当前输入) = [0]> 那么
  将 [当前输入 v] 设为 [1]
否则
  将 [当前输入 v] 设为 (连接 (当前输入) [1])

为每个数字创建对应的按钮角色,修改代码中的数字。

第三步:创建运算符按钮

加法按钮:

当角色被点击
将 [数字1 v] 设为 (当前输入)
将 [运算符 v] 设为 [+]
将 [当前输入 v] 设为 [0]

减法按钮:

当角色被点击
将 [数字1 v] 设为 (当前输入)
将 [运算符 v] 设为 [-]
将 [当前输入 v] 设为 [0]

乘法按钮:

当角色被点击
将 [数字1 v] 设为 (当前输入)
将 [运算符 v] 设为 [*]
将 [当前输入 v] 设为 [0]

除法按钮:

当角色被点击
将 [数字1 v] 设为 (当前输入)
将 [运算符 v] 设为 [/]
将 [当前输入 v] 设为 [0]

第四步:等号按钮和计算逻辑

当角色被点击
将 [数字2 v] 设为 (当前输入)

如果 <(运算符) = [+]> 那么
  将 [结果显示 v] 设为 ((数字1) + (数字2))
否则
  如果 <(运算符) = [-]> 那么
    将 [结果显示 v] 设为 ((数字1) - (数字2))
  否则
    如果 <(运算符) = [*]> 那么
      将 [结果显示 v] 设为 ((数字1) * (数字2))
    否则
      如果 <(运算符) = [/]> 那么
        如果 <(数字2) = [0]> 那么
          将 [结果显示 v] 设为 [错误:除数不能为0]
        否则
          将 [结果显示 v] 设为 ((数字1) / (数字2))
        end
      end
    end
  end
end

将 [当前输入 v] 设为 (结果显示)

第五步:清除按钮

当角色被点击
将 [当前输入 v] 设为 [0]
将 [结果显示 v] 设为 []
将 [数字1 v] 设为 [0]
将 [数字2 v] 设为 [0]
将 [运算符 v] 设为 []

完整代码示例

主程序初始化:

当绿旗被点击
切换背景为 [计算器界面 v]
将 [当前输入 v] 设为 [0]
将 [结果显示 v] 设为 [欢迎使用!]
将 [数字1 v] 设为 [0]
将 [数字2 v] 设为 [0]
将 [运算符 v] 设为 []

数字按钮通用代码:

当角色被点击
如果 <(当前输入) = [0]> 那么
  将 [当前输入 v] 设为 (造型名称)
否则
  将 [当前输入 v] 设为 (连接 (当前输入) (造型名称))

小数点按钮:

当角色被点击
如果 <不 <(当前输入) 包含 [.]> > 那么
  将 [当前输入 v] 设为 (连接 (当前输入) [.])

等号按钮完整代码:

当角色被点击
将 [数字2 v] 设为 (当前输入)

如果 <(运算符) = [+]> 那么
  将 [结果显示 v] 设为 (连接 (连接 (连接 (连接 (数字1) [+]) (数字2)) [=]) ((数字1) + (数字2)))
否则
  如果 <(运算符) = [-]> 那么
    将 [结果显示 v] 设为 (连接 (连接 (连接 (连接 (数字1) [-]) (数字2)) [=]) ((数字1) - (数字2)))
  否则
    如果 <(运算符) = [*]> 那么
      将 [结果显示 v] 设为 (连接 (连接 (连接 (连接 (数字1) [*]) (数字2)) [=]) ((数字1) * (数字2)))
    否则
      如果 <(运算符) = [/]> 那么
        如果 <(数字2) = [0]> 那么
          将 [结果显示 v] 设为 [错误:除数不能为0]
        否则
          将 [结果显示 v] 设为 (连接 (连接 (连接 (连接 (数字1) [/]) (数字2)) [=]) ((数字1) / (数字2)))
        end
      end
    end
  end
end

将 [当前输入 v] 设为 [0]

创意扩展

版本一:科学计算器

当 [s v] 键被点击  // 平方
将 [结果显示 v] 设为 (连接 (连接 (当前输入) [的平方是]) ((当前输入) * (当前输入)))

当 [r v] 键被点击  // 平方根
将 [结果显示 v] 设为 (连接 (连接 (当前输入) [的平方根是]) ([sqrt v] (当前输入)))

版本二:百分比计算

当 [p v] 键被点击  // 百分比
将 [结果显示 v] 设为 (连接 (连接 (当前输入) [%等于]) ((当前输入) / (100)))

版本三:记忆功能

当绿旗被点击
变量 [记忆值 v] 设为 [0]

当 [M+ v] 键被点击  // 记忆加
将 [记忆值 v] 设为 ((记忆值) + (当前输入))

当 [MR v] 键被点击  // 读取记忆
将 [当前输入 v] 设为 (记忆值)

高级功能

连续运算功能

当角色被点击  // 改进的等号按钮
将 [数字2 v] 设为 (当前输入)

如果 <(运算符) = [+]> 那么
  将 [结果显示 v] 设为 ((数字1) + (数字2))
否则
  ... // 其他运算符
end

将 [数字1 v] 设为 (结果显示)
将 [当前输入 v] 设为 [0]
将 [结果显示 v] 设为 (连接 (连接 (连接 (连接 (数字1) (运算符)) (数字2)) [=]) (结果显示))

键盘输入支持

当 [0 v] 键被按下
广播 [数字0被点击 v]

当 [1 v] 键被按下
广播 [数字1被点击 v]

// 为每个数字键创建对应事件

计算历史记录

当绿旗被点击
列表 [计算历史 v] 删除全部项目

当按下 [等号 v]  // 在计算完成后
添加 (结果显示) 到 [计算历史 v]

界面设计技巧

创建美观的按钮:

  1. 使用矩形工具绘制按钮
  2. 添加阴影效果
  3. 使用不同颜色区分功能
    • 数字按钮:浅蓝色
    • 运算符按钮:橙色
    • 功能按钮:红色
    • 等号按钮:绿色

显示区域设计:

当绿旗被点击
绘制长方形,作为显示屏
将显示屏颜色设为深灰色
在显示屏上显示变量 [当前输入] 和 [结果显示]

教学提示

给家长的指导:

  1. 数学概念:结合实际数学问题讲解运算原理
  2. 逻辑思维:强调计算器的逻辑流程
  3. 错误处理:讲解除数为零等错误情况的处理

学习要点:

  • 变量作用:理解不同变量的用途
  • 条件判断:掌握多重条件判断的使用
  • 字符串操作:学习字符串连接和显示

探索问题:

  • “计算器是如何知道我们要进行哪种运算的?”
  • “如果连续按多个运算符会发生什么?”
  • “怎样防止用户输入错误?”

调试技巧

常见问题解决:

Q:计算结果不正确
A:检查变量类型,确保使用数字运算而非字符串连接

Q:显示混乱
A:合理设置变量初始值,及时清空不需要的变量

Q:除零错误
A:添加条件判断,防止除数为零

项目成果

完成这个项目后,孩子将拥有:

  • 一个功能完整的四则运算计算器
  • 对变量和条件判断的深入理解
  • 严谨的逻辑思维能力
  • 解决实际数学问题的工具

实际应用

鼓励孩子在生活中使用:

  1. 检查数学作业答案
  2. 计算零花钱花费
  3. 解决日常生活中的数学问题

让编程成为解决实际问题的强大工具! 🧮✨🔢

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐