收藏 分享(赏)

第3章 程序的控制结构及结构化程序设计方法.ppt

上传人:scg750829 文档编号:8804941 上传时间:2019-07-12 格式:PPT 页数:82 大小:344.50KB
下载 相关 举报
第3章  程序的控制结构及结构化程序设计方法.ppt_第1页
第1页 / 共82页
第3章  程序的控制结构及结构化程序设计方法.ppt_第2页
第2页 / 共82页
第3章  程序的控制结构及结构化程序设计方法.ppt_第3页
第3页 / 共82页
第3章  程序的控制结构及结构化程序设计方法.ppt_第4页
第4页 / 共82页
第3章  程序的控制结构及结构化程序设计方法.ppt_第5页
第5页 / 共82页
点击查看更多>>
资源描述

1、3.1 算法与算法的表示方法 3.2 顺序结构程序设计 3.3 选择结构程序设计 3.4 循环结构程序设计,第三章 程序的控制结构与 结构化程序设计方法,3.1 算法与算法的表示方法,本章主要内容:1.了解算法的表示方法及其在程序设计中的重要地位.2.掌握 C 语言的基本控制结构和基本控制语句.3.掌握用 C 语言的基本控制语句进行顺序,选择和循环结构程序的设计.4.掌握一些常用的算法,如递推法,迭代法,穷举法等.5.了解结构化程序设计的基本思想,算法分类:数值运算算法:解决的是求数值解的问题。非数值运算算法:主要解决关于分析推理、逻辑推理等问题,如排序、查找等。,3.1.1 算法的概念,数据

2、结构 + 算法 = 程序 数据结构:对数据的描述和组织形式, 算法:对操作或行为的描述,即操作步骤。,算法为解决一个具体问题而采取的确定的有限的操作步骤。,2、控制结构:操作序列的顺序控制。三种基本控制结构,即:顺序结构、选择结构、循环结构。,3.1.1 算法的概念,算法的组成要素:,1、操作:各种运算。如:算术运算、逻辑运算、关系运算等。,算法的特性:1、有穷性:在有限的时间内,操作步骤能够终止。2、确定性:每一步操作的含义必须明确。3、有效性:每一步都应当能有效地进行并得到确定的结果。4、有0个或多个输入。5、有1个或多个输出。,3.1.1 算法的概念,例1:求12345。,算法一: S1

3、:求12 ,得2; S2:将S1得的2再乘3,得6; S3:将S2得的6再乘4,得24; S4:将24再乘5,得120,结果。,算法二: S1:p=1 S2:i=2 S3:p =pi S4:i=i+1 S5:若i5,返回S3,否则结束,得出结果 p为5!。,比较两个算法: 算法一:繁琐,数目大时步骤太多。 算法二:利用循环算法,借助两个变量,可求任意数的阶乘,提高通用性。,3.1.2 简单算法举例,3.1.2 简单算法举例,例2: 求1+2+3+4+100,算法: S1:n=1 S2:s=0 S3:s=s+n S4:n=n+1 S5:若n 100,返回到S3,否则结束。,1+3+5+7+99

4、2+4+6+8+100,思考:,S1:n=1 S2:s=0 S3:s=s+n S4:n=n+2 S5:若n 100,返回到S3,否则结束。,S1:n=2 S2:s=0 S3:s=s+n S4:n=n+2 S5:若n 100,返回到S3,否则结束。,算法: S1:sign=1 S2:n=2 S3:s=1 S4:sign=(-1) sign S5:s=s+sign n S6:n=n+1 S7:若n 100,返回到S4,否则结束。,例3: 求1-2+3-4-100,3.1.2 简单算法举例,二、流程图表示,一、自然语言表示,3.1.3 算法的表示方法,例1中求5!的算法用流程图表示:,算法: S1:

