2.1.2 算法的描述 课件 2022—2023学年浙教版(2019)高中信息技术必修1(19张PPT)

文档属性

名称 2.1.2 算法的描述 课件 2022—2023学年浙教版(2019)高中信息技术必修1(19张PPT)
格式 pptx
文件大小 2.6MB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2022-12-20 18:51:41

图片预览

文档简介

(共19张PPT)
2.1.2 算法的描述
农农的困惑1
农农的妈妈是一位高中信息技术老师,正在读小学的农农,是个热爱信息技术的孩子,农农的家里养了很多小鸡和小鸭,小鸡和小鸭生了好多蛋。有一天,农农的妈妈请农农帮忙将蛋分类:把鸡蛋放到红色的鸡蛋框里,把鸭蛋选出来放到蓝色的鸭蛋框里。并要求农农使用算法的知识描述一下这个过程。
聪明的同学们一起来帮助农农解决这个问题吧。
算法
算法的概念
广义地讲,“算法”指的是解决问题或完成任务的一系列步骤。不仅仅指计算任务(算术),也可以是社会生活中各种事务的处理。
在计算机科学领域内,“算法”指的是用计算机解决问题的步骤,是为了解决问题而需要让计算机有序执行的、无歧义的、有限步骤的集合。不仅包含了数值计算,还包含了非数值计算的数据处理。
解决什么问题?
将鸡蛋和鸭蛋分别放进不同的框里
设计出解决问题的算法,需要用能被算法执行者理解的形式加以呈现,才能被算法执行者(人,计算机)理解并执行。算法的这种呈现就称为算法的描述。
常见的算法描述方式有自然语言、流程图、伪代码、计算机程序设计语言等
例:停车场车位探测中的算法
自然语言是人们在日常生活中交流使用的语言,如汉语、英语、德语、日语等。用自然语言描述算法通俗易懂,且不需要进行专门的学习和训练。
自然语言描述如下:
(1)输入变量flag的值。
(2)若flag的值为1, 则设置指示灯为绿色,输出“空车位”;
否则,设置指示灯为红色,输出“非空车位。
鸡蛋鸭蛋分类的算法
自然语言描述如下:
(1)输入变量d的值。
(2)若d的值为1, 输出“鸡蛋”;
否则,输出“鸭蛋”。
缺点:比较累赘,具有二义性
如:5个学校的老师
5个学校?学校的5个老师?
流程图描述算法
图形 名称 功能
开始/结束符 表示算法的开始或结束
输入/输出框 表示算法中数据的输入或输出
处理框 表示算法中数据的运算处理
判断框 表示算法中的条件判断
流程线 表示算法中的执行方向
连接点 表示算法中的转接
流程图用一些图形符号表示规定的操作,并用带箭头的流程线连接这些图形符号,表示操作进行方向。
流程图描述算法
自然语言描述如下:
(1)输入变量flag的值。
(2)若flag的值为1, 则设置指示灯为绿色,输出“空车位”;否则,设置指示灯为红色,输出“非空车位”。
鸡鸭蛋分类的流程图描述
自然语言描述如下:
(1)输入变量d的值。
(2)若d的值为1, 则放入红色框,输出“鸡蛋”;否则,放入蓝色框,输出“鸭蛋”。
伪代码描述算法
伪代码指的是一种比较直观简洁的、符号接近计算机程序代码的算法描述方式,其风格很像计算机程序设计语言,但又不是真正的可以被计算机理解的代码。
车位探测算法
计算机程序语言描述算法
为了让计算机真正解决问题,需要将算法用某种计算机程序设计语言来描述,这个过程称为程序编写(或称代码编写)。
计算机程序语言
伪代码
农农的困惑2
聪明的农农用流程图描述了将鸡蛋鸭蛋分类的过程,得到了妈妈的表扬。于是,妈妈给了农农一个艰巨的任务,妈妈在三轮车上装了一筐鸡蛋(足有几百个),让农农给外婆送去,同时还给了农农一张折好的纸,农农可高兴了(哈哈,终于能帮妈妈做点事了),还没等妈妈的话说完,他就迫不及待地骑上三轮车出发了。途中,农农一直在想:这一筐鸡蛋有多少个呢?
于是,农农停下来拿出鸡蛋,一个个地数了起来:一个、两个.....
数鸡蛋的流程图描述
自然语言描述如下:
(1)设置变量c的初始值为0。( c为计数器,存放鸡蛋的数量)
(2)若框中还有鸡蛋, 则鸡蛋个数c的值加1;否则,输出解c。
开始
计数器置初值:c 0
筐中还有鸡蛋吗
Y
N
计数器计数: c c+1
输出解:c
结束
农农的困惑3
数着数着,农农觉的这样数没劲,于是他开始三个三个地数,发现最后剩二个;五个五个数,最后剩三个;七个七个数,最后剩二个。农农正在思考倒底有多少个鸡蛋的时候,突然听到汽车的喇叭声,农农慌忙往路边躲闪,汽车从身边呼啸而过。
“OH,My God!还好没撞到。”农农正为自己庆幸,但马上他又发现那些鸡蛋已洒满了一地,全碎了。这可怎么办呀,农农禁不住大哭起来......
农农的困惑3
这时,汽车已在前面停了下来,司机忙跑过来问道:“小朋友别哭,有没有伤着呀?告诉叔叔有多少鸡蛋,叔叔会赔给你的。”听到叔叔说会赔,农农这才停止了哭泣,忙从口袋里拿出纸擦干了眼泪,并把刚才数鸡蛋的情况一五一十地告诉了叔叔,可两人算了半天也没算出个结果,唉,毕竟汽车司机也只有小学文化。
这时,正好碰上了读高中回家的你,他们就请教了你这个高中生。
计算鸡蛋个数的流程图描述
开始
可能解的初值:j 100
j在100~999之间吗
Y
N
结束
三三数之剩二,五五数
之剩三,七七数之剩二?
Y
j j+1
输出:j
N
自然语言描述如下:
(1)设置变量j的初始值为100。( j存放鸡蛋的可能数量)
(2)如果j在100~999之间, 若满足三三数之剩二,五五数之剩三,七七数之剩二,则输出可能的解j,判断下一个j;否则,直接判断下一个j 。
计算鸡蛋个数的程序实现
j=100
while j<=999:
if j%3==2 and j%5==3 and j%7==2:
print(j)
j=j+1
开始
可能解的初值:j 100
j在100~999之间吗
Y
N
结束
三三数之剩二,五五数
之剩三,七七数之剩二?
Y
j j+1
输出:j
N
农农的收获
我们在100~999范围内可以求出多个可能解,但是倒底是哪个呢?
这时,农农想起了出发前妈妈给他的那张纸,咦,说不定妈妈在纸上写了鸡蛋的数目呢,快找找,可纸在哪呢?
哦,农农想起来了,原来纸已经被他擦完眼泪扔了,于是他马上返回路边找了起来,费了好大劲终于找到了,打开一看纸上写着:“这里一共鸡蛋数有:3**,请妈妈……。”可惜的是后面的二个数字已经被泪水模糊了。
幸好农农还比较聪明,他马上就知道了答案,开开心心拿着钱回家了(因为鸡蛋没白碎,而且还学到了很多知识)。
总结
算法的描述
自然语言、流程图、伪代码、计算机程序设计语言
图形 名称 功能
开始/结束符 表示算法的开始或结束
输入/输出框 表示算法中数据的输入或输出
处理框 表示算法中数据的运算处理
判断框 表示算法中的条件判断
流程线 表示算法中的执行方向
连接点 表示算法中的转接