高二信息技术:算法与程序实现教学设计课件_第1页
高二信息技术:算法与程序实现教学设计课件_第2页
高二信息技术:算法与程序实现教学设计课件_第3页
高二信息技术:算法与程序实现教学设计课件_第4页
高二信息技术:算法与程序实现教学设计课件_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程封面算法与程序实现:从问题到代码的思维之旅抽象·设计·实现·进阶·实践授课对象:高二学生课程导览01算法认知理解算法概念、特征与描述方式02语言基础掌握Python数据类型、运算符与变量03结构实现运用顺序、分支、循环三种控制结构04常用算法解析、枚举、排序等典型算法程序实现05综合实践完整经历编程解决问题的全过程章节导览01算法认知算法是解决问题的清晰步骤从生活问题出发,理解算法的概念、特征与描述方式什么是算法算法,是解决问题的一系列明确、有限的步骤算法并不神秘——它只是把“怎么做”想清楚、写明白。—从生活到计算机的共同逻辑广义理解做菜的食谱按步骤下料、烹饪,得到成品导航的路线规划从起点到终点,一步步给出走法整理房间的先后顺序先归类、再收纳,房间变整洁做菜、导航、整理房间,都是算法。生活实例无处不在计算机视角与关键区别让计算机有序执行是无歧义、有限步骤的集合。关键区别普通解题步骤凭经验,算法要求每一步都清晰可执行。有序无歧义有限思考:泡一杯奶茶,你能精确列出它的每一步吗?算法五大特征判断一个操作步骤序列是否为算法,核心看它是否同时满足上述五个特征有穷性处理步骤必须是有限的,不能无限进行。确定性每一步的执行描述明确,不产生歧义。可行性每一步操作都能在有限时间内完成。输入可以有

0个或多个输入。输出必须有

1个或多个输出结果。算法的三大构成要素数据要素一含义

参与运算的初始、中间及结果数据示例停车时长、累计费用运算要素二含义

对数据进行的计算处理示例累加、比较、取余控制转移要素三含义

按结果特点选择不同执行路径示例顺序、分支、循环算法的四种描述方式同一算法可用四种方式表达从自然语言到程序语言,描述算法的抽象层级逐级提升自然语言通俗易懂但易产生歧义流程图图形化直观适合梳理逻辑伪代码介于自然语言与代码之间结构清晰程序语言计算机可直接执行最精确四种方式逐级精确,从"给人看"走向"给机器看",流程图是其中最重要的思维工具用计算机解决问题的过程编程解决问题遵循清晰的四步路径编程解决问题遵循清晰的四步路径流程化结构化01抽象与建模界定问题,抽取关键要素并符号化›02设计算法明确输入、处理、输出,形成求解步骤›03编写程序将算法用程序设计语言准确描述›04调试运行运行验证,修正错误直至结果正确第一步最容易被忽略,却决定了整个程序的方向——先想清楚,再动手写章节导览02语言基础语言是算法的载体掌握Python数据类型、运算符与变量,搭建程序实现的工具箱认识Python语言与环境介绍Python作为教学语言的特点与运行方式,消除学生对编程的畏难情绪无需编译,即时反馈面向零基础学习者的第一门语言Python由荷兰学者GuidovanRossum于八十年代末设计,如今已是应用最广的编程语言之一三大特点解释型、交互式面向对象接近自然语言两种运行方式交互式解释器命令行脚本无需编译,即时反馈可在提示符后直接执行支持对象封装等编程技术语法轻量,适合入门随用随运行逐行输入,即时反馈整体运行,批量执行基本数据类型数据先有类型,运算才能正确进行;类型意识是编程的第一课类型关键字示例说明整型int16、-3任意整数实型float3.14、2e3小数字符串型str"信息"、'abc'用引号括起布尔型boolTrue、False仅两种取值变量与赋值语句数据类型认知先行,运算方能正确进行;类型意识是编程的第一课命名规则3项由字母、数字、下划线组成,不能以数字开头区分大小写,不能与关键字同名动态类型语言,使用时无需预先声明类型赋值语句4项格式为

变量名=表达式一次赋值多个:x=y=z=1一行同时赋值:x,y,z=1,5,9两变量交换:x,y=y,x运算符与表达式优先级:算术运算

关系运算

逻辑运算同优先级自左向右,但幂运算自右向左,这是最易出错的一处算术运算**幂//整除%取余关系运算结果为布尔值><>=<===!=逻辑运算notandor内置函数与模块导入内常用内置函数输出输入print()

输出·input()

输入类型转换int()/float()/str()数学运算abs()/round()/len()/range()数math模块函数开方math.sqrt()阶乘math.factorial()需先导入importmath示例math.sqrt(16)→4.0字符串与列表学习目标理解字符串与列表的结构与差异,掌握用索引访问与len()计算长度的基本操作字符串·列表字符串用引号括起的字符序列,如

"算法"、'1234'列表用方括号括起的元素序列,如

[3,5,7]共同点·差异共同点都是有序序列,可用索引访问,长度用len()计算差异列表元素类型可不同,且支持修改列表是后续排序、查找等算法的主要操作对象,必须熟练掌握章节导览03结构实现三种结构构成一切程序用顺序、分支、循环结构落地算法逻辑,实现从思路到代码的跨越顺序结构:按序执行IPO模式程序按

输入—处理—输出

