- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 程序的灵魂----算法
算法的概念
简单算法举例
算法的特性
算法的表示
结构化程序设计方法
§2.1 算法的概念
算法
是为解决某个问题而采取的方法和步骤。
计算机算法
是计算机能够执行的算法。
计算机算法分类
数值运算算法:用于求解数值
非数值运算算法:用于事务管理领域
第
二
章
程
序
的
灵
魂
算
法
§2.2 简单算法举例
【例2.1】求1×2×3×4×5。
原始算法:
步骤1:先求1×2,得到结果2。
步骤2:将步骤1得到的乘积2乘以3,得到结果6。
步骤3:将6再乘以4,得24。
步骤4:将24再乘以5,得120。
此算法虽正确,但太繁,不可取。
第
二
章
程
序
的
灵
魂
算
法
设: 被乘数、乘积:P 乘数:I
改进算法:
S1: 1 →P
S2: 2 →I
S3: 使P×I, 乘积放在变量P中,可表示为
P×I→P
S4: 使I值+1,即I+1→I
S5: 如果I≤5, 返回重新执行S3~S5;否则
,执行S6。
S6: 输出P值
第
二
章
程
序
的
灵
魂
算
法
简单算法举例
组成循环,计算机容易实现
思考:改为I<5,结果?
【例2.2】有50个学生,要求将成绩在80分
以上学生的学号和成绩打印出来。
设: 第i个学生学号:ni
第i个学生成绩:gi 序号: i
算法表示如下:
S1: 输入学生学号ni和成绩gi
S1: 1→i
S2: 如果gi≥80,则打印ni和gi,否则不打印
S3: i+1→i
S4:若i≤50, 返回重新执行S2~S4;否则,算
法结束。
第
二
章
程
序
的
灵
魂
算
法
简单算法举例
【例2.3】判定2000 — 2500年中的每一年
是否闰年,将结果输出。
判闰年的条件:
1) 能被4整除,但不能被100整除的年份;
2) 能被100整除,又能被400整除的年份;
设: 被检测的年份:y
算法可表示如下:
S1: 2000→y
S2:若y不能被4整除,则输出y “不是闰年”,然后
转到S6
S3:若y能被4整除,不能被100整除,则输出y“是闰年”,然后转到S6
第
二
章
程
序
的
灵
魂
算
法
简单算法举例
S4:若y能被100整除,又能被400整除,则输出y“是闰年” ,然后转到S6
S5:若不能被400整除,则输出y“不是闰年”。
S6:y+1→y
S7:当y≤2500时, 返回S2继续执行,否则,算法结束。
第
二
章
程
序
的
灵
魂
算
法
简单算法举例
【例2.4】求1-1/2+1/3-1/4+….+1/99-1/100
设:sign表示每项的符号
sum表示累加和
deno表示每项的分母
term表示每项的值
算法可表示如下:
S1: sign=1
S2: sum=1
S3: deno=2
第
二
章
程
序
的
灵
魂
算
法
简单算法举例
S4: sign=(-1)×sign
S5: term= sign×(1/deno )
S6: sum=sum+term
S7: deno= deno +1
S8:若deno≤100,返回S4继续执行;否则,
执行S9。
S9: 输出sum的值。
第
二
章
程
序
的
灵
魂
算
法
简单算法举例
【例2.5】对一个大于或等于3的正整数,判断它是不是一个素数。
素(质)数:只能被该数自身和1整除的数。
判素数方法:将数n作为被除数,轮流除以
2到(n-1),若都不能整除,
则n为素数。
设:n表示要判断的数
i表示除数
r表示余数
简单算法举例
第
二
章
程
序
的
灵
魂
算
法
算法可表示如下:
S1: 输入n的值
S2: i=2
S3: n被i除,得余数r
S4:如果r=0,表示n能被i整除,则打印“n不是素数”,算法结束;否则执行S5
S5: i+1→i
S6:如果i≤n-1,返回S3;否则打印“n是素数”;算法结束。
第
二
章
程
序
的
灵
魂
算
法
简单算法举例
可改为√n
§2.3 算法的特性
有穷性
确定性
有效性
有零个或多个输入,有一个或多个输出
第
二
章
程
序
的
灵
魂
算
法
§2.4 算法的表示
自然语言
流程图
结构化流程图(NS图)
伪代码
计算机语言
第
文档评论(0)