资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第第3 3章章 顺序结构程序设计顺序结构程序设计3.1 程序的3种基本控制结构3.2 顺序执行语句3.3 格式化输出函数 printf()3.4 格式化输入函数 scanf()3.5 单个字符的输入/输出函数3.6 小结3.7 练习、作业及实验算法的三种基本结构算法的三种基本结构和和SP(SP(结构化程序设计程序)的三种基本结构结构化程序设计程序)的三种基本结构程序=数据+算法一、程序设计的过程一、程序设计的过程 程序设计的基本步骤包括:1、对问题进行说明(明确要解决的问题和所设计程序的功能);2、分解问题(功能模块划分);3、编制各模块(对各模块分别设计算法并编写程序);4、测试并完善各模块(做一步测试一步,在前一步测试通过的前提下,再做下一步);5、组装全部模块;6、整体测试。一、程序设计的过程一、程序设计的过程 也可以表示如下:1、拿到任务后明确目标;2、设计算法(设计好一步一步怎么做);3、根据算法用语言编程实现;4、测试、调试直得到正确结果。一、程序设计的过程一、程序设计的过程 设计算法编写程序二、算法的描述二、算法的描述 算法:解决问题的方法和思路,及正确的求解步骤,它是计算机编程解决问题的前提和关键。 算法描述可以用:自然语言、伪程序语言或程序流程图(传统流程图)N-S盒图(结构化流程图)等。 用自然语言描述比较自然,但容易产生歧义,在严谨的计算机程序设计文档中一般使用程序流程图/N-S盒图来表示。二、算法的描述(自然语言)二、算法的描述(自然语言) 1、自然语言描述:用自然语言把问题的求解步骤表示出来。 举例1:用自然语言表示输入圆的半径,计算并输出圆的面积的算法。1、输入半径r;2、根据圆的面积公式计算:S=pr23、输出结果S。 2、程序流程图:一组专门规定的符号来描述算法(ANSI)。1、开始、结束框:2、数据输入/输出框:3、判断框:逻辑表达式的真假写在流线上4、数据处理(过程)框:5、流程线:连接以上框图,指出执行顺序三、算法的描述(程序流程图)三、算法的描述(程序流程图)输入/输出数据信息逻辑表达式 传统的流程图用流程线指出各框的执行顺序,并且对流程线的使用没有严格限制。使用者可以毫不受限制地使流程随意地转来转去,使流程图变得毫无规律,阅读者要花很大精力去追踪流程,使人难以理解算法的逻辑,从而使算法的可读性、可靠性和可维护性差。 非结构化的流程 “意大利面条”如何使写出的算法能限制这种无规律的流程的随意转向呢?三、算法的描述三、算法的描述 为了提高算法的质量,使算法的设计和阅读方便,就限制流程线的随意转向,不允许无规律地使用流程随意转向,只能顺序地走下去。 人们设想,可以用几种基本的算法结构顺序组成一个结构化的算法。 三种基本算法结构作为良好算法的基本单元:三、三种基本的算法结构三、三种基本的算法结构ABabABabp成立成立不成立不成立Aabp成立成立 为了提高算法的质量,使算法的设计和阅读方便,就限制流程线的随意转向,不允许无规律地使用流程随意转向,只能顺序地走下去。 人们设想,可以用几种基本的算法结构顺序组成一个结构化的算法。 三种基本算法结构作为良好算法的基本单元:三、三种基本的算法结构三、三种基本的算法结构Aabp成立成立不成立不成立Aabp成立成立不成立不成立 为了提高算法的质量,使算法的设计和阅读方便,就限制流程线的随意转向,不允许无规律地使用流程随意转向,只能顺序地走下去。 人们设想,可以用几种基本的算法结构顺序组成一个结构化的算法。 三种基本算法结构作为良好算法的基本单元:N-SN-S盒图盒图三、三种基本的算法结构三、三种基本的算法结构ABPY nAB当p成立AA直到p成立 举例2:用程序流程图描述已知圆的半径,求圆的面积算法。顺序结构程序代码三、算法的描述(求圆的面积三、算法的描述(求圆的面积2 2)开始开始输入输入r计算面积计算面积S输出面积输出面积S结束结束 举例3:用程序流程图表示如下二次方程求实根算法,ax2+bx+c=0。条件分支结构 程序代码三、算法的描述(解方程)三、算法的描述(解方程)开始输入a,b,c计算=b2-4ac结束0?错误,无实根输出解xYN举例4:五级记分制需要按:优(95,100)、良(85-94)、中(75,84)、及格(74,60)、不及格(0,60))分等级,请将输入的分数转换成相应的等级。多分支结构程序代码三、算法的描述(成绩评定)三、算法的描述(成绩评定)开始输入分数结束分数95YN成绩=优分数85Y成绩=良N分数75Y成绩=中N分数60Y成绩=不及格成绩=及格N 3、循环结构:求1,2,3,100的累加和。程序代码循环结构)循环结构)开始开始和和nSum=0记数记数nCount=1输出累加和输出累加和结束结束nCount=100NYnSum=nSum+nCount课外作业课外作业请在网上搜索程序员的定义及相关内容。写程序的人,一种职业,一种追求结构化程序设计概念结构化程序设计概念结构化程序设计结构化程序设计(structured programming)是进行以模块功能和处理过程设计为主的详细设计的基本原则。其概念最早由E.W.Dijikstra在1965年提出的。是软件发展的一个重要的里程碑,它的主要观点是采采用用自自顶顶向向下下、逐逐步步求求精精的的程程序序设设计计方方法法;使使用用三三种种基基本本控控制制结结构构构构造造程程序序,任任何何程程序序都都可可由由顺顺序序、选择、重复三种基本控制结构顺序地构造选择、重复三种基本控制结构顺序地构造 。 详细描述处理过程常用三种工具:图形、表格和语言。 图形:程序流程图、N-S图、PAD图表格:判定表 语言:过程设计语言(PDL) 结构化程序设计概念结构化程序设计概念中文名:中文名:艾兹格艾兹格迪科斯彻迪科斯彻外文名:外文名:Edsger Wybe Dijkstra国籍:国籍:荷兰荷兰出生地:出生地:荷兰荷兰鹿特丹鹿特丹(Rotterdam)出生日期:出生日期:1930年年5月月11日日逝世日期:逝世日期:2002年年8月月6日日结构化程序设计的要点结构化程序设计的要点结构化程序设计曾被称为软件发展中的第三个里程碑。该方法的要点是: (1) 没有GOTO语句;/在有资料里面说可以用,但要谨慎严格控制GOTO语句,仅在下列情形才可使用: 用一个非结构化的程序设计语言去实现一个结构化的构造。 在某种可以改善而不是损害程序可读性的情况下。 (2) 一个入口,一个出口; (3) 自顶向下、逐步求精的分解; (4) 主程序员组。 其中(1)、(2)是解决程序结构规范化问题;(3)是解决将大划小,将难化简的求解方法问题;(4)是解决软件开发的人员组织结构问题。 结构化程序设计原则和方法的应用结构化程序设计原则和方法的应用在结构化程序设计的具体实施中,要注意把握如下要素: 1. 使用程序设计语言中的顺序、选择、循环等有限的控制结构表示程序的控制逻辑; 2. 选用的控制结构只准有一个入口和一个出口; 3. 程序语句组成容易识别的块,每块只有一个入口和一个出口; 4. 复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现; 5. 语言中没有的控制结构,应该采用前后一致的方法来模拟; 6. 严格控制 GOTO语句的使用。其意思是指: ( 1 )用一个非结构化的程序设计语言去实现一个结构化的构造; ( 2 )若不使用 GOTO 语句会使功能模糊; ( 3 )在某种可以改善而不是损害程序可读性的情况下。C C语言程序中的基本单位语言程序中的基本单位语句语句C语言源程序是语句的序列,语句是C语言源程序的基本单位。C语言中的语句有如下几类:1、流程控制语句2、表达式语句:3、函数调用语句:4、空语句: ;5、复合语句:。 结构化程序设计:不使用直接跳转语句(GOTO),每个程序段只有一个入口和出口,并且只使用顺序结构、条件分支结构、循环结构及子程序等来构成整个程序。 1、顺序结构:语句序列一条一条地顺序执行。2、条件分支结构:根据条件的不同而执行不同的语句序列3、循环结构:语句序列重复执行。可以再加上子程序(模块):可完成某一独立功能,且要被重复多处利用的。四、程序的结构四、程序的结构课外作业课外作业请在网上搜索程序员的定义及相关内容。写程序的人,一种职业,一种追求输入输入: :scanf()scanf()输入输入输入输入format 格式串的组成type输入输入format 格式串的组成type输入输入format 格式串的组成flag输入输入format 格式串的组成width 和precision输入输入format 格式串的组成modifier输入输入getchar()/getch()getchar()/getch()单字符的输入宏输入输入getchar()/getch()getchar()/getch()单字符的输入函数输入输入getchar()/getch()getchar()/getch()单字符的输入函数输入输入gets()/fgets()gets()/fgets()字符串输入输入输入gets()/fgets()gets()/fgets()字符串输入输入输入cgets()cgets()字符串输入输出输出printf()printf()输出输出fprintf()fprintf()输出输出putchar()/putchputchar()/putch输出输出putchar()/putchputchar()/putch输出输出putchar()/putchputchar()/putch输出输出puts()/fputsputs()/fputs输出输出puts()/fputsputs()/fputs3.6 3.6 小结小结1、程序折3种基本控制结构为顺序结构、选择结构和循环结构,只用这3种控制结构就能够编写所有的程序。2、C语言的语句包括:表达式语句、函数调用语句、复合语句和空语句及流程控制语句。3、printf()函数的一般格式如下:printf(“格式字符串“, 输出项表);其中,“格式字符串”也称为格式控制字符串或格式转换字符串,可以包含格式指示符、转义符和普通字符等。“输出项表”由若干个输出项构成,输出项之间用逗号来分隔,每个输出项可以是常量、变量或表达式。3.6 3.6 小结(小结(2 2)4、scanf()函数一般格式scanf(“格式字符串“, 输入项地址表);其中,“格式字符串”可以包含3种类型的字符:格式指示符、空白字符(空格、跳格键、回车键)和非空白字符/普通字符。输入项地址表,由若干个输入项地址组成,变量地址的表示方法为: &变量名。5、putchar()、getchar()6、gets()、puts()/ fgets()、fputs()3.7 3.7 练习、作业及实验练习、作业及实验(1 1)一、练习书后练习二、作业0、简述结构化程序设计的概念。1、程序的语句的分类。2、C语言输入/输出的实现及常用的方法。 3、编写算法求ax2+bx+c=0的解。 4、输入两个整数a,b,求它们的最大公约数和最小公倍数。3.7 3.7 练习、作业及实验练习、作业及实验(2 2)三、实验1、目的:(1)了解结构化程序设计的方法原则及常用的三种结构;(2)掌握顺序程序设计的方法;(3)掌握常用的输入/输出printf()、scanf()、gets()、puts()、getchar()、putchar()的用法。2、任务:(1)第三章中例程:Exam1_1.C、 Exam1_2.C Exam1_3.C,练习中的程序。(2)P50页编写程序题。(3)设计实验测试printf()、scanf()两个函数的返回值。要求:实验课前必须先写出自己的算法并以适当方式描述出来,实验课前必须先写出自己的算法并以适当方式描述出来,然后翻译成然后翻译成C C语言源程序,上机时直接调试。语言源程序,上机时直接调试。
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号