顺序执行,自上而下、逐条运行完整BMI计算代码h=float(input("身高(m):"))→w=float(input("体重(kg):"))→BMI=w/h**2→print("BMI为:",round(BMI,1))IPO·顺序结构输入—处理—输出,程序自上而下、逐条运行1第1步输入input()获取身高、体重代码h=float(input(...))2第2步处理BMI=w/h**2计算指标代码BMI=w/h**23第3步输出print()显示结果代码print("BMI为:",...)分支结构:条件选择根据BMI值判断体重状态,条件成立执行if块,否则执行else块。根据条件判断,程序在两条路径中二选一地执行。if块(条件为真)BMI≥24输出

"体重超标"ifBMI>=24:print("体重超标")else块(条件为假)BMI<24输出

"体重正常"else:print("体重正常")分支结构让程序具备了判断能力多分支结构:层层判断当判断条件多于两个时,使用elif扩展分支。多分支结构

当判断条件多于两个时,使用

elif

扩展分支,层层判断、逐级递进。停车收费规则≤6小时每小时

4

元6–12小时前6小时按4元/时,超出部分按

3

元/时>12小时前12小时按上述规则,超出部分按

2

元/时elif代码示例t=float(input("停车时长(小时):"))ift<=6:fee=t*4elift<=12:fee=6*4+(t-6)*3else:fee=6*4+6*3+(t-12)*2print("收费:",fee,"元")循环结构:重复执行for循环遍历序列,让重复操作交给计算机for循环遍历序列,让重复操作交给计算机1到100累加求和代码示例s=0foriinrange(1,101):s=s+iprint("1到100的和为:",s)循环执行100次,每次把

i

累加到

s循环结构的三个关键要素range三参数起始、结束、步长控制序列范围循环变量每次迭代取序列中一个值累计器变量

s

逐步累加循环结果while循环:条件驱动while循环依靠条件驱动,条件为真持续执行。while循环代码示例n=1s=0whilen<=100:s=s+nn=n+1print(s)累加1到100循环三要素初值n=1,循环起始状态条件n<=100,决定是否继续更新n=n+1,防止死循环初始判断迭代循环嵌套与流程控制嵌套循环用于处理二维问题,外层每走一步,内层完整走一遍。break跳出当前循环,不再执行剩余迭代continue跳过本次循环剩余语句,进入下一次迭代外层循环控制行数,内层循环逐列输出,每行末尾由

print()

换行。九九乘法表代码foriinrange(1,10):forjinrange(1,i+1):print(i,"*",j,"=",i*j,end="")print()章节导览04常用算法典型算法是思维的模板在解析、枚举、排序等算法中,体会程序实现的多样性与效率解析算法:建立数学表达式解析算法根据前提条件与结果的关系,找出数学表达式求解明确→建立→求解01算法案例正多边形旋转角度案例明确已知条件与所求结果建立数学模型由表达式编程求解4行代码输入边数,输出旋转角Python枚举法:逐一检验逐一列举,分支检验——枚举法的两步闭环枚举法两步核心逐一列举在给定范围内逐一列举可能答案分支检验用分支判断检验是否符合要求递推法:由旧值算新值递推法将复杂计算转化为简单过程的多次重复,每次由旧值推出新值。递推法把问题交给循环,变量迭代是把握动态过程的难点所在1左栏代码区a,b

=

1,1n

=

int(input("项数:"))for

i

in

range(3,

n

+

1):

a,

b

=

b,

a

+

bprint(b)2右栏变量滚动更新表第i轮a值b值a+b初始112i=3123i=4235i=5358i=65813i=781321i=8132134递推思想复杂计算转化为多次重复变量迭代旧值推出新值冒泡排序:相邻比较交换相邻比较,逆序交换——每轮将最大值冒泡至末尾3项冒泡排序相邻元素两两比较逆序交换每轮将最大值冒泡至末尾完整代码双层循环实现排序选择排序:定位最小值每轮从未排序部分选出最小值,与当前首位交换记录最小值的索引k,一轮结束后再交换与冒泡排序相比,交换次数更少,比较策略不同选择排序Python实现a=[5,3,8,6,2]foriinrange(len(a)-1):k=i

forjinrange(i+1,len(a)):

ifa[j]<a[k]:k=ja[i],a[k]=a[k],a[i]print(a)算法效率初识冒泡与选择排序时间复杂度均为

O(n²),数据量大时较慢算法比较的两个维度:正确性与效率好的算法不仅是对,还要快;时间复杂度的概念为后续算法优化打开一扇门时间复杂度等级表符号含义典型场景O(1)常数时间直接访问某元素O(n)线性时间遍历一遍数据O(n²)平方时间双层循环遍历章节导览05综合实践把问题交给机器处理完整经历分析、设计、编写、调试,让算法思维真正落地项目情境:体质健康分析体育组刚完成全年级体能抽测,一批成绩数据需要快速处理。数据处理起点三个问题,指向三类基本数据处理操作数据量小时人力尚可,数据量增至成千上万条时,唯有算法与程序能胜任问题的平均值:班级总分

÷

人数平均成绩班级总分

÷

人数,一次性算出整体水平找两极:排序或逐项比较最高与最低排序或比较得出,一眼锁定两端统计达标:按标准逐条判断合格人数按标准逐条判断,汇总达标数量算法设计:从思路到流程设计阶段先画流程图再写代码,能有效避免思路跳跃与步骤遗漏统计平均分与合格人数01输入录入全体学生成绩02处理累加所有成绩并计数逐项判断是否达到合格线03输出显示平均分与合格人数编写与调试:小步迭代01上段·完整代码区Python程序:统计平均分与合格人数定义列表scores并逐项累加总分,同时统计合格(≥60)人数。运行结果:输出平均分与合格人数两类统计信息。for循环遍历每个分数,累加total

并以if判断合格条件增加count。调试三步法读报错逐行排查小步验证读报错先看错误信息,快速定位问题所在位置。逐行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论