设计制作 第7课《走进程序世界》 课件【湘科版】《综合实践活动课程资源包》 九年级

资源下载
  1. 二一教育资源

设计制作 第7课《走进程序世界》 课件【湘科版】《综合实践活动课程资源包》 九年级

资源简介

(共41张PPT)
第7课
走进程序世界
(湘科版)九年级
全
01
学习目标
内容总览
02
新知导入
03
探究新知
05
课堂练习
06
课堂小结
07
板书设计
04
知识拓展
课后作业
08
教学目标
感受算法与程序在解决实际问题中的价值,体会从“使用者”到“创造者”的转变意义,激发对程序设计的兴趣与探索欲。
01
02
主动参与小组讨论与任务协作,承担算法设计、程序调试等职责;严谨对待编程语法与逻辑,培养精益求精的探究态度。
03
能运用问题分析、算法设计、流程图绘制等方法解决简单问题;掌握程序调试验证技巧,能排查基础语法与逻辑错误。
04
责任担当
创意物化
解决问题
价值体认
结合生活场景提炼可由计算机解决的问题,设计合理算法并转化为流程图;初步感知编程语言与程序实现过程,尝试将创意转化为简易解决方案。
新知导入
同学们,生活中手机密码锁解锁、计算器计算复利、游戏角色移动等这些功能都是通过程序实现的。你知道程序背后隐藏着怎样的逻辑吗?我们平时只是使用这些程序,能不能成为程序的创造者呢?
探究新知
活动准备
算法
运用计算机解决实际问题,需要我们先找到解决问题的方法,然后根据这个方法编写计算机程序,最后由计算机运行程序解决问题。解决问题的方法我们称为算法。算法是计算机软件的灵魂,算法的设计直接影响问题解决的效率。
探究新知
议一议
著名的数学家华罗庚在1964年所著《统筹方法平话》一书中,举了一个“烧水泡茶”的例子。
“烧水泡茶”有五道工序:烧开水,洗茶壶,洗茶杯,拿茶叶,泡茶。
各道工序用时:烧开水15分钟,洗茶壶2分钟,洗茶杯1分钟,拿茶叶1分钟,泡茶1分钟。
活动准备
探究新知
议一议
根据以上信息,小组讨论有几种烧水泡茶方案,哪一种花费时间最短?
活动准备
序号 方案 花费时间
1 洗茶壶→洗茶杯→拿茶叶→烧开水→泡茶(依次顺序进行) 2+1+1+15+1=20分钟
2 烧开水(同时洗茶壶、洗茶杯、拿茶叶)→泡茶 15+1=16分钟(最短)
探究新知
利用计算机解决简单问题的一般过程如下
活动实施
问题分析
算法设计
画流程图
程 序实现
调试验证
探究新知
活动实施
问题分析与算法设计
中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问翁、母、雏各几何?
首先,我们把这个问题用数学公式简洁地表达出来。设鸡翁、鸡母、鸡雏的只数分别为X、Y、Z,按照题意给定100钱共买 100只鸡,则可以得到下面的公式:
5X×3Y+Z/3=100(总共用掉100钱)
X +Y+Z=100(鸡的总数为100只)
探究新知
活动实施
要解决这个问题,可以采用穷举的方法列举出鸡翁、鸡母、鸡雏的所有组合,其步骤如下:
步骤1:X从0变到100{X表示鸡翁的只数}。
步骤2:对X的每一个取值,Y从0变到100{Y表示母鸡的只数}。
步骤3:对X、Y的每一组取值,Z从0变到100{Z表示鸡雏的只数}。
步骤4:如果满足(X+Y+Z=100)且(5X+3Y+Z/3=100),则输出满足条件的一组X、Y、Z(即一个解)。
步骤5:当X、Y、Z的所有
探究新知
活动实施
上面介绍的方法非常直接,但也很烦琐,需要进行上百万次尝试,小组讨论改进的方法。
议一议
序 号 改进方法 最大尝试次数
1 利用方程消元简化:由X+Y+Z=100得Z=100-X-Y,代入钱的方程,减少Z的枚举;同时限定X≤20(5×20=100),Y≤33(3×33≈100) 21×34=714次
2 进一步结合Z必须是3的倍数(鸡雏3只值钱1,钱数为整数),在Z=100-X-Y的基础上,只枚举满足Z能被3整除的X、Y组合 约238次(714÷3)
探究新知
活动实施
做中学
存满1年后,把本金和利息取出再续存,重复进行N年,计算到期后本息合计(年利率为r %)。
算法:
步骤1:输入本金A、年利率r 、存期N;
步骤2:初始化本息S=A,计数器M=1;
步骤3:计算S=S×(1 + r /100),M=M+1;
步骤4:判断M≤N是否成立,若是,返回步骤3;若否,执行
步骤5;步骤5:输出S。
探究新知
活动实施
(1)分析下列两个问题并设计算法。
① 小明计划把A元存入银行,有两种方案:
存N年定期,计算到期后本息合计(年利率为r %)。
做中学
算法:
步骤1:输入本金A、年利率r 、存期N;
步骤2:根据公式S=A×(1 + r ×N/100)计算本息合计S;
步骤3:输出S。
探究新知
活动实施
② 小明忘记密码锁的密码,应如何打开密码锁?
做中学
(假设是三位数字密码,范围000-999)
算法:
步骤1:初始化密码尝试值为000;
步骤2:输入该密码尝试解锁;
步骤3:判断是否解锁成功?若是,结束算法;若否,执行步骤4;
步骤4:将尝试值加1(若为999则变为000);
步骤5:判断是否已尝试所有组合(000-999)?
若是,提示密码无法破解,结束;若否,返回步骤2。
探究新知
活动实施
做中学
(2)从生活中选择一个适合用计算机解决的问题,并设计算法。
问题:计算班级50名学生某学科考试的平均分、最高分和最低分。
算法:步骤1:初始化总分sum=0,最高分max=0,最低分min=100,计数器i=1;
步骤2:输入第i名学生的成绩score;
步骤3:sum=sum+score;
步骤4:若score>max,则max=score;若score步骤5:i=i+1;
步骤6:判断i≤50?若是,返回步骤2;若否,执行步骤7;
步骤7:计算平均分avg=sum/50;
步骤8:输出avg、max、min。
探究新知
活动实施
使用流程图表示算法
前面我们用语言描述了解决问题的具体方法和步骤,这是算法的文字表现形式,但文字表述看起来不够明晰。俗话说:一图胜千言。在生活中我们可以用流程图直观形象地表示一个过程。
同样,我们可以采用流程图来描述算法。
构成算法流程图的基本要素如下:
探究新知
活动实施
形状
名称 起止框 输入输出框 处理框 判断框 流程线
功能 算法的开始或结束 算法的输入输出 算法中的各种赋值、运算等操作 算法中的条件判断 算法的执行方向
探究新知
活动实施
通过解析法可以计算A元本金按照年利率r %计算N年复利。利用这个方法,我们要设计一个通用复利计算器软件,可以根据存入的本金、年利率和存期计算到期后的本息合计。
算法分析:设本金为A元,年利率为r%,存期为N年,到期后本息合计为S。S=A×(1+r/100)n.用流程图来表示:
探究新知
活动实施
我们可以观察到,上面的流程图由三种基本结构组成:
顺序结构
选择结构
循环结构
探究新知
活动实施
用流程图表示三维密码锁破解的过程。(假设密码为000-999)
做中学
流程图:开始 → 初始化尝试密码code=000 → 输入code尝试解锁 → 判断解锁是否成功?→ 是→结束;否→ code=code+1(若为999则变为000)→ 判断code是否回到000且已尝试过?→ 是→输出“无法破解”→结束;否→返回输入code尝试解锁
解释说明:以000为初始尝试密码,依次递增尝试所有三位数字组合(000-999);每尝试一次判断是否解锁,若成功则结束;若遍历所有组合仍未成功,提示无法破解,体现循环结构和选择结构的结合。
探究新知
活动实施
算法的程序实现
用流程图表示算法后,下一步我们需要用计算机能够“读懂的语言”—编程语言来编写程序,实现算法。下图为我们用C++编程语言编写的复利计算程序。
议一议
代码的含义
(1)根据复利计算算法流程图,说一说每行代码的含义。
① #include 引入输入输出流头文件,为后续输入输出操作做准备;
② using namespace std;使用标准命名空间,简化代码书写(无需每次写std:);
③ int main() {主函数入口,程序从这里开始执行;
探究新知
活动实施
议一议
④ double A, r, S; int N, M=1;定义变量,A(本金)、r(年利率)、S(本息)为双精度浮点数,N(存期)、M(计数器)为整数,M初始化为1;
⑤ cin > A > r > N;输入本金、年利率、存期;
⑥ S = A;初始化本息S为初始本金A;
⑦ while(M <= N) {循环条件,当M≤N时执行循环体;
⑧ S = S * (1 + r/100);计算当年本息;
⑨ M++;计数器M加1;
⑩ }:循环体结束;
cout << “本息合计:” << S << endl;输出本息合计
; return 0;主函数返回0,程序正常结束; }
探究新知
活动实施
议一议
(2)根据不同的需要,人们设计了各种不同的编程语言。通过上网搜索,了解下列三种常用语言的相关信息。
① Java:面向对象编程语言,跨平台性强(一次编写,多处运行),常用于企业级应用、安卓APP开发;语法严谨,需编译运行。
② Python:语法简洁易懂,可读性强,属于解释型语言,无需编译直接运行;应用广泛,涵盖数据分析、人工智能、Web开发等领域。
③ C++:在C语言基础上增加面向对象特性,运行速度快,底层控制能力强;常用于游戏开发、系统软件、嵌入式开发等。
探究新知
活动实施
程序的调试验证
计算机程序一般需要通过编译过程才能运行。每一种程序语言都有自己的语言规则和专用编译器。如果在程序中出现语法规则错误,编译器会给出错误提示,我们可以根据提示对程序进行修改、调试。
如果程序通过了编译,就证明不存在语法错误,可以运行了。这时,我们可以通过输入测试数据来验证程序的正确性。如果运行结果不正确,就需要对算法或程序进行检查、修改,重新编译,直到得到正确的结果。
探究新知
活动实施
编译是将程序翻译成计算机可以执行的指令。如果出现任何错误或偏差,甚至是一个小小的符号不符合语法规定,都无法通过编译环节。
警示灯
探究新知
交流评价
分小组介绍自己设计的算法。
我们小组设计的是“班级成绩统计”算法,核心是通过循环输入50名学生成绩,同步计算总分、最高分和最低分,最后求平均分;采用了循环结构和选择结构,能高效处理多组数据;优势是步骤清晰,可直接对应程序编写,不足是未考虑成绩为空的异常情况。
探究新知
交流评价
想一想自己的算法还有哪些需要改进的地方?
① 未添加异常处理,若输入成绩为负数或非数字,算法会出错;
② 只能处理固定50名学生,灵活性不足,可增加输入学生人数的步骤;
③ 未考虑保留小数位数,输出结果可能不够规范。
探究新知
拓展提升
我还想完成以下任务:
学习更多的算法知识。
学习一种编程语言(如Python),实现设计的算法。
学习算法的时间复杂度分析,优化算法效率。
尝试编写一个简易的计算器程序,实现加减乘除及复利计算功能。
探究新知
目前通用的编程语言有两种类型:汇编语言和高级语言。
汇编语言与计算机能识别的机器语言很接近,它的指令采用了英文缩写的标识符,以便于识别和记忆。它需要编程者将每一步具体的操作用命令的形式写出来。汇编程序的每一句指令只能对应实际操作过程中的一个很细微的动作,例如移动、自增,因此汇编源程序一般比较冗长、复杂、容易出错,而且使用汇编语言编程需要有更多的计算机专业知识,但源程序经汇编生成的可执行文件比较小,而且执行速度很快。
高级语言相对汇编语言更容易编写和理解,并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的Java、C++等,这些语言的应用场景不同,语法、命令格式也不尽相同,但编程的思想、方法都是类似的。
信息园地
知识拓展
算法优化的核心目的是什么?请结合“百钱百鸡问题”的穷举法改进,说明优化思路。
核心目的是减少冗余操作,提高问题解决的效率。“百钱百鸡问题”初始穷举需尝试101×101×101=上百万次,优化思路:①利用方程消元,由X+Y+Z=100得Z=100-X-Y,减少Z的枚举;②限定变量范围(X≤20、Y≤33),缩小枚举区间;③结合Z需为3的倍数的条件,进一步减少无效尝试,最终将最大尝试次数降至约238次。
知识拓展
汇编语言和高级语言(如Java、Python)有哪些核心差异?分别适用于什么场景?
差异:①可读性:汇编语言指令烦琐、难理解,高级语言语法简洁、易上手;②编程难度:汇编语言需要掌握更多计算机底层知识,高级语言无需关注底层细节;③执行效率:汇编语言生成的程序体积小、速度快,高级语言执行效率稍低。
适用场景:汇编语言适用于对执行速度和内存占用要求高的场景(如嵌入式开发);高级语言适用于企业级应用、APP开发、数据分析等多数场景(如Java开发安卓APP,Python做数据分析)。
知识拓展
流程图的三种基本结构(顺序结构、选择结构、循环结构)分别发挥什么作用?请举例说明。
①顺序结构:按步骤依次执行,是算法的基础,如“定期存款本息计算”中“输入数据→计算本息→输出结果”的流程;
②选择结构:根据条件判断执行不同分支,如“密码锁破解”中“解锁成功→结束,解锁失败→继续尝试”的判断;
③循环结构:重复执行某段操作直至满足条件,如“复利计算”中“逐年计算本息,直至存期结束”的重复过程。
知识拓展
程序调试验证的核心步骤有哪些?为什么说“语法错误会导致程序无法编译”?
核心步骤:①编译程序,排查语法错误;②输入测试数据运行程序,验证逻辑正确性;③若结果错误,检查算法或程序代码,修改后重新编译运行,直至结果正确。
原因:编译的作用是将编程语言翻译成计算机可执行的指令,语法规则是编译的“准则”,若存在符号错误、格式错误等语法问题,编译器无法识别和翻译,程序便无法生成可执行文件,更无法运行。
课堂练习
一、选择题
1. 下列关于“算法”的描述,正确的是( )
A. 算法就是计算机程序 B. 算法的设计不影响问题解决效率
C. 算法是解决问题的步骤和方法 D. 只有计算机才能执行算法
2. 下列编程语言中,属于高级语言的是( )
A. 机器语言 B. 汇编语言 C. Python D. 以上都不是
3. 流程图中,用于表示“条件判断”的图形是( )
A. 圆角矩形 B. 矩形 C. 菱形 D. 平行四边形
C
C
C
课堂练习
二、填空题
1. 利用计算机解决简单问题的一般过程为:________→算法设计→画流程图→________→调试验证。
2. 流程图的三种基本结构是________、________、________。
3. 目前通用的编程语言分为________和________两类,其中Java、C++属于________。
问题分析
程序实现
顺序结构 选择结构 循环结构
汇编语言 高级语言
高级语言
课堂练习
三、判断正误题(对的打 “ ”,错的打 “×”)
1. 程序通过编译后,就一定能得到正确的运行结果。( )
2. 穷举法是一种简单直接的算法,但可能存在效率低下的问题。( )
3. 汇编语言比高级语言执行速度快,因此更适合初学者学习。( )



课堂总结
通过这堂课的学习,我们不仅理解了算法是程序的灵魂,掌握了计算机解决问题的一般流程(问题分析→算法设计→画流程图→程序实现→调试验证),还学会了用流程图表示算法逻辑,培养了逻辑思维和问题优化意识。
板书设计
走进程序世界
一、探究新知
1.活动准备 2.活动实施
①问题分析与算法设计 ②使用流程图表示算法
③算法的程序实现 ④程序的调式验证
3.交流评价 4.拓展提升 5.信息园地
二、知识拓展
课后作业
设计一个“家庭月度开支统计”算法,要求:①明确问题分析要点(需统计的开支项目、数据来源等);②写出详细的算法步骤;③用流程图表示算法逻辑(标注基本结构)。
https://www.21cnjy.com/help/help_extract.php
让备课更有效
www.21cnjy.com
Thanks!

展开更多......

收起↑

资源预览