算法的描述与设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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种描述方法的优缺点。