算法的概念简单算法举例算法的特性怎样表示.ppt

算法的概念简单算法举例算法的特性怎样表示.ppt

ID:52547881

大小:349.00 KB

页数:53页

时间:2020-04-10

算法的概念简单算法举例算法的特性怎样表示.ppt_第1页
算法的概念简单算法举例算法的特性怎样表示.ppt_第2页
算法的概念简单算法举例算法的特性怎样表示.ppt_第3页
算法的概念简单算法举例算法的特性怎样表示.ppt_第4页
算法的概念简单算法举例算法的特性怎样表示.ppt_第5页
资源描述:

《算法的概念简单算法举例算法的特性怎样表示.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、2.1算法的概念2.2简单算法举例2.3算法的特性2.4怎样表示一个算法2.5结构化程序设计方法习题第2章程序的灵魂——算法一个程序应包括以下两方面内容:对数据的描述。在程序中要指定数据的类型和数据的组织形式,即数据结构(datastructure)。(2)对操作的描述。即操作步骤,也就是算法(algorithm)。数据是操作的对象,操作的目的是对数据进行加工处理,以得到期望的结果。作为程序设计人员,必须认真考虑和设计数据结构和操作步骤(即算法)。因此,著名计算机科学家沃思(NikiklausWirth)提出一个公式数据结构+算法=程序2.1算法的概念从事各种工作和活动,都必须事先想好

2、进行的步骤,然后按部就班地进行,才能避免产生错乱。不要认为只有“计算”的问题才有算法。广义地说,为解决一个问题而采取的方法和步骤,就称为“算法”。对同一个问题,可以有不同的解题方法和步骤。方法有优劣之分。有的方法只需进行很少的步骤,而有些方法则需要较多的步骤。一般说,希望采用简单的和运算步骤少的方法。因此,为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。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

3、,得120。这就是最后的结果。这样的算法虽然是正确的,但太繁琐。如果要求1×2×…×1000,则要写999个步骤,显然是不可取的。而且每次都直接使用上一步骤的数值结果(如2,6,24等),也不方便。应当找到一种通用的表示方法。可以设两个变量,一个变量代表被乘数,一个变量代表乘数。不另设变量存放乘积结果,而直接将每一步骤的乘积放在被乘数变量中。今设p为被乘数,i为乘数。用循环算法来求结果。可以将算法改写如下:S1:使p=1S2:使i=2S3:使p×i,乘积仍放在变量p中,可表示为p×i=>pS4:使i的值加1,即i+1=>iS5:如果i不大于5,返回重新执行步骤S3以及其后的步骤S4和S

4、5;否则,算法结束。最后得到p的值就是5!的值。上面的S1,S2…代表步骤1,步骤2……S是step(步)的缩写。这是写算法的习惯用法。请读者仔细分析这个算法,能否得到预期的结果。显然这个算法比前面列出的算法简练。如果题目改为求1×3×5×7×9×11。算法只需作很少的改动即可:S1:1=>pS2:3=>iS3:p×i=>pS4:i+2=>iS5:若i≤11,返回S3;否则,结束。可以看出,用这种方法表示的算法具有通用性、灵活性。S3到S5组成一个循环,在实现算法时,要反复多次执行S3、S4、S5等步骤,直到某一时刻,执行S5步骤时经过判断,乘数i已超过规定的数值而不返回S3步骤为止。

5、此时算法结束,变量p的值就是所求结果。由于计算机是高速进行运算的自动机器,实现循环是轻而易举的,所有计算机高级语言中都有实现循环的语句。因此,上述算法不仅是正确的,而且是计算机能实现的较好的算法。请读者仔细分析循环结束的条件,即S5步骤。如果在求1×2×…×11时,将S5步骤写成S5:若i<11,返回S3。这样会有什么问题?会得到什么结果?例2.2有50个学生,要求将他们之中成绩在80分以上者打印出来。用n表示学生学号,n1代表第一个学生学号,ni代表第i个学生学号。用g代表学生成绩,gi代表第i个学生成绩,算法可表示如下。S1:1=>iS2:如果gi≥80,则打印ni和gi,否则不打

6、印S3:i+1=>iS4:如果i≤50,返回S2,继续执行;否则,算法结束。本例中,变量i作为下标,用它来控制序号(第几个学生,第几个成绩)。当i超过50时,表示已对50个学生的成绩处理完毕,算法结束。例2.3判定2000—2500年中的每一年是否闰年,将结果输出。闰年的条件是:①能被4整除,但不能被100整除的年份都是闰年,如1996年,2004年是闰年;②能被100整除,又能被400整除的年份是闰年。如1600年、2000年是闰年。不符合这两个条件的年份不是闰年。算法可表示如下:设y为被检测的年份。可采取以下步骤:S1:2000=>yS2:y不能被4整除,则输出y“不是闰年”。然后

7、转到S6S3:若y能被4整除,不能被100整除,则输出y“是闰年”。然后转到S6S4:若y能被100整除,又能被400整除,输出y“是闰年”;否则输出“不是闰年”。然后转到S6S5:输出y“不是闰年”S6:y+1=>yS7:当y≤2500时,转S2继续执行,如y>2500,算法停止。在这个算法中,采取了多次判断。先判断y能否被4整除,如不能,则y必然不是闰年。如y能被4整除,并不能马上决定它是否闰年,还要看它能否被100整除。如不能被100整除

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。