内容正文:
算法及其描述
信息技术组
www.sclyzx.com
请写出A点经过B点到达C点的方法
A
B
C
www.sclyzx.com
www.sclyzx.com
算法
“算法”是指在有限的步骤内求解某一问题所使用的一组定义明确的,可以被执行的规则。
“算法”指的是解决问题的一系列步骤。
“算法”是步骤
思考:所有的步骤都能称为算法吗?
www.sclyzx.com
算法的特征
1、让计算机估算今天之后每一天的天气
2、小明对小华说张老师让他去一趟办公室
3、一个算法必须有零个或者多个输入
4、一个算法必须有一个或者多个输出
5、把天上的星星摘下来分几步
有穷性
确定性
数据输入
数据输出
可行性
www.sclyzx.com
算法的特征
有穷性:计算步骤是有限的;死循环
确定性:每一个步骤必须有确切的定义,不能模棱两可
数据输入:必须有0个或多个数据输入
数据输出:一个或多个数据输出;无功而返
可行性:算法中执行的任何计算步骤都是可以被分解为基本的可执行的操作步骤,
即每个计算步都可以在有限时间内完成。
www.sclyzx.com
算法的描述
定义:用人们日常所用的语言,如:汉语、英语等来描述算法。
▶比较容易理解,越详细越好;
▶如果算法中含有比较多的分支或者循环操作等时,使用自然语言比较难将其清晰表示出来;
▶同时由于自然语言的歧义性会导致算法执行的不确定性。
用程序框图来描述,使流程清晰、简洁。
流程图的基本图形及其功能:
伪代码描述算法就是用介于自然语言和计算机语言之间的文字和符号来描述算法。
t=0
for x in range(1,6):
for y in range(1,8):
for z in range(1,9):
if x*6+y*5+z*4==50:
{t=t+1;
输出解的个数t和三个整数x,y,z}
www.sclyzx.com
自然语言表示法 流程图表示法 伪代码表示法
求两个正整数的最大公约数 ①输入两个正整数m,n(m>n);
②计算m除以n所得的余数R;
③若R=0,输出结果n算法结束;否则执行步骤④
④令m=n,n=R,返回步骤②继续执行;
⑤结束。
m=int(input("输入正整数m: "))
n=int(input("输入正整数n: "))
if m<n:
s=n
n=m
m=s
while m % n!=0:
R=m % n
m=n
n=R
print(n)
www.sclyzx.com
前面的算法描述中我们用到了顺序结构、选择结构、循环结构这三种基本结构。
任何复杂的算法都可以使用三种基本控制结构组合来表示。
顺序结构
选择结构
循环结构
www.sclyzx.com
顺序结构
顺序结构表示程序中各个步骤按照出现的先后顺序依次执行。
语句1
语句2
计算体重指数BMI
开始
输入身高(m)h、体重(kg)w
计算BMI=w/h2
输出BMI
结束
www.sclyzx.com
选择结构
选择结构表示程序的处理步骤出现了分支,需要按照某一个特定的条件选择其中一个分支执行,有单选择,双选择,多选择。
语句1
语句2
条件
成立
不成立
开始
输入身高(m)h、体重(kg)w
计算BMI=w/h2
BMI>24?
结束
输出“你需要加强体育锻炼了”
输出“请继续保持现在的运动强度”
www.sclyzx.com
循环结构
循环结构表示反复执行某些操作直到判断条件为假或者为真时才结束循环。
www.sclyzx.com
三种基本控制结构的作用
① 顺序结构表示程序中的各步操作按出现的先后顺序执行。
② 选择结构表示程序的处理步骤出现了分支,需要根据某一特定的条件选择其中的一个分支执行。(单选择、双选择、多选择)
③ 循环结构表示程序反复执行某个或某些操作,直到判断条件为假(或为真)时,才可终止循环。
www.sclyzx.com
使用三种基本控制结构的组合来描述算法,提高算法清晰度和可读性 !
◆以控制结构为单位,只有一个入口和出口,各单位之间接口简单,比较容易独立地理解每一单位。
◆缩小了算法的静态描述与动态执行过程之间的差异,使得两者容易对应,易于理解。
www.sclyzx.com
知识小结
www.sclyzx.com
课堂作业
完成“课堂练习测试题”
www.sclyzx.com
17
17
谢谢大家
www.sclyzx.com
Lavf57.62.100
$$