3.2 算法及其描述 课件-2021-2022学年高中信息技术粤教版(2019)必修1(21张PPT)

文档属性

名称 3.2 算法及其描述 课件-2021-2022学年高中信息技术粤教版(2019)必修1(21张PPT)
格式 ppt
文件大小 1.8MB
资源类型 教案
版本资源 粤教版(2019)
科目 信息技术(信息科技)
更新时间 2021-12-21 10:46:18

图片预览

文档简介

(共21张PPT)
3.2 算法及其描述
例:设计一个算法,求两个正整数为M和N的最大公约数?
在确定了解决问题的方法之后,如何把解题方法转换成计算机能完成的操作步骤呢?
辗转相除法求最大公约数
设计算法:
1、输入正整数M和N的值
2、R=M%N
3、如果R==0,则继续步骤4,否则M=N、N=R,转步骤2
4、输出N的值
5、结束
算法的基本概念
算法:解题方法的精确描述。其要求是有有限个步骤组成的,并且每一步骤的含义都是明确的,而且是能行的。
简单的说,算法就是解决问题的方法和步骤。
例如乐谱是乐队指挥和演奏的算法;菜谱是厨师做菜的算法等等。
算法的特征
输入:有0个或多个输入
确定性
有穷性
输出:有1个或多个输出
能行性
算法的表示方法
算法可以用多种不同的方法来描述,
主要有:自然语言、流程图、伪代码
流程图是一种比较直观易用的、用图形来描述算法的方法。
用伪代码描述算法就是用介于自然语言与计算机语言之间的文字和符号来描述算法。伪代码不用图形符号,书写方便,格式紧凑,易于理解,便于向计算机程序过度。
自然语言
是人们日常所用的语言,如汉语、英语等。
使用自然语言不用专门训练,所描述的算法也通俗易懂
例:一个笼子里有鸡和兔,现在只知道里面一共有A个头,B只脚,求鸡和兔各有多少只?设计一个求解的算法,并用自然语言描述出来。
分析问题:
设所求的鸡数是X,兔数是Y,已知笼子里的头数是A,脚数是B,依题意,得到如下的议程组:
X+Y=A
2X+4Y=B
解方程组得:X=2A-B/2 ,Y=B/2-A
设计算法:
1、输入A和B的值
2、求X=2A-B/2
3、求Y=B/2-A
4、输出X,Y的值
5、结束
流程图中的符号的用途
流程图
开始
输出N的值
M=N,N=R
R=0
R=M除以N的余数
输入正整数M和N
结束
开始
Y=B/2-A
输出X,Y的值
结束
X=2A-B/2
输入A和B的值


问题:求6x+5y+4z=50正整数解的个数及显示所有解?
①t=0
②x=1
③y=1
④z=1
⑤如果6x+5y+4z==50,t=t+1,print x,y,z
⑥z=z+1
⑦如果z<=12,则转步骤⑤,否则继续步骤⑧
⑧y=y+1
⑨如果y<=10,则转步骤④,否则继续步骤⑩
⑩x=x+1
如果x<= 8,则转步骤③,否则继续步骤
print t
①t=0
②x=1
③y=1
④z=1
⑤6x+5y+4z==50,t=t+1,print x,y,z
⑥z=z+1
⑦z<=12,转⑤,否转⑧
⑧y=y+1
⑨y<=10,转④,否转⑩
⑩x=x+1
x<= 8,转③,否转
print t
开始
结束
t=0,x=1,y=1,z=1
6x+5y+4z==50


t=t+1
输出x,y,z的值
z=z+1
z<=12


y=y+1
y<=10


z=1
y=y+1
y<=10
y=1,z=1


伪代码
t=0
for x in range(1, 9):
for y in range(1, 11):
for z in range(1, 13):
if(6 * x + 5 * y + 4 * z == 50)
{t = t + 1;
输出解的个数t和三个整数x,y,z}
问题:设计一个算法,求三个数中的最大数。
①输入正整数a,b,c
②如果a>=b,则x=a,否则x=b
③如果c>=x,则x=c
④输出x
⑤结束
开始
输入正整数a,b,c
a>=b
x=a
x=b
c>=x
x=b
输出正整数x
结束
伪代码
输入正整数a,b,c
if a>=b:x=a
else:x=b
if a>=b:x=a
else:x=b
输出解的个数t和三个整数x,y,z}
作业:设计一个算法:
求出100以内能被3整除的所有正整数
算法的常用描述方法
程序的三种基本结构