(共32张PPT)
第31课
百元买百鸡
学习目标
巩固与扩展
项目讨论
逻辑编程
1
2
3
4
1
今有鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?看一下“聪明猫”怎么通过编程的思维解决这道经典问题吧!
2
3
4
巩固“加减乘除”、“舞台背景编号” 、“重复执行” 、“如果那么”等脚本
学习灵活使用“建立变量”、“重复执行直到” 、“连接” 、“建立列表” 、等脚本
综合应用所学脚本完成编程项目并扩展
新脚本:
巩固脚本:
1.本节课用到的角色
2.本节课用到的背景
cat
《百钱买百鸡》
空白背景
1. 公鸡一个五块钱,母鸡一个三块钱,小鸡三个一块钱,用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
2. 可能有几种方法计算出公鸡数量,母鸡数量和小鸡数量?
3.一共设置了几个变量?
5.咦,小猫为什么这么聪明呢?
著名的“百钱买百鸡”问题,一会儿老师会详细讲解
至少一种,用咱们的程序直接就可以得出结果
5个,钱,数量,公鸡数量x,母鸡数量y和小鸡数量z
因为它学过百钱买百鸡这个题目了,并且他也会编程
《百钱买百鸡》
4.一共设置了几个列表?
1个,是“答案”列表
1.百钱买百鸡讲解
1.百钱买百鸡问题
翻译:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。
百鸡问题是一个数学问题,出自中国古代约5—6世纪成书的《张邱建算经》,该问题导致三元不定方程组,其重要之处在于开创“一问多答”的先例。
公鸡数量x
公鸡数量y
小鸡数量z
2.新建变量以及列表
1.新建变量与列表
公鸡
母鸡
小鸡
新建5个变量和一个答案的列表
3.题目解析
1.题目解析
如果用数学的方法解决百钱买百鸡问题,可将该问题抽象成方程式组。设公鸡 x 只,母鸡 y 只,小鸡 z 只,得到以下方程式组:
A:5x+3y+1/3z = 100
B:x+y+z = 100
C:0 < x < 100÷5
D:0 < y <100÷3
E:0 < z < 100÷(1/3)
等你们长大了,可以求解这个不定方程
+
100
=
3×
+
×
1/3
100
=
+
5×
+
数量是100
钱是100
4.初始化程序
1.给变量赋值
列表是存放许多变量的一个容器,可以存储或者获得容器中每一个变量的值。它就像有许多抽屉的梳妆台一样,每个抽屉都存放物品
列表的删除操作
4.初始化程序
1.清空列表
5.方法一
1.解题思路
C:0 《 x 《 100/5
D:0 《 y 《 100/3
E:0 《 z《 100/(1/3)
(1)三层循环找满足两个方程组的x、 y 和z值;
(2)先固定公鸡x的数量;
(3)对于每个新的x,母鸡数量y从0开始,一直循环到 (钱/5) 次;
(4)母鸡数量y从0开始,对于每个y值,小鸡数量z从0开始,一直循环到 钱/(1/3) 次
三层循环
给定“x”、“y”、“z”变量的范围,确定重复执行次数
公鸡数目X的循环次数
母鸡数目y的循环次数
小鸡数目z的循环次数
5.方法一
1.解题思路
2.迭代运算判断
判断是否满足数量和价钱的两个方程式
4.方法一
2.找到答案的程序
连接字符串,得到“公鸡有x只,母鸡有y只,小鸡有z只”
列表的添加操作,将结果写入答案
4.方法一
方法一完整程序(x,y,z三层循环)
4.方法一
3.方法一程序汇总
5.方法二
1.解题思路
(1)设公鸡为x,母鸡为y,小鸡为z,可以得出如下的不定方程: x+y+z=100,
5x+3y+z/3=100,
(2)下面再看看x,y,z的取值范围:
由于只有100文钱,则
5x<100
=> 0同理 0那么z=100-x-y,对应程序为
0< x <20
0< y <33
z=100-x-y
三个变量降为两个变量
此时,只有“总钱数等于100”一个判断条件:
简化为公鸡x和母鸡y的两个循环,小鸡z用x和y来表示
5.方法二
1.解题思路
如果满足,则写入答案列表
只需给定“x”、“y”变量的范围,变量z用x和y表示
5.方法二
2.逻辑编程
此时只需判断是否满足价钱的一个方程式
5.方法二
3.迭代运算判断
4.找到答案的程序
连接字符串,得到“公鸡有x只,母鸡有y只,小鸡有z只”
列表的添加操作,将结果写入答案
5.方法二
方法二完整程序(x和y两层循环)
5.方法二程序
5.方法二
6.方法三
1.解题思路
方法三与方法二类似,简化为公鸡x和母鸡y的两个循环,小鸡z用x和y来表示。不同之处为,采用“重复执行直到”命令代替“重复执行()次”命令
两重“重复执行直到”循环。Z使用x和y来表示
6.方法三
1.解题思路
方法三与方法二类似,简化为公鸡x和母鸡y的两个循环,小鸡z用x和y来表示。不同之处为,采用“重复执行直到”命令代替“重复执行()次”命令
“重复执行直到”命令,其中填入跳出条件
“重复执行()次”命令,其中最大次数
X的跳出循环条件
Y的跳出循环条件
6.方法三
2.找到答案时
与之前相同,列表的添加操作,如果满足,则写入答案列表
6.方法三
3.方法三完整程序
Q1:明明给小猫编程,编写了这样的程序,没有得到正确答案是为什么呢?
A1:开头少了运行小绿旗命令。
Q&A
(1)
(2)
等式和不等式的混合使用,巩固学习拼接复杂编程积木块儿,巩固学习相应的数学原理
用重复执行直到命令时,要特别注意跳出循环条件的写法
知识点巩固
许多
(1)
知识点巩固
列表的使用
列表是存放许多变量的一个容器,可以存储或者获得容器中每一个变量的值。它就像有许多抽屉的梳妆台一样,每个抽屉都存放物品
列表的删除操作
列表的添加操作
明明给小猫的程序进行了这样的编程,那到底是正确还是错误呢?( )
A
B
源码测试
正确
错误
答案:
解析:
不等式跳出条件写错了。不是小于是大于号。正确的应是:
B
源码测试