内容正文:
义务教育《信息科技》
5 年级下册
第 2 单元 编程实现算法
第 5 课 编程巧计算
学习目标
情境引入
新知学习
项目探究
目录
1.能够利用图形化编程软件,设计循环程序。
2.掌握变量、运算等模块。
3.通过解决三个数学问题,了解数学解法与计算机解决问题的区别。
学习目标
情境引入
这可怎么办呢?
为了本次研学计划,小智做足了功课,收集了不少的资料存在电脑文档里面。当他打开自己的电脑想查看时,却发现电脑中“病毒”了……
新知学习
新知
学习
一、变量的创建
二、变量的类型
三、变量赋值
四、算术运算符
新知学习
一、变量的创建
左侧积木区找到“变量”,点击“创建变量”
新知学习
一、变量的创建
Python语法下变量名可以包括字母、数字、下划线、中文等,同时区分英文大小写且应当见名知意。需注意,数字不能作为变量名的开头。
新知学习
二、变量的类型
不同的变量类型表示不同的数据,也会有不一样的处理方式
Python中的数据类型有:
1.Numbers-数字
数字是 Python 中基本的数据类型。数字类型的变量用于存储数值 ,Python数值类型有四种:int(整数)、float(浮点数)、complex(复数)、bool(布尔型)。
2.String-字符串
字符串是 Python 中另一个基本的数据类型。我们可以使用引号 ( ' 或 " ) 来创建字符串。
新知学习
二、变量的类型
不同的变量类型表示不同的数据,也会有不一样的处理方式
Python中的数据类型有:
3. List-列表
是一种有序和可更改的集合,代码语法里以[ ]包含元素。
4. Turple-元组
是一种有序且不可更改的集合,可以看做只读列表,代码语法里以( )包含元素,图形化编辑器里的创建方式与列表类似。
5. Dictionary-字典
存储键值(key-value)之间的对应关系,代码语法里以{ }包含元素。
新知学习
三、变量赋值
创建变量后,会出现三个关于变量的代码块
设置变量的值,也称变量赋值
使变量值增加/减少
引用变量的值
新知学习
四、算术运算符
变量之间也是可以运算的,本质上是所存储的数据进行计算
运算符 功能描述 积木代码例子
加 - 两个对象相加。
注:数字相加为求和,字符串相加则为连接
减 - 得到负数或是一个数减去另一个数
乘 - 两个数相乘或是返回一个被重复若干次的字符串
除 – 一个数x除以另一个数y
+
-
*
/
新知学习
四、算术运算符
变量之间也是可以运算的,本质上是所存储的数据进行计算
运算符 功能描述 积木代码例子
取模 (余)- 返回除法的余数
取整除 - 返回商的整数部分(向下取整)
幂 - 返回x的y次幂
%
//
**
项目探究
项目一:病毒初挑战
聪明的你想一下,如何解决呢?
数字病毒
想要查看文件,你需要回答下面的问题
1+2+3+…+100=
?
著名数学家高斯提出:
“以首项加末项乘以项数除以2来计算“1+2+3+4+5+···+(n-1)+n”的结果”
称为“高斯算法”,是一种解决此类问题的数学工具
项目探究
项目二:病毒初挑战
“高斯算法”还能帮助我们解决这个问题吗?快想想办法!
数字病毒
恭喜你侥幸通过了第一关,但这还不够…
1*2*3*4*…*50=
?
项目探究
项目二:病毒初挑战
数字病毒
恭喜你侥幸通过了第一关,但这还不够…
1*2*3*4*…*50=
?
对于这个问题,我们可以尝试编程来解决!
项目探究
项目二:病毒初挑战
我们需要先找到问题解决的流程,才能利用编程解决问题
我们从头开始,一次计算只涉及一个数字。用Si来表示第i次运算后的结果,最开始S0=1。
运算次数i 累乘的计算过程 当前运算结果S
第1次 S1=S0*1 S1=1
第2次 S2= S2=1*2
第3次 S3=S2*3 S3=1*2*3
第4次 S4=S3*4 S4=
第5次 S5=S4*5 S5=1*2*3*4*5
… … …
第50次 S50= S50=1*2*3*4*…*50
1*2*3*4
S1*2
S49*50
项目探究
项目二:病毒初挑战
我们每次的运算过程是“重复”的,在上一次运算结果的基础上乘以运算次数 ,可以利用循环结构解决。
重复执行的运算:Si=Si-1*i
S也称为“累乘器”
运算次数i 累乘的计算过程 当前运算结果S
第1次 S1=S0*1 S1=1
第2次 S2= S2=1*2
第3次 S3=S2*3 S3=1*2*3
第4次 S4=S3*4 S4=
第5次 S5=S4*5 S5=1*2*3*4*5
… … …
第50次 S50= S50=1*2*3*4*…*50
1*2*3*4
S1*2
S49*50
项目探究
项目一:病毒初挑战
变量S和i初始化
开始
循环次数i是否小于等于50?
设置变量S为S*i
循环次数i+1
输出结果S
结束
是
运算次数i 累乘的计算过程 当前运算结果S
第1次 S1=S0*1 S1=1
第2次 S2= S2=1*2
第3次 S3=S2*3 S3=1*2*3
第4次 S4=S3*4 S4=
第5次 S5=S4*5 S5=1*2*3*4*5
… … …
第50次 S50= S50=1*2*3*4*…*50
1*2*3*4
S1*2
S49*50
否
通过程序流程图,我们会发现虽然S没有涉及角标,每次新的循环开始时, S存储的是上一次循环计算的结果。
项目探究
小挑战——尝试解决“数字病毒”第二关
提示:
1.注意变量初始值
2.注意循环次数、条件、循环体
项目一:病毒初挑战
项目探究
项目二:新法战病毒
你也可以试试用计算机编程的思路解决“1+2+3+…+100” 问题
项目探究
项目二:新法战病毒
运算次数i 累加的计算过程 当前运算结果S
第1次 S1=S0+1 S1=1
第2次 S2= S2=1+2
第3次 S3=S2+3 S3=1+2+3
第4次 S4=S3+4 S4=
第5次 S5=S4+5 S5=1+2+3+4+5
… … …
第100次 S50= S50=1+2+3+4+…+100
1+2+3+4
S1+2
S99+100
请你考虑下最开始的S的大小应该是多少?
项目探究
项目二:新法战病毒
数字病毒
看来前面两关都太简单了,来试试终极挑战吧
1-2+3-4+…-10000=
?
请你编程解决掉这最后一个“病毒” 吧!
项目探究
小挑战——尝试解决“数字病毒”第三关
提示:
1.注意每一次计算变化的规律
2.注意循环次数、条件、循环体
项目二:新法战病毒
项目探究
项目小结
数学
思维
计算
思维
VS
已掌握
新法
利用数学工具、思想解决问题
是适应人脑计算的思维模式
在数学思维基础上,结合计算机科学领域原理和方法,形成计算机能够实现的方案
是适应计算机运算的思维模式
谢谢观看
$$