用伪代码描述算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用伪代码描述算法没有严格的语法限制, 书写格式也比较自由,只要把意思表达清 楚就可以了,它更侧重于对算法本身的描 述。 在伪代码描述中,表示关键词的语句一般 用英文单词,其他语句可以用英文语句, 也可以用汉语语句。
伪代码的优缺点(书P9): 用伪代码描述的算法简洁、易懂, 修改起来也比较容易,并且很容 易转化为程序语言代码。 缺点是不够直观。
小结 :
2)算法描述的方法有三种。
用自然语言来描述
用流程图来描述
用伪代码描述算法
(书P6) 例:计算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=1 n=2,S=1时,S=3 n=3,S=3时,S=6 n=4,S=6时,S=10 n=5,S=10时,S=15 n=6,S=15时,S=21 …… 算法的另外一个特征:输入、输出。 随时可以将程序改变:N个连续数相加,N个奇数或偶数相加等……
第一章 如何用计算机解决问题
第二节 算法描述与设计
一、算法是“灵魂”
1.算法存在于人们生活中,如:上街购物、顾客 付款、营业员找银等。 2.“韩信点兵问题”有不同的求解过程,就有不同 的算法。 3.算法——解决问题的方法和步骤。 算法是在有限步骤内求解某一问题所使用的一 组定义明确的规则。通俗点说,就是计算机解 题的过程。在这个过程中,无论是形成解题思 路还是编写程序,都是在实施某种算法。前者 是推理实现的算法,后者是操作实现的算法。
解决问题的方法和步 骤就是算法。
算法可以用多种方法来描述
1、用自然语言来描述。 2、用流程图来描述。 3、用伪代码描述算法。
1、用自然语言来描述。(书P6-7)
什么是自然语言。
即用人们日常使用的语言和数 学语言描述的算法
算法描述:
以“韩信点兵问题”
为例:
算法分析:
以“韩信点兵问题” 为例: 1、将N的初始值赋为1 2、如果N被3、5、7整除后余数为2、3、2,则输出N 的值,转入第4步 3、将N的值加1,转到第2步 4、结束程序
第一章 如何用计算机解决问题 第二节 算法描述与设计 为了能更好地理解什么是算法,我 们利用日常生活中的“打电话” 的例 子来讨论。
“打电话” 的过程。
拿
打不通 拨 号 通了
起
听 筒
把听筒 放下
等会儿 再拨
通话
把听筒放下
结束
无人接听
把听筒 放下
等会儿 再拨
第一章 如何用计算机解决问题
算法的概念:
我们知道,如果2月是28天,则这一年是平年;如果是29天,则 这一年是闰年。判断闰年的条件是:如果该年份能被4整除但不能 被100整除,或者能被400整除,则该年为闰年。
算法描述(伪代码): 输入年份→y IF y能被4整除 THEN IF y 不能被100整除 THEN 输出“是闰年” ELSE IF y 能被400整除 THEN 输出“是闰年” ELSE 输出“不是闰年” END IF END IF ELSE 输出“不是闰年” END IF
练习:说出下面流程图的各框名称
开始框 输入框 处理框 判断框 处理框 处理框 处理框 输出框 结束框
如果两个数有最大公约数A,那么这两个数,以及这两个数的 差,还有大数除以小数的余数,必然都是A的倍数。 所以当最后两个数刚好能整除时,较小的数就是最大公约数。
小结 : 1)什么是算法? 解决问题的方法和步骤就是算法
4.算法的发现
世界上最早的算法(P5) 算法是尼克劳斯.沃斯(N.Writh)提出的,他指出: 算法+数据结构=程序。 (即算法不能单独构成程序,它必须和数据结构合 二为一)
算法独立于任何具体的程序设计语言,一个 算法可以用多种程序设计语言来实现。
5-算法的特征
算法要有一个清晰的起始步,表示处理问题 的起点,且每一个步骤只能有一个确定的后 继步骤(1算法的确定性),从而组成一个步骤 的有限序列(2算法的有穷性);要有一个终止 步(序列的终止)表示问题得到解决或不能得 到解决;每条规则必须是确定的、可行的(3 算法的可行性)、不能存在二义性。算法总是 对数据进行加工处理,因此,算法的执行过 程中通常要有数据4输入(0个或多个)和数据5 输出(至少一个)的步骤。
书P7实践:
若N=2,则密文与原文的对应关系是…… 读入字符串的方法……
自然语言的优点:通俗易懂。
缺点:容易产生歧义。
例如:
“这个人连老张也不认识”。
Βιβλιοθήκη Baidu
意思之一:这个人不认识老张。
意思之二:老张不认识这个人。
2、用流程图来描述。
什么是流程图?(也称 程序框图)它是算法的 一种图形化表示方法。
认识流程图符号
流程图的特点:
与自然语言相比,用流程图描述 算法形象、直观,更容易理解。
3、用伪代码描述算法。
1)用伪代码描述“韩信点兵问题”的算 法
For I=1 to N if n能被3、5、7整除余数为2、3、2 输出n end if Next I
then
2)例如,判断一个四位数的年份是否为闰年。 算法分析: