- 1、本文档共68页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章 算法---程序灵魂
第2章 算法---程序的灵魂;一个程序主要包括以下两方面的信息:
(1) 对数据的描述。在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式
这就是数据结构(data structure)
(2) 对操作的描述。即要求计算机进行操作的步骤
也就是算法(algorithm);数据是操作的对象
操作的目的是对数据进行加工处理,以得到期望的结果
著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式:
算法 + 数据结构 = 程序;一个程序除了算法和数据结构这主要要素外,还应当采用结构化程序设计方法进行程序设计,并且用某一种计算机语言表示
算法、数据结构、程序设计方法和语言工具是一个程序设计人员应具备的知识;算法是解决“做什么”和“怎么做”的问题
程序中的操作语句,是算法的体现
不了解算法就谈不上程序设计;2.1 什么是算法
2.2 简单的算法举例
2.3 算法的特性
2.4 怎样表示一个算法
2.5 结构化程序设计方法;2.1 什么是算法;2.1 什么是算法;2.2简单的算法举例;2.2简单的算法举例;2.2简单的算法举例;2.2简单的算法举例; 例2.2 有50个学生,要求将成绩在80分以上的学生的学号和成绩输出。
用ni代表第i个学生学号,gi表示第i个学生成绩
S1:1?i
S2:如果gi≥80,
则输出ni和gi,否则不输出
S3:i+1?i
S4:如果i≤50,返回到步骤S2,继续执行,否则,算法结束
; 例2.3 判定2000—2500年中的每一年是否闰年,并将结果输出。
闰年的条件:
(1)能被4整除,但不能被100整除的年份都是闰年,如2008、2012、2048年
(2)能被400整除的年份是闰年,如2000年
不符合这两个条件的年份不是闰年
例如2009、2100年;设year为被检测的年份。算法表示如下:
S1:2000?year
S2:若year不能被4整除,则输出year 的值和“不是闰年”。然后转到S6
S3:若year能被4整除,不能被100整除,则输出year的值和“是闰年”。然后转到S6
S4:若year能被400整除,则输出year的值和“是闰年” ,然后转到S6
S5: 其他情况输出year的值和“不是闰年”
S6:year+1?year
S7:当year≤2500时,转S2,否则停止;;例2.4 求
规律:
①第1项的分子分母都是1
② 第2项的分母是2,以后每一项的分母子都是前一项的分母加1
③ 笫2项前的运算符为“-”,后一项前面的运算符都与前一项前的运算符相反
;例2.4 求
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;否则算法结束;例2.4 求
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;否则算法结束;例2.4 求
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;否则算法结束; 例2.5 给出一个大于或等于3的正整数,判断它是不是一个素数。
所谓素数(prime),是指除了1和该数本身之外,不能被其他任何整数整除的数
例如,13是素数,因为它不能被2,3,4,…,12整除。;判断一个数n(n≥3)是否素数:将n作为被除数,将2到(n-1)各个整数先后作为除数,如果都不能被整除,则n为素数
S1:输入n的值
S2:i=2 (i作为除数)
S3:n被i除,得余数r
S4:如果r=0,表示n能被i整除,则输出n“不是素数”,算法结束;否则执行S5
S5:i+1?i
S6:如果i≤n-1,返回S3;否则输出n “是素数”,然后结束。;2.3算法的特性;2.3算法的特性;2.3算法的特性;2.4怎样表示一个算法;2.4怎样表示一个算法;2.4.1 用自然语言表示算法;2.4.2用流程图表示算法;2.4.2用流程图表示算法; 例2.6 将例2.1的算法用流程图表示。
求1×2×3×4×5
如果需要将最后结果输出:; 例2.6 将例2.1的算法用流程图表示。
求1×2×3×4×5
如果需要将最后结果输出:; 例2.7 例2.2的算法用流程图表示。有
文档评论(0)