c3顺序结构程序设计.ppt_第1页
c3顺序结构程序设计.ppt_第2页
c3顺序结构程序设计.ppt_第3页
c3顺序结构程序设计.ppt_第4页
c3顺序结构程序设计.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

第三章 顺序结构程序设计,1 利用计算机解决实际问题的步骤,2 算法的概念,3 结构化程序设计,本章内容,4 C+语句,5 C+的输入与输出,6 顺序结构程序设计,1 利用计算机解决实际问题的步骤,算法分析,最有效的方法,问题,选择实现语言,运行程序,分析、论证,算法流程,结束,测试程序,2 算法的概念,一、算法的概念,程序,对数据的描述:在程序中要指定数据的类型和数据 的组织形式,即数据结构,对操作的描述:即操作步骤,也就是算法,算法:为解决一个问题而采取的方法和步骤,称为“算法” 它是程序设计的灵魂,是解决“做什么”和“怎么做”的 问题,处理的对象是数据,2 算法的概念,二、算法的特性,1、有穷性 2、确定性 3、有效性/可行性 4、有零个或多个输入 5、有一个或多个输出,2 算法的概念,三、算法的表示,自然语言表示法 传统流程图表示法 NS结构化流程图 伪代码 PAD图等,2 算法的概念,三、算法的表示,1、自然语言表示法 例:对于一个大于等于3的正整数,判断其是否素数 算法如下: S1:输入n的值 S2:i2作为除数 S3:n被i除,得余数r S4:如果r0,表示n能被i整除,则打印“不是素数”,算法结束; 否则,继续下一步 S5:i1i S6:如果in1,返回执行S3;否则,打印“是素数”,算法结束,2 算法的概念,三、算法的表示,2、传统流程图表示法,传统流程图表示前例,2 算法的概念,三、算法的表示,3、算法的三种基本结构,Bohra和Jacopini提出了以下三种基本结构: 顺序结构、选择结构、循环结构 用这三种基本结构作为表示一个良好算法的基本单元。,顺序结构,选择结构,三种基本结构,当型(While型)循环,直到型(Until型)循环,三种基本结构,三种基本结构的共同特点:,2 算法的概念,三、算法的表示,3、算法的三种基本结构,(1)只有一个入口; (2)只有一个出口;(请注意:一个菱形判断框有两个出口,而一个选择结构只有一个出口。不要将菱形框的出口和选择结构的出口混淆。) (3)结构内的每一部分都有机会被执行到; (4)结构内不存在“死循环”(无终止的循环)。,2 算法的概念,三、算法的表示,3、NS结构化流程图,1973年美国学者I.Nassi和B.Shneiderman提出了一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在该框内还可以包含其它的从属于它的框,或者说,由一些基本的框组成一个大的框。这种流程图又称N-S结构化流程图 。,N-S流程图用以下的流程图符号:,(1)顺序结构,(2)选择结构,(3)直到型循环,(3)当型循环,N-S图表示算法的优点,比文字描述直观、形象、 易于理解;比传统流程图紧凑易画。尤其是它废除了流程线,整个算法结构是由各个基本结构按顺序组成的,N-S流程图中的上下顺序就是执行时的顺序。用N-S图表示的算法都是结构化的算法,因为它不可能出现流程无规律的跳转,而只能自上而下地顺序执行。,3 结构化程序设计,一个结构化程序 就是用高级语言表示的结构化算法。用三种基本结构组成的程序必然是结构化的程序,这种程序便于编写、便于阅读、便于修改和维护。 结构化程序设计强调程序设计风格和程序结构的规范化,提倡清晰的结构。 结构化程序设计方法的基本思路是:把一个复杂问题的求解过程 分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。,结构化程序设计方法,采取以下方法来保证得到结构化的程序: 自顶向下; 逐步细化; 模块化设计; 结构化编码。,两种不同的方法: 自顶向下,逐步细化; 自下而上,逐步积累。,自顶向下,逐步细化方法的优点: 考虑周全,结构清晰,层次分明,作者容易写,读者容易看。如果发现某一部分中有一段内容不妥,需要修改,只需找出该部分修改有关段落即可,与其它部分无关。我们提倡用这种方法设计程序。这就是用工程的方法设计程序。,模块设计的方法: 模块化设计的思想实际上是一种“分而治之”的思想,把一个大任务分为若干个子任务,每一个子任务就相对简单了。 在拿到一个程序模块以后,根据程序模块的功能将它划分为若干个子模块,如果这些子模块的规模还嫌大,还再可以划分为更小的模块。这个过程采用自顶向下方法来实现。 子模块一般不超过50行 划分子模块时应注意模块的独立性,即:使一个模块完成一项功能,耦合性愈少愈好。,4 C+语句,一、语句的概念,C+语句用来向计算机系统发出操作指令,它都是用来完成一定操作任务的。,二、C+语句的分类,声明语句 执行语句 空语句 复合语句,二、C+语句的分类,1、声明语句 对变量及其它对象的定义,可以出现在函数中的任何行,也可放在函数外 如:int a,b;,2、执行语句 通知计算机完成一定的操作 包括控制语句、函数和流调用语句、表达式语句,2、执行语句,(1) 控制语句 完成一定的控制功能,if ( ) else 条件 for ( ) 、while ( ) 、do while ( ) 循环 continue 、break 结束循环 switch 多分支选择语句 goto 跳转语句 return 从函数返回语句,二、C+语句的分类,2、执行语句,(2) 函数和流对象调用语句 由一次函数调用加一个分号构成一条语句 例 max(a,b); coutxendl; (3) 表达式语句 由一个表达式加一个分号构成一条语句,但构 成的语句应该有意义,最典型的为赋值语句 a=3 表达式 a=3; 赋值语句 i+1 表达式 i+1; 表达式语句 无实际意义,二、C+语句的分类,2、执行语句,3、空语句 只有一个分号的语句,什么也不做 主要用来完善程序的结构,有时用来做被转向点或循环语句中的循环体 4、复合语句 用 把一些语句括起来成为复合语句 例 P49,二、C+语句的分类,5 数据输出与输入,不论C语言还是C+,输入与输出都不是其语言中的正式组成部分,如需使用C中的输入输出函数或C+中的输入输出流,都必须用预处理命令将头文件包含到本文件中 如:#include #include ,一、输入流与输出流,1、一般格式: cout变量1变量2变量n;,说明(1)cout可分写成若干行,cout“This is a simple C+ program.“endl;,cout“This is“ “a C+“ “program.“ endl;,cout“This is“; cout “a C+“; cout “program. “; cout endl;,(2)不能用一个插入运算符“”插入多个输出项 (3)cout输出时系统会自动判别输出数据类型,使输出数据按相应类型输出 (4)cin也可以分成若干行,cinabcd;,cina b c d;,cina; cin b; cin c; cin d;,(5)cin输入时系统会根据变量的类型从输入流中提取相应长度的字节,char c1,c2; int a; float b;,cinc1c2ab; 输入:1234 56.78,用cin语句得不到空格和回车字符,2、输入输出流的控制符 P53 表3.1 如使用控制符,还需在程序开头加 #include ,一、输入流与输出流,例:输出双精度 输出整数 例3.1,二、getchar和putchar,1、字符格式输出函数 putchar( ),功能:向终端输出一个字符 形式:putchar(参数) 参数:可以为常量,也可以为变量,还可以是任意整型表达式,参数的值代表的是某字符对应的ASCII码值,也可输出转义字符 使用时需加头文件 #include 例 P55 例3.2,二、getchar和putchar,2、字符格式输入函数 getchar( ),功能:从终端输入一个字符 形式:getchar( ) 无参数,函数的值就是从输入设备得到的字符,得到的字符可以赋给一个字符变量或整型变量;也可以不赋给任何变量,作为表达式的一部分 使用时需加头文件 #include 例 P56 例3.3,三、scanf和printf,1、输出函数 printf( ) 功能:向终端输出若干个任意类型的数据,格式:printf(格式控制,输出表列) 输出表列:需要输出的数据,可以是表达式 格式控制:用双引号括起来的字符串(包括格式说明、普通字符) 格式说明:由“”和格式字符组成,将输出的数据转换为指定的格式输出 普通字符:需要原样输出的字符,三、scanf和printf,2、据输入函数 scanf( ) 功能:从输入设备向计算机输入任意类型的数据到相应的变量中,格式:scanf(格式

温馨提示

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

评论

0/150

提交评论