5、p=1 S2:i=2 S3:p i p S4:i+1 i S5:若i 5,返回S3,否则 结束,得出结果 p为5!。,3.1.3 算法的表示方法,优点:既形象直观,又节省篇幅,基本结构及算法的表示均在 一个矩形框内,尤其适于表示结构化程序的设计。,三、N-S结构化流程图,取消改进流程图中的流程线,这种算法被迫只能从上到下顺 序执行,从而避免了算法流程的任意转向,保证了程序的质量。,所谓结构化程序设计就是由基本结构顺序组成的,基本结构之间无跳转。,3.1.3 算法的表示方法,例1中求5!用N-S图表示:,main( ) int i,p;p=1;i=2;dop=p*i;i=i+1;while(i5

6、)printf(“%d”,p); ,3.1.3 算法的表示方法,伪码是指介于自然语言和计算机语言之间的一种代码, 是帮助程序员制定算法的智能化语言,它不能在计算机上 运行,但是使用起来比较灵活,无固定格式和规范,只要 写出来自己或别人能看懂即可,而且比较容易转换为计算 机程序。,3.1.3 算法的表示方法,四、伪代码表示:,3.1.3 算法的表示方法,input nif n0 print “input error!” goto endelsefac=1i=1loop: fac=fac*ii=i+1if i=n goto loopprint facend,例:用伪码表示的计算n!的算法,返回,为

7、了使流程图便于理解和阅读,限制无规律的任意转向,结构化程序设计规定了三种基本结构,即:顺序结构、选择结构、循环结构。然后由这些基本结构按一定规律组成一个算法结构,整个算法的结构由上而下地将各个基本结构顺序排列起来的。,三种基本结构:,三种基本结构的特点: (1)只有一个入口 (2)只有一个出口 (3)结构内的每一部分都有机会被执行 (4)结构内不存在“死循环”,3.2 顺序结构程序设计,3.2 顺序结构程序设计,顺序结构是最简单的C语言程序结构,也是C语言程序中最常用的程序结构,主要由表达式语句组成。,特点:完全按照语句出现的先后顺序执行程序。,一、顺序结构概念:,二、顺序结构流程图表示:,3

