资源简介 (共28张PPT)第19课猴子吃桃+李白喝酒学习目标巩固与扩展项目讨论逻辑编程12341用编程解决经典数学问题,体会编程与数学深度结合之美。今天用编程思维解决2个经典数学题目。学习“逆推”和“递归”思维。234巩固“变量”、“等号、减号” 、“广播” 、“碰到指针”等脚本学习灵活使用“询问回答”、“重复执行直到” 等脚本综合应用所学脚本完成编程项目并扩展新脚本:巩固脚本:1.本节课用到的角色2.本节课用到的背景Monkey2无需背景《1-猴子吃桃》1.猴子摘了一堆桃子,第一天吃了一半,还嫌不过瘾,又吃了一个。第二天又将剩下的桃子吃了一半零一个。以后每天如此到第10天的时候,只剩下了一个桃子,问最初有多少支桃子?2.你们知道这在程序上是什么么?这个咱们可以从第10天开始计算,一点一点往前倒推也可以用程序递归思维来解题,一会儿咱们详细讲解。用程序来解答这道题,在程序上就是递归,一会儿给大家详细介绍。《1-猴子吃桃》1.猴子吃桃问题讲解1.猴子吃桃问题猴子摘了一堆桃子,第一天吃了一半,还嫌不过瘾,又吃了一个。第二天又将剩下的桃子吃了一半零一个。以后每天如此到第10天的时候,只剩下了一个桃子,问最初有多少个桃子?条件:①、猴子每天吃总数一半+1个②、第10天剩了1个求:最初有多少个桃子?1.猴子吃桃问题讲解1.猴子吃桃问题第10天只剩1个桃子第9天一半1个第十天的桃子第8天一半1个第九天的桃子第九天=(第10天桃子数+1)×2第八天=(第9天桃子数+1)×2一半一半咱们可以简单推算出第9天、第8天的桃子数量,然后寻找规律。第9天:4个桃;第8天:10个桃1.猴子吃桃问题讲解1.猴子吃桃问题第10天1个第9天4个第8天10个第1天 (1+1)×2(4+1) ×2第8天22个(10+1) ×2……a个(a+1) ×2个((a+1)×2+1) ×2个 (a+1) ×2((a+1) ×2+1) ×2(((a+1) ×2+1) ×2+1)*2…1.猴子吃桃问题讲解2.设置变量第10天第9天第8天执行1次执行2次1.猴子吃桃问题讲解2.编写桃子数量的程序第1天执行9次1.猴子吃桃问题讲解3.编写猴子计算桃子数量的程序说出总共的桃子数量1.猴子吃桃问题讲解4.递归的初步认识递归其实和循环是非常像的,循环都可以改写成递归,递归未必能改写成循环,这是一个充分不必要的条件。程序调用自身的编程技巧称为递归1.猴子吃桃问题讲解5.用递归算法扩展猴子摘了一堆桃子,第一天吃了一半,还嫌不过瘾,又吃了一个。第二天又将剩下的桃子吃了一半零一个。以后每天如此到第100天的时候,只剩下了一个桃子,问最初有多少个桃子?9改成99就是正确答案2.猴子出题的程序1.编写猴子出题程序比较简单,孩子们自己打字;打字慢的同学寻求老师帮忙1.本节课用到的角色2.本节课用到的背景李白窗户旁《2-李白喝酒》杏花村1.李白街上走,提壶去买酒。遇店加一倍,见花喝一斗。三遇店和花,喝光壶中酒。诚问酒壶中,原有多少酒。这段话什么意思?3.咱们正常做题应该采用什么方法呢?4.咱们小朋友可以喝酒么?意思是李白提酒壶在街上走,遇到酒店就把壶里的酒增加一倍,遇到花就喝掉一斗酒.这样遇到三次酒店和花之后,酒被喝光了数学方法:逆推法酒是不能喝的,不过背诵唐诗是可以的呢《2-李白喝酒》1.李白喝酒问题解析1.问题解析李白提酒壶在街上走,遇到酒店就把壶里的酒增加一倍,遇到花就喝掉一斗酒.这样遇到三次酒店和花之后,酒被喝光了条件:①、3次遇到酒店和花,酒喝完求:最初有多少酒?②、遇到酒店增加一倍,也就是×2③、遇到花喝一斗酒,也就是-11.李白喝酒问题解析2.逆推3-遇店最后李白酒喝完,所以最后一次碰到的一定是花0+1=13-遇花01÷2=0.52-遇店2-遇花1-遇店1-遇花0.5+1=1.51.51.5÷2=0.750.750.75+1=1.751.751.75÷2=0.87510.50.875*遇到酒店增加一倍,也就是×2*遇到喝一斗酒,也就是-11.李白喝酒问题解析2.程序逆推设置变量,名称为“酒的变量”。一开始将酒的容量设为001.50.751.7510.50.8751.李白喝酒问题解析2.程序逆推3遇店和花,所以总共执行了3次1.李白喝酒问题解析3.李白的总程序程序计算完成以后,让李白说出最后的计算结果容量单位总程序Q1:猴子摘了一堆桃子,第一天吃了一半,还嫌不过瘾,又吃了一个。第二天又将剩下的桃子吃了一半零一个。以后每天如此到第48天的时候,只剩下了一个桃子,问最初有多少个桃子?以下程序对么A1:错误,重复执行48次应该是47次Q&AQ2:逆推法是数学解题中很重要的方法,在程序中也是,大家都可以说一说自己的理解?A2:当逆推的数量太多的时候,咱们不能很简单的算出最终的结果,这个时候咱们就可以编写好程序交给咱们的电脑来重复工作Q&A(1)(2)结合题目好好理解,从数学上,也就是从最后的已知条件去倒推最开始的数值,回去之后好好想想这节课的逻辑知识点巩固逆推法递归程序调用自身的编程技巧称为递归明明回家以后自己盲编《猴子吃桃》的程序,请问他有几处错误?( )AB源码测试0处1处C2处C3处答案:解析:咱们手动输入的乘号,不具备运算的条件,不可以执行运算的指令。B源码测试 展开更多...... 收起↑ 资源预览