c程序设计教程课件(第三章)_第1页
c程序设计教程课件(第三章)_第2页
c程序设计教程课件(第三章)_第3页
c程序设计教程课件(第三章)_第4页
c程序设计教程课件(第三章)_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C C语言程序设计教程语言程序设计教程3 3 算法算法3 3 算算 法法本章内容本章内容 3.1 3.1 算法概述算法概述 3.2 3.2 程序结构程序结构 3.3 3.3 结构化程序设计方法结构化程序设计方法 程序程序=算法算法+ +数据结构数据结构+ +程序设计方法程序设计方法+ +语言环境语言环境灵灵魂魂加工对象加工对象工具工具结构化程序设计结构化程序设计(顺序、循环、选择)(顺序、循环、选择)3.1 3.1 算法的概念算法的概念 广义的说广义的说, ,为解决一个问题而采用的方为解决一个问题而采用的方法和步骤法和步骤, ,就称为算法。就称为算法。 选择合适的算法选择合适的算法 算法分两类

2、:数值算法和非数值算法算法分两类:数值算法和非数值算法买电视机的步骤:买电视机的步骤:选好货物开票付款拿发票取货回家考大学上大学的步骤考大学上大学的步骤填报名单交报名费拿准考证参加考试得到录取通知书报到注册简单算法举例简单算法举例例例1 1 :求:求5 5! (1 12 23 34 45 5)。)。可先写出这样的算法:可先写出这样的算法: (1 1)先求)先求1 12 2,得到结果,得到结果2 2; (2 2)将步骤)将步骤1 1得到的结果再乘以得到的结果再乘以3 3,得到结果,得到结果6 6; (3 3)将)将6 6再乘以再乘以4 4,得到,得到2424; (4 4)将)将2424再乘以再乘

3、以5 5,得到,得到120120。求求5 5! (1 12 23 34 45 5) 上述算法太繁琐,我们找一种通用的表示方法:上述算法太繁琐,我们找一种通用的表示方法: s1:s1:设变量设变量p p,被乘数,被乘数,p=1;p=1; s2: s2:设变量设变量i, i,代表乘数,代表乘数,i=2;i=2; s3: s3:使使p pi, i,乘积放在被乘数变量乘积放在被乘数变量p p中,可表示为:中,可表示为: p p i p; i p; s4: s4:使使i i的值加的值加1 1,即,即i+1 i;i+1 i; s5: s5:如果如果i i不大于不大于5 5,返回重新执行步骤,返回重新执行步

4、骤s3s3以及其后的以及其后的s4s4、s5;s5;否则,算法结束。否则,算法结束。 最后得到的最后得到的p p就是就是5! 5!的值。的值。 例例2.求求13579 11上述算法稍作改动:上述算法稍作改动: s1: 1 s1: 1 p; p; s2: 3 s2: 3 i i; ; s3: p s3: p i i p; p; s4: i+2 s4: i+2 i i s5: s5: 若若i i 11,11,返回返回s3;s3;否则,结束。否则,结束。 请同学们仔细分析循环结束的条件,即请同学们仔细分析循环结束的条件,即s5s5步骤,如果在求步骤,如果在求1 13 35 57 79 9 1111时

5、,时,将将s5s5步骤写成:步骤写成: s5s5:若:若I11I5结束结束 NY 开始开始17【例例】判断自然数判断自然数n(n1)是否为素数)是否为素数 盒图(盒图(N-SN-S图)举例图)举例开始开始 1 p 2 iP*i pi+1 i i5结束结束几种算法几种算法表示方法比较表示方法比较 求求5!S1: 1 pS2: 2 iS3: p*i pS4: i+1 iS5:若若i5结束结束 用用N-SN-S流程表示流程表示int main(void) int i,t; t=1; i=2; while(i=5) t=t*i; i=i+1; printf(“%d”,t); return 0; 用语言

6、表示用语言表示3.2 3.2 程序的三种基本结构程序的三种基本结构结构化程序设计结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(限制使用无条件转移语句(gotogoto) 结构化程序:由三种基本结构反复嵌套构成的程序结构化程序:由三种基本结构反复嵌套构成的程序叫叫 优点:结构清晰,易读,提高程序设计质量和优点:结构清晰,易读,提高程序设计质量和效率效率三种基本结构三种基本结构顺序结构顺序结构 选择结构(选取结构、分支结构)选择结构(选取结构、分支结构)循环结构循环结构( (重复结构重复结构) )l 当型循环结构(当

7、型循环结构(WhileWhile型)型)l 直到型循环结构(直到型循环结构(UntilUntil型)型)三种结构的特点:三种结构的特点:t 只有一个入口和出口只有一个入口和出口t 结构内的每一部分都有机会被执行到。结构内的每一部分都有机会被执行到。t 结构内不存在死循环结构内不存在死循环 顺序结构顺序结构ABAB流程图N-S图PAB真假PBA真假选择结构选择结构A1A2AiAnk=k2k=k1k=knk=ki.l二分支选择结构l多分支选择结构k k循环结构循环结构l当型循环结构l直到型循环结构PA假真当P为真AAP真假A直到P为真注:A可以是一个简单语句,也可以是一个基本结构课堂练习:课堂练习

8、: 以以“在一组数中求最大数在一组数中求最大数”的详细设计为例,分别的详细设计为例,分别用程序流程图、用程序流程图、NSNS图来描述它的软件实现过程。为图来描述它的软件实现过程。为了简化,两张图可全部省略程序开始处的输入语句和结了简化,两张图可全部省略程序开始处的输入语句和结束处的输出语句。束处的输出语句。 3.3 3.3 结构化程序设计结构化程序设计自顶向下自顶向下逐步细化逐步细化模块化设计模块化设计结构化编程结构化编程课后习题:课后习题:2.1 2.1 什么是算法什么是算法? ?试从日常生活中找试从日常生活中找3 3个例子,描述它个例子,描述它们的算法。们的算法。2.2 2.2 什么叫结构

9、化的算法什么叫结构化的算法? ?为什么要提倡结构化的算为什么要提倡结构化的算法?法?2.3 2.3 试述三种基本结构的特点,你能否自己另外设试述三种基本结构的特点,你能否自己另外设计两种基本结构计两种基本结构( (要符合基本结构的特点要符合基本结构的特点) )。2.4 2.4 分别用传统流程图和盒图(分别用传统流程图和盒图(N-SN-S图)表示求解以下问题的算图)表示求解以下问题的算法。法。(1) (1) 有两个瓶子有两个瓶子A A和和B B,分别盛放醋和酱油,要求将它们互换,分别盛放醋和酱油,要求将它们互换( (即即A A瓶原来盛醋,现改盛酱油,瓶原来盛醋,现改盛酱油,B B瓶则相反瓶则相反) )。(2) (2) 依次将依次将1010个数输入,要求将其中最大的数打印出来。个数输入,要求将其中最大的数打印出来。(3) (3) 有有3 3个数个数a a、b b、c c,要求按大小顺序把它们打印出来。,要求按大小顺序把它们打印出来。(4) (4) 求求1+2+3+1001+2+3+100。(5) (5) 判断一个数判断一个数n n能否同时被能否同时被3 3和和5 5整除。整除。(6) (6) 将将10

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论