8、.2 顺序结构程序设计,三、应用举例:,例3.1:假设银行定期存款的年利率r为2.25%,存款期为n年,存款本金为m元,求n年后可得到的本利之和。,3.2 顺序结构程序设计,3.2 顺序结构程序设计,程序清单:,printf(“Please enter n,m:”);,运行结果:Please enter n,m:1,500 Total=511.250000,main( ) ,int m,n; float r=0.0225,total;,scanf(“%d,%d”,total=m*pow(1+r,n);,printf(“Total=%fn”,total);,#include ,注:编译预处理命令

9、不是C语句,每条指令单独占一行,同一行不能有其它的编译指令或C语句。,3.2 顺序结构程序设计,C程序结构框架:,以#开始的编译预处理命令行,main( ) ,局部变量说明语句;,执行语句序列;,包含头文件的方式:#include #include “文件名”,3.2 顺序结构程序设计,例3.2:任意从键盘输入一个三位整数,要求正确分离出它的个位、十位、百位数,分别在屏幕上输出。,算法:,Step 1:输入一个三位整数x;,Step 2:计算最高位b2=x100;,Step 4:计算最低位b0=x%10 或 b0=xb2100b110;,Step 3:计算中间位b1=(xb2100) 10 或

10、 b1=(x10)%10;,Step 5:输出分离结果;,程序见eg3_2,3.2 顺序结构程序设计,3.2 顺序结构程序设计,算法:,Step 4:输出x1和x2;,Step 1:输入a,b,c;,Step 3:由于以假设判别式0,所以可直接按求根公式计算两个实根x1和x2;,程序见eg3_3,返回,选择结构的应用场合,当需要根据不同的判断条件执行不同的操作时。,若输入的三角形三边能构成一个三角形,则计算三角形面积,计算分段函数的值,3.3 选择结构程序设计,选择结构的流程图表示,3.3 选择结构程序设计,选择结构种类 单分支的选择结构 双分支的选择结构 多分支的选择结构嵌套的if语句或sw

11、itch语句,3.3 选择结构程序设计,if else 形式if(表达式)语句1else 语句2适合于解决双分支选择问题,条件语句,if 形式if(表达式) 语句A适合于解决单分支选择问题,3.3 选择结构程序设计,elseif 形式if(表达式1) 语句1else if(表达式2) 语句2else if(表达式m) 语句melse 语句m+1适合于解决多分支选择问题,3.3 选择结构程序设计,例3.4从键盘输入你和你朋友的年龄,编程判断谁的年龄最大,并打印他的年龄。,N-S流程图:,程序见eg3_4_1,算法1: 用不带else子句的if语句编程。,3.3 选择结构程序设计,算法2: 用带有

12、else子句的if语句编程。,N-S流程图:,程序见eg3_4_2,3.3 选择结构程序设计,算法3: 用条件表达式实现。,条件表达式: 表达式1 ? 表达式2 : 表达式3,N-S流程图:,程序见eg3_4_3,3.3 选择结构程序设计,例3.5体型判断。判断某人是否属于肥胖,可根据身高与体重等因素来判断,按照“体指数”对肥胖程度进行划分:体指数t = 体重w /(身高h )(其中,w单位为kg,h单位为m)当 t27 时,为肥胖。,2,3.3 选择结构程序设计,算法1:用不带else子句的if语句编程。,N-S流程图:,程序见eg3_5_1,算法2:用在if子句中嵌入if语句的形式编程。,

13、程序见eg3_5_2,3.3 选择结构程序设计,算法3:用在else子句中嵌入if语句的形式编程。,程序见eg3_5_3,N-S流程图:,3.3 选择结构程序设计,使用if-else语句应注意的事项,当需要多条语句时必须用复合语句,即把要执行的多条语句用一对大括号括起来。 if子句中内嵌if语句时,else子句总是与它前面最近的且没有配对的if相结合,而与书写的缩进格式无关。为避免错误,有两个办法:1、if子句中内嵌的 if 语句用一对大括号括起来;2、尽量采用在 else 子句中内嵌 if 语句的形式编程。,3.3 选择结构程序设计,例3.6编程计算一元二次方程ax+bx+c=0的根,a,b

14、,c由键盘输入,其中,a!=0。,算法(用自然语言描述),Step1:输入系数 a,b,c;,Step4:若a=0,则输出“不是二次方程”;,Step5:若disc0,则计算并输出两个不相等的实根:x1=p+q,x2=p-q;,Step6:若disc=0,则计算并输出两个相等的实根: x1=x2=p;,Step7:若disc0,则计算并输出两个共轭复根:x1=p+qi,x2=p-qi;,3.3 选择结构程序设计,程序见eg3_6,2,例3.7编程设计一个简单的猜数游戏:先由计算机“想”一个数请人猜,如果人猜对了则计算机给出提示“right”,否则提示“wrong”,并告诉人所猜的数是大还是小。

15、,算法:Step1:通过调用随机函数任意“想”一个数magic;Step2:输入人猜的数guess;Step3:如果guessmagic,则给出提示:“Wrong!Too high!”Step4:如果guessmagic,则给出提示:“Wrong!Too low!”Step5:如果guess=magic,则给出提示:“Right!”,并打印这个数。,3.3 选择结构程序设计,程序见eg3_7,开关语句switch当对问题需要分析的情况较多时(一般大于三种),常使用开关语句代替条件语句来简化程序的设计。常用于各种分类统计、菜单等程序的设计。,switch语句的一般形式switch(表达式)cas

16、e 常量1:语句序列1case 常量2:语句序列2case 常量n:语句序列ndefault: 语句序列n+1,3.3 选择结构程序设计,关于使用switch语句时的几点说明1. switch后括号内的表达式的值一般为整型、字符型或枚举型,而且,每个case后的“常量表达式”的类型应该与switch后括号内表达式的类型一致。2. 若case后面的语句省略不写,则表示它与后续case执行相同的语句。3. 程序执行到switch语句时,先计算表达式的值,然后自上而下寻找与该值相匹配的case常量,找到后则按顺序执行此case后的所有语句,包括后续case,而不再进行判断,直到遇break语句或右花

17、括号为止。因此,只有switch语句和break语句配合使用才能形成真正意义上的多分支,即执行完某一分支后一般要用break语句跳出switch结构。,3.3 选择结构程序设计,4. 若没有任何一个case常量与表达式的值相匹配,则执行default后面的语句序列n+1,有时,default及其后的语句序列n+1也可以省略。 5. 由于每个case后的常量只起到语句标号的作用,所以,case后常量的值必须互不相同,否则会出现互相矛盾的现象。 6. 每个case后的常量出现的次序发生改变时,不影响程序的运行结果,一般将发生频率较高的情况放在前面。,3.3 选择结构程序设计,例3. 8根据输入的百

18、分制成绩score,转换成相应的五分制成绩grade并打印输出。转换标准为:,3.3 选择结构程序设计,方法一:用嵌套的if语句编写程序,main() ,int score;,printf(“please enter score:”);,scanf(“%d”,if(score 100),printf(“input error.”);,else if(score=90),printf(“%dAn”,score);,else if(score=80),printf(“%dBn”,score);,else if(score=70),printf(“%dCn”,score);,else if(scor

19、e=60),else,printf(“%dDn”,score);,printf(“%dEn”,score);,3.3 选择结构程序设计,方法二:用switch语句编写程序,main() ,int score, mark;,printf(“please enter score:”);,scanf(“%d”,if(score 100),printf(“input error.”);,else ,mark=score/10;,switch( mark ) ,case 10:,case 9:,case 8:,case 7:,case 6:,case 5:,case 4:,case 3:,case 2:

20、,case 1:,case 0:,printf(“%dEn”,score); break;,printf(“%dAn”,score); break;,printf(“%dBn”,score); break;,printf(“%dCn”,score); break;,printf(“%dDn”,score); break;,3.3 选择结构程序设计,例3.9编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式: 操作数1 运算符 操作数2来计算表达式的值,指定的运算符为:加( + )、减( - )、乘( * )、除( / )。,程序见eg3_9,返回,3.3 选择结构程序设计,3.4 循

21、环结构程序设计,循环结构的应用场合用于需要重复执行的操作步骤和相应算法。,计算: 1+2+3+n,计算: n! = 123n,以二维表形式打印乘法九九表,循环结构的流程图表示,直到型循环结构,当型循环结构,3.4 循环结构程序设计,循环语句循环语句在给定条件成立的情况下,重复执行某个程序段。,当循环体是空语句(只有一个分号)时,表示在循环体中什么也不做。,重复执行的程序段称为循环体,循环体可以是单个C语句、空语句或复合语句。,三种循环语句while 语句、do-while 语句、for 语句,3.4 循环结构程序设计,while 语句 (用来实现当型循环)一般形式为:while(表达式)循环体

22、语句,do-while 语句 (用来实现直到型循环)一般形式为:do循环体语句 while(表达式);,3.4 循环结构程序设计,for 语句 (用来实现当型循环结构)一般形式为:for(表达式1;表达式2;表达式3)循环体语句,其中:1) 表达式1 的作用是初始化循环控制变量,即为循环控制变量赋初值;2) 表达式2 的作用是给出循环重复执行的判断条件,这个条件用于决定什么时候结束循环的执行;3) 表达式3 的作用是使循环控制变量发生变化,即通过循环变量的变化使表达式2的条件趋于不成立。,3.4 循环结构程序设计,注意,for语句与while语句都用于实现当型循环结构,二者是完全等价的,与fo

