版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
信息技术教学设计高一信息技术算法与程序实现教学设计算法思维·程序实现·问题解决授课教师:信息技术教研组课程导览01算法初识从生活问题引出算法概念02算法描述掌握描述算法的多种方式03程序实现将算法转化为程序代码04实践提升综合运用算法解决实际问题算法就在我们身边01算法初识算法就在我们身边从生活问题出发,认识算法的本质与特征从泡茶问题说起烧水泡茶这件小事,藏着算法的影子做任何事都需要步骤与顺序,这就是算法的雏形待客泡茶的情境家里来客人,要泡茶待客,需要做哪些事?怎样安排顺序最合理?步骤清单洗水壶、洗茶杯、准备茶叶烧开水、冲茶、端给客人不同的先后安排,效率大不相同思考如果先洗茶杯再烧水,和先烧水再洗茶杯,哪种更省时间?算法的概念算法是解决问题的方法和步骤,是对解题过程的精确描述广义理解广义做事的流程、菜谱、说明书狭义理解狭义用计算机能执行的指令描述的解题过程求圆的面积1输入半径
r2计算
S=π×r×r3输出结果
S同一个问题可以有不同的算法,比如求最大值,可以逐个比较,也可以先排序再取值。算法的五个特征有穷性有限步骤有限时间步骤有限,能在有限时间内结束,不会无限循环。确定性含义明确无歧义每一步含义明确,不产生歧义;“加一点盐”就不合格。可行性基本操作可完成每一步都能通过基本操作完成。输入零或多个初始数据有零个或多个输入,即算法操作的初始数据。输出至少一个问题结果至少有一个输出,即问题的结果。身边的算法01生活中的算法洗衣机进水、洗涤、漂洗、脱水,按固定流程执行。02生活中的算法地图导航计算最短路径或最快路线并实时更新。03生活中的算法搜索引擎根据关键词匹配并排序海量网页。04生活中的算法短视频推荐分析观看行为,推送可能感兴趣的内容。算法与程序的关系算法与程序联系紧密,但并非一回事:二者的关系可以概括为:因此,学好编程的第一步,是先把
算法想清楚。算法思想与步骤解题的思想与步骤独立于任何语言程序可执行代码用特定程序设计语言编写计算机能执行的代码算法是程序的
灵魂程序是算法的
载体同一个算法可用
Python、C++
等不同语言实现先有算法设计后有程序编写算法的描述02算法描述把想法说清楚用自然语言、流程图、伪代码描述算法为什么要描述算法心中的想法,需要被准确表达出来如果算法只藏在脑子里,既无法验证对错,也难以转化为程序。自然语言流程图伪代码在设计程序之前,必须先把算法描述清楚,原因有三便于交流让合作者看懂你的解题思路便于检查在写代码前发现逻辑错误便于实现为编写程序提供清晰依据用自然语言描述示例:判断一个数是否为正数①
输入数x›②
判断x>0?›③
是→“正数”›④
否→“非正数”用人们日常使用的语言文字描述算法步骤优优点通俗易懂无需专门学习缺缺点易啰嗦表述冗长易歧义步骤复杂时不够清晰流程图的基本符号符号名称用途起止起止框算法开始或结束处理处理框执行计算或赋值判断判断框条件判断,引出分支输入输出输入输出框数据输入或结果输出
流程线指示执行方向使用规范01流程线方向一般为自上而下、从左到右02判断框出口判断框有两个出口三种基本结构任何复杂算法都可以由
三种基本结构
组合而成顺序结构按书写顺序,从上到下依次执行选择结构根据条件判断的结果,选择执行某一分支循环结构在条件满足时,反复执行某段操作三种结构共同特点单入口、单出口,保证流程清晰可读。理解并熟练运用三种结构编写程序的核心基本功画流程图示例1开始2输入整数n数据输入判断框判断n除以2的余数是否为0n%2==0?是否3输出“偶数”4输出“奇数”5结束汇合走向结束用伪代码描述伪代码用接近程序设计语言的表述方式描述算法,既简洁又严谨。用接近程序设计语言的方式描述算法,既简洁又严谨01示例例:求两个数的较大值伪代码示例:用接近程序语言的表述方式给出求两数较大值的算法描述算法逻辑:比较两数大小并输出较大者法伪代码特点简洁表达精炼、去除冗余严谨语义明确、无歧义接近代码易转化为程序设计语言三种方式如何选描述方式优点局限适用场景自然语言通俗易懂易产生歧义简单算法、口头交流流程图直观形象绘制较费时逻辑结构展示伪代码严谨清晰需了解约定接近编程实现选按目的选用交流思路用自然语言展示结构用流程图准备编程用伪代码按复杂度选用复杂算法先流程图理清结构再转伪代码细化实现细节03程序实现让算法跑起来用程序设计语言实现算法,体验编程乐趣从算法到程序程序是算法在计算机上的落地,编写代码的过程就是将算法的每一步用程序设计语言精确表达的过程。1步骤01分析问题确定输入、处理、输出输入·处理·输出2步骤02设计算法用流程图或伪代码描述流程图·伪代码3步骤03编写程序将算法转化为代码算法→代码4步骤04调试运行验证结果是否正确结果验证认识程序设计语言机器语言二进制指令计算机直接执行难读难写人难以理解使用直接执行汇编语言助记符代替二进制稍有可读性介于机器与高级之间助记符高级语言接近自然语言和数学表达式易学易用Python属于高级语言语法简洁、可读性强,适合初学者入门程序需经解释或编译才能被执行易学易用常量与变量常量定义值在运行中固定不变的数据实例圆周率税率变量定义值可以改变的数据,用来存储中间结果实例半径
r,可输入不同值求圆面积:半径
r
是变量可换值,圆周率
π
是常量始终不变理解关键:变量名是存储位置的标识,程序通过变量名存取数据认识数据类型数据有不同的类型,类型决定了数据的存储方式和可进行的运算。类型示例说明整型3、-5、100不带小数的整数浮点型3.14、-0.5带小数点的数字符串型"abc"、"中国"用引号括起的文本布尔型True、False只有真和假两个值不同类型数据通常不能直接混合运算,例如字符串"3"与整数3含义不同。运算符与表达式运算符用于对数据进行运算,常见三类:算术运算符基本运算加、减、乘、除、取余等取余示例如
7除以3
得余数
1比较运算符比较方式大于、小于、等于等比较结果结果是
True
或
False逻辑运算符逻辑操作且、或、非主要用途用于组合多个条件顺序结构实例顺序结构是最简单的程序结构,语句自上而下依次执行。例:输入两门课成绩,计算平均分顺序执行顺序执行顺序结构按书写顺序逐行执行01输入输入两门课成绩02计算计算平均分03输出输出结果选择结构实现分支选择结构让程序根据条件判断选择不同执行路径01伪代码条件判断if
年龄
>=18则
可以上网否则
不可以上网02执行流程分支走向条件成立:输出“可以上网”条件不成立:输出“不可以上网”两条分支只会执行其中一条循环结构重复执行循环结构用于反复执行某段程序,直到条件不再满足。while循环累加1到10001初始化设置
i=1,sum=002条件判断当i≤100
时继续执行循环体03循环体sum=sum+i,i=i+1
后回到条件判断04输出循环条件不满足后,输出sum循环控制循环条件控制终止注意事项条件设置不当会导致死循环三种结构综合运用实际问题往往需要综合运用三种结构顺序依次输入成绩、累加统计、输出结果结构循环重复执行5次“输入并判断”结构选择对每个成绩判断是否大于等于60分结构解题思路:设定及格人数初始为0循环5次:每次输入成绩,若及格则人数加1循环结束后输出总人数有序组合程序调试与排错“程序写好后往往需要调试,常见错误有三类。”—调试是编写可靠程序的重要环节排查方法先看报错信息定位出错位置再检查该行及相邻行的语法逻辑错误可用中间输出值逐步验证养成
逐段测试、边写边测
的好习惯,能大幅减少调试时间。语法错误书写不符合语言规则,如漏写冒号、括号不匹配定义逻辑错误程序能运行但结果错误,如把大于号写成小于号示例运行错误运行时才暴露,如除数为零、变量未定义调试04实践提升动手解决问题综合运用算法知识,完成实践项目常见算法之枚举枚举算法最直观核心思想把问题的所有可能解一一列举出来,逐一检验是否符合条件,符合的就是答案。最直观找出1到100中能被7整除的数示例从1到100逐个判断每个数都检验能否被
7
整除能被整除的数输出示例思路简单、不易遗漏优缺点当可能解数量庞大时,运算量会非常大。优缺点枚举算法的程序实现循环结构for反复执行一段代码直到条件不满足重复尝试用于处理枚举中需要重复尝试的情况选择结构if条件判断根据条件判断是否执行某个分支倍数判断用于判断当前数是否为7的倍数顺序结构逐行依次执行按书写顺序从上到下依次执行语句基本框架作为程序的基本执行框架解析算法与递推面对问题时,先分析问题特征,再选择合适算法,是算法设计的重要一步。两类常用算法01解析算法根据数学公式直接计算,如已知半径用公式求圆面积、已知三边用公式求三角形面积02递推算法从已知的初始值出发,按规律逐步推出后续结果,如已知前两项求斐波那契数列的后续项适用场景2类解析算法有明确公式的问题,直接、高效递推算法结果依赖前项的问题,逐项推进实践项目之分析问题动手做一个完整的编程项目“明确输入处理输出是解决问题的第一步”—问题分析项目:为班级程序设计一个成绩分析小助手,输入全班学生成绩,输出最高分、最低分和平均分。输入已有全部成绩,还是一边输入一边统计?处理求最值、求平均,分别怎么做?输出需要显示哪几个统计结果?把这三个问题回答清楚,项目就有了清晰方向,这是实现程序的第一步实践项目之设计算法“先画流程图理清思路,再写代码更稳妥”在算法确定之前,不要着急写代码,清晰的流程是高效编码的保障。1步骤01初始化循环何时开始、何时结束设定最高分为极小值,最低分为极大值总分与人数为
02步骤02循环处理更新最值的判断条件逐个输入成绩更新最高分、最低分、累加总分3步骤03计算输出平均分的计算位置求出平均分输出三个统计结果实践项目之实现程序关键变量的核心作用程序实现要点初始值循环前先给变量赋好初始值更新最值每次输入后都要更新最值与总分计算平均分平均分用
total除以count
计算关键变量max_score记录最高分min_score记录最低分total累计总分count统计人数调试与优化项目测试要点常规输入核对输入正常成绩,核对三个输出值是否正确特殊值覆盖输入特殊值:所有成绩相同、只有一个成绩、出现满分或零分边界值检查检查人数为
0
时程序是否会出错核对输出特殊值边界值优化方向判断逻辑简化能否把最高分、最低分更新写成更简洁的判断精度设定平均分是否要保留小数位交互提示能否提示用户输入数据的个数简洁判断小数位输入提示算法知识体系回顾回顾全课,一条清晰的思维链条已经建立从生活问题出发,到形成解题思路,再到编写运行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/UNP 124-2024城市道路路面养护管理技术规范
- T/CNCA 106-2024循环流化床气化炉调试导则
- T/BIAIM 0010-2025企业研发制造资源共享 第10部分:服务平台架构
- T/CHCFA 007-2024枣缩果病综合防控技术规程
- T/CACEC 0001-2024马氏体耐热铬钼钢管道焊接工艺规程
- T/CBMCA 074-2025气相色谱法测聚合物类阻根剂含量试验方法
- T/CAATB 007-2024压缩空气储能(CAES)绿色低碳湿法
- DB32/T 5203.5-2025民用雷达数字化设计和工艺仿真规范 第5部分:信息集成要求
- T/CAPEB 00003-2025绿色设计产品评价技术规范 流化床制粒机
- 采购数据统计分析流程SOP-含统计表和月度报告
- 3.1《网络改变世界》教案 2026-2027学年道德与法治八年级上册 统编版
- 公路服务区污水处理设施运维管理细则
- 农产品食品检验员国家职业技能标准高级工三级考试题库及答案
- 2025年长沙商贸旅游职业技术学院单招职业技能测试题库附答案解析
- 子宫癌护理查房
- 消控室值班记录表、消防设施巡查记录表
- 应收账款管理课件
- 电力安全生产二十五项反措
- 2025重庆机场集团有限公司社会招聘(150人)笔试参考题库附带答案详解
- 1.《电力安规培训》(发电厂和变电站电气部分)视频版
- 2023CSCO头颈部肿瘤诊疗指南
评论
0/150
提交评论