算法的描述与设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课题:算法描述与设计》

教学目标:

1.进一步理解什么是;算法,知道算法的多样性

2.能够对设计的算法做简装的评价

3.学会利用自然语言、流程图和伪代码来描述算法

教学内容

1.了解什么是算法及其特征

2.学习三种描述算法语言

教学重点:通过例子设计算法

教学难点:三种描述算法语言的使用

课时数:1课时

正课讲解

一、算法是“灵魂”

1.算法存在于人们生活中,如:上街购物、顾客付款、营业员(主)找银等。

2.“韩信点兵问题”有不同的求解过程,就有不同的算法。

有N个人,除以3,5,7,分别余2,3,2,求N。

3.算法——解决问题的方法和步骤。

算法是尼克劳斯.沃斯(N.Writh)提出的,他指出:算法+数据结构=程序。

(即算法不能单独构成程序,它必须和数据结构合二为一)

4.算法的发现

时间:公元前3000年~公元前1500年地点:巴比伦

巴比伦人求解“算法”的过程:先用解代数方法,再计算实际数目,最后写上一句短句“这就是一个过程”。

5.算法的特征

我们曾在必须修课中提过一点算法,如:冒泡排序法。

例:计算1+2+3+……+100=?

分析:这个算法有限制范围,可以在有限时间内完成,这是算法的第一个特征:有穷性。计算此算法可以用纸笔、算盘、运算器

和计算机来完成,且计算过程是多样的,但结果是唯一的。这就是算法的可行性、确定性。

计算方法:

⑴把这100个数按顺序相加。

⑵用凑数法:1+99=100,2+98=100,3+97=100,……,49+51,最后只剩下50和100。

⑶令S=0,使1≤n≤100,先执行S=S+n ⑴,再执行n=n+1 ⑵

n=1,S=0时,S(0)=1 n=2,S=1时,S(0)=3 n=3,S=3时,S(0)=6 n=4,S=6时,S(0)=10 n=5,S=10时,S(0)=15 n=6,S=15时,S(0)=21……

算法的另外一个特征:输入、输出。

练习:水仙花数问题,如153=1^3+5^3+3^3,分析它应满足什么条件才能使用此方法?

二、如何描述算法

1.用自然语言描述算法

⑴自然语言——人们日常生活中使用的语言。

⑵此种语言的特点:通俗语易懂,缺乏直观性和简洁,且易产生歧义。

使用此种语言的注意事项:描述要求尽可能精确,详尽。

例:用自然语言描述凯撒密码的原理

第1步:输入26个英文字母,它们分别对应1~26个数学。

第2步:令a=1,k=3,n=26。

第3步:使a的取值范围为1≤a≤26,F(a)=(a+k) mod n,转第5步。

第4步:a=a+1,转第3步。

第5步:输出F(a)相对应的数字。

第6步:把数学转化成相当的字母,输出字母。

第7步:累计字母出现顺序,转第4步。

练习:现有一串字母“PROGRAM”给它加密,请设计算法,用自然语言描述。

2.用流程图描述算法

⑴特点:描述算法形象、直观,容易理解。

⑵流程图符号

3.用伪代码描述算法

特点:描述的算法简、易懂,修改容易,容易转化为程序语言代码。

例:分析课本经9页算法描述

第一个条件:y mod 4=0

判断闰年条件:⑴y不能被100整除;⑵y能被400整除且y能被400整除。判断不是闰年的条件:⑴y mod 4=0 且y mod 100=0,但y不能被400整除;

⑵y不能被4整除。

表示条件判断语句表示循环处理语句:

IF 条件 THEN 执行语句一 Do While 条件循环语句

ELSE执行语句二 Loop

END IF

条件语句中可以包含多个子语句

实践:用表格比较自然语言、流程图和伪代码3种描述方法的优缺点。

相关文档
最新文档