23、r 语句等价的while语句形式为:表达式1;while(表达式2) 循环体语句表达式3 ;,当需要使多个变量的值发生变化时,表达式3 也可以用逗号表达式。例:for (i=1,j=100;i=j;i+,j-) sum=sum+i+j;,当需要为多个变量赋初值时,表达式1 可以用逗号表达式顺序地执行为多个变量赋初值的操作。,三个表达式可以是任何合法的C语言表达式。,表达式中的任何一个都可以省略不写,但分号不能省略不写。,三个表达式之间用分号隔开。,3.4 循环结构程序设计,单重循环问题应用举例单重循环问题常用于解决累加求和、累乘求积、统计求和这类问题。 循环次数已知 (一般用for语句实现)

24、循环次数未知 (一般用while语句或do-while语句实现),例3.10:将3.7的猜数游戏改为:先由计算机“想”一个1到100之间的数请人猜,如果人猜对了,则游戏结束,否则计算机给出提示,告诉人所猜的数是大还是小,直到人猜对为止。计算机记录人猜的次数,以此来反映猜数者“猜”的水平。,3.4 循环结构程序设计,算法设计如下:1. 通过调用随机函数任意“想”一个数magic;2. 将记录人猜次数的计数器变量count初始化为0;3. 输入人猜的数guess;4. 计数器变量count加1;5. 如果人猜的数guess大于计算机想的数magic,则给出“错误,太大!”的提示信息;如果人猜的数g

25、uess小于计算机想的数magic,则给出“错误,太小!”的提示信息;6. 如果人猜的数guess不等于计算机想的数magic,则重 复执行步骤3到步骤5,直到guess等于magic为止,给出“正确” 的提示信息后转去执行步骤7;7. 打印人猜的次数count。,3.4 循环结构程序设计,程序见eg3_10,例3.11计算n!=123n,程序见eg3_11_1,用while语句实现:,用do-while语句实现:,程序见eg3_11_2,用for语句实现:,程序见eg3_11_3,3.4 循环结构程序设计,例3.12国王的允诺。,算法1用for语句实现:,程序见eg3_12_1,算法2用fo

