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

下载本文档

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

文档简介

C语言程序设计教程3算法1精选课件3算法本章内容3.1算法概述3.2程序结构3.3结构化程序设计方法

2精选课件程序=算法+数据结构+程序设计方法+语言环境灵魂加工对象工具结构化程序设计(顺序、循环、选择)3精选课件3.1算法的概念广义的说,为解决一个问题而采用的方法和步骤,就称为算法。选择合适的算法算法分两类:数值算法和非数值算法4精选课件买电视机的步骤:选好货物开票付款拿发票取货回家考大学上大学的步骤填报名单交报名费拿准考证参加考试得到录取通知书报到注册5精选课件简单算法举例例1:求5!(1×2×3×4×5)。可先写出这样的算法:(1)先求1×2,得到结果2;(2)将步骤1得到的结果再乘以3,得到结果6;(3)将6再乘以4,得到24;(4)将24再乘以5,得到120。6精选课件求5!(1×2×3×4×5)上述算法太繁琐,我们找一种通用的表示方法:

s1:设变量p,被乘数,p=1;s2:设变量i,代表乘数,i=2;s3:使p×i,乘积放在被乘数变量p中,可表示为:

p×ip;s4:使i的值加1,即i+1i;s5:如果i不大于5,返回重新执行步骤s3以及其后的s4、s5;否则,算法结束。

最后得到的p就是5!的值。

7精选课件例2.求1×3×5×7×9×11上述算法稍作改动:s1:1p;s2:3i;s3:p×ip;s4:i+2is5:若i11,返回s3;否则,结束。8精选课件

请同学们仔细分析循环结束的条件,即s5步骤,如果在求1×3×5×7×9×11时,将s5步骤写成:

s5:若I<11,返回s3。这样会有什么问题?会得到什么结果?9精选课件例2有50个学生,要求将他们之中成绩在80分以上者打印出来。解:用n表示学生学号,n1代表第一个学生学号,ni

代表第i个学生学号。用g代表学生成绩,gi代表第i个学生成绩,算法表示如下:10精选课件S1:1i;S2:如果gi80,则打印ni和gi,否则不打印。S3:i+1i;S4:如果i50,返回s2,继续执行,否则算法结束。

本例中,变量i作为下标,用它来控制序号(第几个学生,第几个成绩)。当i超过50时,表示已对50个学生的成绩处理完毕,算法结束。11精选课件算法的特性有穷性确定性有零个或多个输入有一个或多个输出有效性12精选课件用语言表示算法(自然语言、结构化语言)用流程图表示算法(传统、N-S流程图)用伪代码表示算法用计算机语言表示算法要记住常用的流程图符号(请学生说出各自的名称)

怎样表示一个算法13精选课件例如:描述计算并输出z=y/x的流程,可以用自然语言描述如下:(1)输入x,y。(2)判断x是否为0:若X=0,则输出错误信息;否则计算y/xz,且输出z。自然语言描述举例14精选课件例如:描述计算并输出z=y/x的流程,可以用结构化语言描述算法如下:(1)inputx,y。(2)ifx=0print(“非法输入”)elsez=y/x;printz;结构化语言描述举例15精选课件

求5!程序流程图举例t=1i=2t=t*ii=i+1i>5结束

NY

开始16精选课件【例】判断自然数n(n>1)是否为素数盒图(N-S图)举例17精选课件开始

1p

iP*i

pi+1ii>5结束几种算法表示方法比较求5!S1:1pS2:2iS3:p*ipS4:i+1iS5:若i<=5,

返回s3;

否则,结束用自然语言表示用流程图表示

1p2IP*i

pi+1i直到i>5结束用N-S流程表示intmain(void){inti,t;t=1;i=2;while(i<=5){t=t*i;i=i+1;}printf(“%d”,t);return0;}用C语言表示18精选课件3.2程序的三种基本结构结构化程序设计基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto)结构化程序:由三种基本结构反复嵌套构成的程序叫~优点:结构清晰,易读,提高程序设计质量和效率19精选课件三种基本结构顺序结构选择结构(选取结构、分支结构)循环结构(重复结构)当型循环结构(While型)直到型循环结构(Until型)三种结构的特点:只有一个入口和出口结构内的每一部分都有机会被执行到。结构内不存在死循环

20精选课件顺序结构ABAB流程图N-S图21精选课件PAB真假PBA真假选择结构A1A2AiAnk=k2k=k1k=knk=ki......二分支选择结构多分支选择结构k22精选课件循环结构当型循环结构直到型循环结构PA假真当P为真AAP真假A直到P为真注:A可以是一个简单语句,也可以是一个基本结构23精选课件课堂练习:

以“在一组数中求最大数”的详细设计为例,分别用程序流程图、N—S图来描述它的软件实现过程。为了简化,两张图可全部省略程序开始处的输入语句和结束处的输出语句。24精选课件3.3结构化程序设计自顶向下逐步细化模块化设计结构化编程25精选课件课后习题:2.1什么是算法?试从日常生活中找3个例子,描述它们的算法。2.2什么叫结构化的算法?为什么要提倡结构化的算法?2.3试述三种基本结构的特点,你能否自己另外设计两种基本结构(要符合基本结构的特点)。26精选课件2.4分别用传统流程图和盒图(N-S图)表示求解以下问题的算法。(1)有两个瓶子A和B,分别盛放醋和酱油,要求将它们互换(即A瓶原来盛醋,现改盛酱油,B瓶则相反)。(2)依次将10个数输入,要求将其中最大的数打印出来。(3)有3个数a、b

温馨提示

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

评论

0/150

提交评论