26、r语句实现:,程序见eg3_12_2,3.4 循环结构程序设计,用do-while语句实现:,程序见eg3_13_1,用for语句实现:,程序见eg3_13_3,3.4 循环结构程序设计,例3.14从键盘输入一个班学生(人数不确定)一门课的五分制成绩,统计并打印每种成绩的人数。,问题分析采用符号#作为输入结束标志,并用switch语句对成绩进行分类处理。,程序见eg3_14_e,用while语句实现:,3.4 循环结构程序设计,改进程序:,程序见eg3_14,3.4 循环结构程序设计,例3.15水手分椰子。五个水手在一个岛上发现一堆椰子,现由 第一个水手把椰子分为等量的5堆,剩下的1个给猴子,

27、并自 己藏起一堆,然后第二个水手把剩下的4堆混合后重新分为等 量的5堆,剩下的1个给猴子,自己藏起一堆。以后第三个、 第四个水手依次同样处理。最后,第五个水手把剩下的椰子 分为等量的5堆后,同样剩下1个椰子给猴子,问原来这堆椰 子至少有多少个?,程序见eg3_15,嵌套循环及其应用举例 嵌套循环:将一个循环语句用于另一个循环语句的循环体。 常用于:矩阵运算、报表打印等问题。 注意事项:1、在嵌套的各层循环体中,使用复合语句(即用一对大括号将循环体语句括起来)保证逻辑上的正确性。2、内层和外层循环控制变量不应重名,以免造成混乱。3、嵌套的循环最好采用右缩进格式书写,以保证层次的清晰。4、嵌套循环

28、不能交叉,即在一个循环体内必须完整地包含着另一个循环。,3.4 循环结构程序设计,例3.16编程输出如下形式的乘法九九表。1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 274 8 12 16 20 24 28 32 365 10 15 20 25 30 35 40 456 12 18 24 30 36 42 48 547 14 21 28 35 42 49 56 638 16 24 32 40 48 56 64 729 18 27 36 45 54 63 72 81,3.4 循环结构程

29、序设计,N-S图,3.4 循环结构程序设计,程序见eg3_16,例3.17将上例输出格式改写为如下的下三角格式打印。,1 2 3 4 5 6 7 8 9 - - - - - - - - - 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81,程序见eg3_17,3.4 循环结构程序设计,介绍两种典型的算法迭代法和穷举法一、迭代法:是一个不断用新值取代变量旧值或由旧值递推出变量新值的过程。用循环结构实现迭代

30、,重复操作的内容是不断从一个变量的旧值出发计算它的新值。迭代与下列因素有关: 初值;迭代公式;迭代次数:精度,3.4 循环结构程序设计,迭代法举例典型问题:(1)求两个数据的最大公约数;(2)Fibonacci数列;(3)一元方程的迭代解法:二分法,3.4 循环结构程序设计,main() int u,v,r,w;scanf (“%d %d“, ,例1: 求两个数u,v的最大公约数。算法:辗转相除法。,3.4 循环结构程序设计,算法:迭代。f1=1,f2=1f3=f1+f2,f4=f2+f3, fn=fn-1+fn-2,例2: 求Fibonacci数列:1,1,2,3,5的前20个数。数列中从第

31、三项开始,每项为其前两项之和。,3.4 循环结构程序设计,程序见Fibonacci.c,例3: 用二分法求一元二次方程 2x3-4x2+3x-6=0 在(-10,10)之间的根。,3.4 循环结构程序设计,算法:采用用迭代x0 = (x1+x2)/2若f(x1)与f(x0)同号:x1=x0若f(x2)与f(x0)同号:x2=x0,程序见half_separate.c,二、穷举法:是一种重复性算法,其基本思想是对问题所有可能状态一一测试,直到找到解决或全部状态测试完成为止。,两种控制方法: (1)计数法:用循环变量控制循环次数,完成指定次数,循环结束。 (2)标志法:次数不定,达到某一目标(标志

32、),循环结束。如:遇到某个值、n、EOF等。,3.4 循环结构程序设计,常见问题:1、不定方程求解问题:如百钱买百鸡,鸡免同笼等;2、打印图形;,例1: 百钱买百鸡问题。问题:100钱买100只鸡(包括公鸡、母鸡和小鸡),公鸡1只5钱,母鸡1只3钱,小鸡1只三分之一钱,求公鸡、母鸡和小鸡的个数。,3.4 循环结构程序设计,算法:,程序见 cocks.c,3.4 循环结构程序设计,例2:打印图形:*,程序见triangle.c,3.4 循环结构程序设计,3.4 循环结构程序设计,3.4 循环结构程序设计,3、continue语句continue;(结束本次循环,进行下一次循环),break; (

33、跳出switch或跳出本次循环体),3.4 循环结构程序设计,使用break语句和continue语句时注意: 由 if 和 goto 语句构成的循环,不能用 break 和 continue 语句进行流程控制。 在嵌套循环的情况下,break 语句和 continue 语句只对包含它们的最内层的循环语句起作用。,3.4 循环结构程序设计,break语句和continue语句的用法举例,例:break.c,例: contiue.c,3.4 循环结构程序设计,例3.19任意从键盘输入一个正整数,编程判断它是否是素数,若是素数,输出“Yes!”,否则输出“No!”。,算法: Step 1:从键盘输

34、入一个正整数。 Step 2:计算k= ; Step 3:i 从2变化到 k ,依次检查 m%i 是否为0; Step 4:若 m%i 为0,则判定 m 不是素数,并终止对其余i值的检验,否则,令i=i+1;并继续对其余i值进行检验,直到全部检验完毕为止,这时判定m是素数。,3.4 循环结构程序设计,eg3_19_1,方法1:用goto语句实现。,eg3_19_2,eg3_19_3,方法2:用break语句实现。,方法3:采用设置变量并加强循环测试的方法。,3.4 循环结构程序设计,例3.20在上例的基础上,若m不是素数,则打印其所有因子,否则,打印“没有因子,是素数”的提示信息。,程序见eg

35、3_20,返回,3.4 循环结构程序设计,3.5 结构化程序设计简介,结构化程序设计(简称SP)的概念是由荷兰学者提出的。 现在人们已经认识到程序设计的任务不只是编写出一个能得到正确结果的程序,还应考虑程序的质量。否则将会使程序质量低下、可靠性差、开发周期长、维护费用高这就是我们常说的“软件危机”,它严重地阻碍了计算机应用的发展。结构化程序设计思想:1、采用顺序结构、选择结构和循环结构作为程序设计的基本单元,尽量避免使用goto语句。2、三种基本结构应具有如下的特性:1)只有一个入口。2)只有一个出口。3)无死语句,即不存在永远都执行不到的语句。4)无死循环。5)程序设计采用“至顶向下、逐步求

36、精”和模块化的方法,3.5 结构化程序设计简介,3、设计方法1)自顶向下2)逐步细化3)模块化设计4)结构化编码例:“鸡兔同笼”问题。 已知:鸡兔的总头数为H,鸡兔总脚数为F,求:鸡、兔各多少只?1)确定数学模型: 设鸡为X只,兔为Y只,据已知条件列方程:2X+4Y=FX+Y=H2)采用“自顶向下,逐步细化”的方法:第一步:输入鸡、兔总头数H和总脚数F;第二步:求鸡、兔的个数;第三步:输出鸡、兔的个数。,降低系统的复杂性、容易修改; 使系统各部分并行开发,提高效率,解方程得: X=(4H-F)/2Y=(F-2H)/2,3.5 结构化程序设计简介,流程图表示:,4、归纳总结采用结构化程序设计方法

37、就是对于一个复杂的问题,首先有一个总体的考虑方案,然后按功能逐步细化分解,这就形成了模块。每个模块若仍很复杂,继续细化,直到子模块的功能独立(只完成一个功能),即可停止细化。细化的过程是使问题更为具体的过程,最后的模块应具有较高的独立性和较低的耦合性,是构成整个系统的最基本的部分,该部分要采用结构化编码。,3.5 结构化程序设计简介,程序中常见的错误:1、编译错误:即在编译过程中发现的错误,通常属于语法错误。例如:1)Undefined symbol xxx;标识符未定义2)xxx statement missing; 语句缺少分号3)Expression synatx error; 表达式语法错误4)Redeclaration of xxx; 标识符被重定义5)No declaration for function xxx; 函数缺少原型2、运行错误:即在运行过程中发生的错误,通常属于语义错误。例如:除0的操作。3、逻辑错误:编译、运行都能成功,但结果错误。例如:1)累加求和运算时,累加和变量没有赋初值0;2)累乘求积运算时,累乘积变量没有赋初值1;3)比较运算时,关系运算符“=”误写成“=”;4)printf和scanf函数中的数据与说明符没有一一对应;5)数组下标越界。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报