第4章 结构化程序设计
第四章结构化程序设计
第四章结构化程序设计在计算机编程的领域中,结构化程序设计是一种重要的编程方法和理念。
它就像是为程序搭建起了一个清晰、有序的框架,使得程序更易于理解、维护和扩展。
那么,什么是结构化程序设计呢?简单来说,它是一种编程风格,强调程序的逻辑结构应该清晰、简单、模块化。
通过将复杂的问题分解成一个个较小的、易于管理的模块或函数,每个模块专注于完成一个特定的任务,从而使整个程序的逻辑更加清晰明了。
结构化程序设计的核心原则包括:自顶向下、逐步细化、模块化和结构化。
自顶向下的设计方法意味着我们首先从整体上考虑程序的功能和目标,然后逐步将其分解为更小的子问题。
就好像我们要盖一座房子,首先要规划整体的布局和风格,然后再考虑每个房间的具体设计。
逐步细化则是在自顶向下的基础上,对每个子问题进行更详细的分析和设计。
以盖房子为例,在确定了房间的布局后,我们会进一步考虑每个房间的装修细节、家具摆放等。
模块化是将程序划分为独立的模块,每个模块具有特定的功能。
这些模块可以被重复使用,就像我们可以在不同的房子中使用相同的门窗设计一样。
结构化则是通过使用顺序、选择和循环这三种基本的控制结构来组织程序的流程。
顺序结构是最简单的,按照语句出现的先后顺序依次执行。
比如说,我们先起床,然后刷牙洗脸,这就是一个顺序的过程。
选择结构则根据条件来决定执行不同的分支。
比如,如果天气好,我们就出门散步;如果天气不好,就留在家里看书。
循环结构用于重复执行一段代码,直到满足特定的条件为止。
像是我们每天都要吃饭,直到生命的结束,这就是一个循环的过程(当然,这个例子只是为了帮助理解)。
结构化程序设计带来了许多好处。
首先,它提高了程序的可读性。
清晰的结构和模块化的设计使得其他人更容易理解程序的逻辑和功能。
这对于团队合作开发项目非常重要,因为一个易于理解的程序可以减少沟通成本和错误。
其次,它增强了程序的可维护性。
当需要对程序进行修改或扩展时,我们可以很容易地找到相关的模块进行修改,而不会影响到其他不相关的部分。
C语言程序设计第4章
4.2.2 逻辑表达式
例:设a=3,b=4,x=0,y=0,求值: 结果:0 1、a < b && x > y 结果:1 2、a = = b || x = = y 3、! a || a > b 结果:0 4、! a && b || x > y 结果:0 5、int a=-1,b=1,c=2,d=3,m=5,n=2,k; k=(m=a+b)&&(n=c+d) k为0 ,m为0, n为2
当尝试对该程序进行编译时,C语言编译器会报告 "illegal else without matching if"的语法错误。 28
4.3.4使用if语句应注意的问题
void main() { int x; x=1; if(x==1) printf("x等于1\n"); else ; /*这里多加了个分号*/ printf("x不等于1\n"); }
if(表达式) 语句1 else 语句2
真 表达式 语句1 语句2 假
如果括号内的表达式为真,则执行括号后面的 语句1。如果表达式值为假,则执行else后面的 语句2;语句1和语句2只能有一个被执行。
21
4.3.2 else子句
【例4-2】输入两个整数,将较大者输出。 /*程序4-2*/ #include<stdio.h> void main () { int a, b, max; printf("Please input the data a and b:"); scanf("%d, %d",&a, &b); if(a>=b) max=a; else max=b; printf("The max is %d\n", max); }
004第4章结构化程序设计
4.3.1 条件语句
if (InputScore >= 70) { if (InputScore >= 80) { if (InputScore >= 90) { OutputScore = "优秀"; //优秀 } else { OutputScore = "良好"; //良好 } } else { OutputScore = "中等"; //中等 } }
if (Score >= 60) { Console.WriteLine("该成 绩合格。"); } else { Console.WriteLine("该成 绩不合格。"); } }
}
4.3.1 条件语句
如果程序的逻辑判定关系比较复杂,可以用if…else嵌套语句 形式如下: if(表达式1) if(表达式2) if(表达式3) ... 语句1; else 语句2; else 语句3; else 语句4;
}
4.3.1 条件语句
2. if…else语句 if…else语句是一种更为常用的选择语句。if…else语 句的语法如下: if(表达式) { 语句块A; }
else
{ 语句块B; }
【例4-3】根据输入的学生
成绩Score的值,显示 其是否及格。
using System; class Score { static void Main() { Console.WriteLine("请您 输入学生成绩:"); int Score = int.Parse(Console.ReadLi ne());//转换为整数
【例4-4】假设考查课的成绩按优秀、良好、中等、及格和不及
第四章 结构化程序设计的三种结构
第四章结构化程序设计的三种结构4.1 顺序结构程序设计一、结构化程序设计的程序结构顺序结构、分支结构/选择结构、循环结构二、C语言语句1、9种控制语句2、表达式语句3、特殊语句三、格式化输出--printf()函数printf()函数的作用:向计算机系统默认的输出设备(一般指终端或显示器)输出一个或多个任意类型的数据。
printf()函数的一般格式printf("格式字符串" [,输出项表]);1、"格式字符串"也称"转换控制字符串",可以包含三种字符(1)格式指示符。
格式指示符的一般形式如下:%[标志][宽度][.精度][F|N|h|L][类型]常用的标志字符如表3-1所示,常用的宽度指示符如表3-2所示,常用的精度指示符如表3-3所示,长度修饰符如表3-4所示,类型转换字符如表3-5所示。
(2)转义字符'\n'就是转义字符,输出时产生一个"换行"操作。
转义字符通常起控制作用(3)普通字符──除格式指示符和转义字符之外的其它字符。
格式字符串中的普通字符,原样输出。
例如printf("radius=%f\n", radius);语句中的"radius="是普通字符。
2.输出项表输出项表是可选的。
如果要输出的数据不止1个,相邻2个之间用逗号分开。
下面的printf()函数都是合法的:(1)printf("I am a student.\n");(2)printf("%d",3+2);(3)printf("a=%f b=%5d\n", a, a+3);必须强调:"格式字符串"中的格式指示符,必须与"输出项表"中、输出项的数据类型一致,否则会引起输出错误3、格式指示符输出不同类型的数据,要使用不同的类型转换字符。
第4章结构化程序设计
第 4章
结构化程序设计
重点:控制结构 、程序实例
东方学院 信息分学院 陈国顺
内 容 பைடு நூலகம் 航
学习提要 教学内容
要点回顾
习题/实验
2
学习提要与目标
理解结构化程序设计的概念 熟练掌握程序控制的基本结构 掌握控制结构嵌套
掌握过程与自定义函数
3
目 录
4.1 程序文件设计 4.2 程序控制的基本结构 4.3 子程序和用户自定义函数 4.4 本章小结
19
4.2.2
选择结构
1.二路分支选择结构
格式:IF <条件表达式> [THEN]
<语句序列1>
[ELSE <语句序列2>] ENDIF
20
4.2.2
选择结构
【例4.4】如果在例题4.2中,根据行李重量的不同,采用不同的收费标准。即当 重量不超过50kg时,按每千克0.60元收费;当重量超过50kg,超出50kg的 部分按每千克0.90元收费,而其中的50kg仍按每千克0.60元收费。试编写 程序计算托运费。 程序代码如下: *****CH4-4.PRG ***** SET TALK OFF CLEAR INPUT "请输入货物的重量(Kg):" TO W IF W<=50 F=W*0.60 ELSE F=50*0.6+(W-50)*0.9 ENDIF ?"货物重量"+ALLTRIM(STR(W,19,2))+" 千克需要的托运费为:"+ALLTRIM(S TR(F,19,2))+"元" 21 SET TALK ON
31
第4章 程序设计基础
计算机科学导论
2
4.1 程序设计
程序设计是指用计算机语言对所要解决的问题中的数 据以及处理问题的方法和步骤所做的完整而准确的描述的 过程。程序设计步骤如下: 1. 确定要解决的问题。 2. 分析问题。 高质量程序设计目标是结构 化程度高、可读性好、效率 3. 选择计算方法。 高、可靠性高、便于维护。 4. 确定数据结构和算法。 5. 绘制流程图。 6. 编写程序。 7. 调试并测试程序。 8. 整理资料,交付使用。
2019/3/10
计算机科学导论
34
4.3.1 基本概念
(2) 数据的物理结构
数据的物理结构是指逻辑结构在计算机存储 器中的表示。 数据的物理结构主要有四种,分别是顺序结 构、链表结构、索引结构及散列结构。
2019/3/10
计算机科学导论
35
4.3.1 基本概念
①顺序结构
把所有元素存放在一片连续的存储单元中,逻辑 上相邻的元素存储在物理位置相邻的存储单元中,由 此得到的存储表示称为顺序存储结构。 程序设计语言中的数组常使用顺序存储结构来实
2019/3ቤተ መጻሕፍቲ ባይዱ10
计算机科学导论
26
4.2.5 程序设计举例
例4.1 输入三角形的3个边长a,b和c ,求三角形面积。
area s(s a)(s b)(s c)
s ( a b c) / 2
则计算该三角形的面积的C语言源程序如下:
#include<stdio.h> #include<math.h> void main() { float a,b,c,s,area; //变量定义 scanf(“%f,%f,%f”,&a,&b,&c); //输入语句 s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,b,c,s); printf(“area=%7.2f\n”,area); //输出语句 27 } 2019/3/10 计算机科学导论
第四章 循环结构程序设计
while(i<=100)
{ i++;
程序运行结果: sum=5050
sum=sum+i;
}
6
4.3 do-while语句
do-while语句的结构 do 语句 while(表达式);
例如: do
x-=1; while(x>0);
功能:
1)执行“语句”。 2)计算“表达式”的值。如果值为非0,转1);否则转3)。
}
8
4.3 do-while语句
1)循环体如果包含一个以上的语句,要用复合语句表示。 2)在循环体中应有使循环趋于结束的语句。 3)while语句的特点是先执行循环体,然后判断表达式的值。 4)一般情况下,用while语句和用do-while语句处理同一 个问题时,若二者的循环体部分一样,其结果也一样。但如
18
4.7 goto语句以及用goto语句构成循环结构
goto语句的一般格式:
goto 语句标号;
例如: goto loop;
功能:程序执行到goto语句时,将程序流程转到语句标号指定的 语句去执行。
有标号的语句的格式:
语句标号: 语句
例如: loop: sum=sum+i;
19
4.7 goto语句以及用goto语句构成循环结构
【例4-9】用goto语句实现求1~100累加和。
#include <stdio.h>
main() { int n=1, sum=0; loop: sum += n; n++;
if(n<=100) goto loop;
printf("sum=%d\n",sum); }
第4章-实用软件工程(第4版)-陆惠恩-清华大学出版社
❖ 1、采用自顶向下、逐步求精的程序设计方法; ❖ 2、仅采用顺序、选择、重复三种基本控制结构,每种基本结构只有一个
入口、一个出口;将这三种基本控制结构根据程序的逻辑,嵌套或组合 成结构化程序,完成预定的功能。 ❖ 3、采用主程序员组的组织形式。
【例4.4】用因果图法设计测试用例
某规格说明规定:输入的第一列字符必须是A或B,第二列字符必须是一个数字。 第一、二列都满足条件时执行操作H;如果第一列字符不正确,则给出信息L; 如果第二列字符不正确,则给出信息R。
根据上述要求画出因果图,并设计测试用例。
例4.4 的因果图
例4.4的判定表
《实用软件工程(第3版)》陆惠恩编著
源程序文档编写规则 1.源程序文档书写规则:含义鲜明的标识符名称、适当的注解和程序布局阶梯式。 2. 数据说明:易于理解、便于查阅 3. 语句构造要简单明了 4. 输入输出语句要合理 5. 程序效率要满足用户需求。
▪ 程序设计主要应考虑的是程序的正确性、可理解性、可测试性和可维护性。
4.2 软件测试目标
《实用软件工程(第3版)》陆惠恩编著
8
程序流程图
《实用软件工程(第3版)》陆惠恩编著
9
程序图
《实用软件工程(第3版)》陆惠恩编著
10
计算程序的环行复杂度:
方法1:图中有4个线性无关的有向环:R1、R2、R3、R4。 在图4.4(b)中,实线弧数为14,节点数为12。因此,环行复杂度为 V(G)=14-12+2=4
《实用软件工程(第3版)》陆惠恩编著
5
4.5 设计测试方案
测试方案包括三个内容:
要测试的功能
第四讲结构化程序设计与面向对象程序设计
第四讲结构化程序设计与面向对象程序设计在当今的计算机编程领域,结构化程序设计和面向对象程序设计是两种非常重要的编程方法。
它们各自有着独特的特点和优势,适用于不同的应用场景。
接下来,让我们一起深入了解这两种编程设计方法。
结构化程序设计诞生于 20 世纪 60 年代,它的出现是为了解决当时程序设计中存在的混乱和难以维护的问题。
结构化程序设计强调程序的清晰结构和逻辑流程,通过顺序、选择和循环这三种基本控制结构来构建程序。
顺序结构是最基本的,程序按照语句的先后顺序依次执行。
比如,我们先定义变量,然后进行计算,最后输出结果,这就是一个简单的顺序结构。
选择结构则用于根据不同的条件来决定程序的执行路径。
常见的有ifelse 语句和 switch 语句。
假设我们要判断一个数是奇数还是偶数,就可以使用 ifelse 语句,如果这个数除以 2 的余数为 0,就是偶数,否则就是奇数。
循环结构则允许我们重复执行一段代码,直到满足特定的条件。
比如 for 循环和 while 循环,当我们需要计算 1 到 100 的和时,就可以使用循环结构来实现。
结构化程序设计的优点是显而易见的。
它使得程序的逻辑更加清晰,易于理解和调试。
而且,由于程序的结构比较规范,代码的可读性和可维护性都得到了很大的提高。
然而,随着软件规模的不断扩大和复杂性的增加,结构化程序设计也逐渐暴露出一些局限性。
当程序变得非常复杂时,单纯依靠结构化程序设计可能会导致代码的重复度较高,模块之间的耦合度较大,不利于代码的复用和扩展。
为了解决这些问题,面向对象程序设计应运而生。
面向对象程序设计将数据和对数据的操作封装在一起,形成一个个对象。
对象具有自己的属性和方法,可以与其他对象进行交互。
在面向对象程序设计中,最重要的概念包括类、对象、封装、继承和多态。
类是对象的模板,它定义了对象所具有的属性和方法。
比如,我们可以定义一个“汽车”类,这个类包含了汽车的品牌、颜色、速度等属性,以及加速、刹车等方法。
C语言程序设计第四章
运行情况: 1989↙ 1989is not a leap year.
2000↙
2000 is a leap year.
C程序设计
第五章
选择结构程序设计
例4.6 求
2 ax bx c 0 方程的解
#include "stdio.h" #include "math.h" main() {float a,b,c,d,disc,x1,x2,realpart,imagpart; scanf("%f,%f,%f",&a,&b,&c); printf("The equation"); if (fabs(a)<=1e-6) printf("is not a quadratic"); else disc=b*b-4*a*c; if(fabs(disc)<=1e-6) printf("has two equal roots:%8.4f\n",-b/(2*a)); else if(disc>1e-6) {x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); printf("has distinct real roots:%8.4f and %8.4f\n",x1,x2); } else {realpart=-b/(2*a); imagpart=sqrt(-disc)/(2*a); printf("has complex roots:\n"); printf("%8.4f+%8.4fi\n",realpart,imagpart); printf("%8.4f-%8.4fi\n",realpart,imagpart); } }
结构化程序设计
第四章结构化程序设计控制结构
•
PRINT*,‘X1=’,X1,’,X2=’,X2
•
40 RETURN
• END SUBROUTINE
3. IF 块
IF 块的构造形式为:
•
IF condition THEN
•
block1
•
[ELSE
•
blockE]
•
END IF
其中,condition是一个逻辑表达式,其结果不外乎真或假。 block1 和 blockE是语句块,当条件为真,block1 被执行; 否则,blockE 被执行。ELSE 块是可选的。
•
[CASE DEFAULT
•
blockD]
•
END SELECT
其中expr 必须是整型、字符型或者逻辑型变量。Selector 可以是同一类型, 非交叉的值或值范围(:用来规定值的范围)的列表。用CASE块统计 学生得分如下:
SELECT CASE ( INT(Final))
•
CASE (90:)
•
case default
•
PRINT*,‘Consonant’
•
END SELECT
•
ELSE
•
PRINT*,‘Something else’
CASE块的构造形式为:
•
SELECT CASE (expr)
•
CASE (selector1)
•
block1
•
CASE (selector2)
•
block2
•
D=D+1
•
ELSE
•
F=F+1
•
END IF
程序执行一旦发现某个逻辑条件为真,就不会再去判断其他
结构化程序设计
结构化程序设计结构化程序设计是一种编程范式,它强调使用结构化控制语句来编写程序,以提高代码的可读性、可维护性和可靠性。
这种设计方法最早由E.W. Dijkstra和C.A.R. Hoare等人在20世纪60年代提出,并逐渐成为软件开发中的主流方法。
定义与原则结构化程序设计的核心是将程序分解为一系列结构化的单元,每个单元只执行一种逻辑功能。
这些单元通过控制语句(如顺序、选择和循环)相互连接。
其主要原则包括:1. 自顶向下设计:从整体到部分,逐步细化程序结构。
2. 模块化:将程序划分为独立的模块,每个模块完成特定的任务。
3. 逐步细化:将复杂问题分解为更小、更易于管理的问题。
4. 使用结构化控制语句:避免使用非结构化的控制语句,如GOTO。
结构化控制语句结构化程序设计主要使用以下三种控制语句:1. 顺序结构:按照代码的书写顺序执行。
2. 选择结构:根据条件选择不同的执行路径,如`if-else`语句。
3. 循环结构:重复执行一段代码直到满足特定条件,如`for`、`while`和`do-while`循环。
优点1. 提高代码可读性:结构化的代码更容易理解和维护。
2. 减少错误:结构化设计减少了程序中的错误和异常情况。
3. 易于测试和调试:模块化的设计使得测试和调试更加容易。
4. 增强代码重用性:模块化的设计允许代码重用,提高开发效率。
缺点1. 灵活性降低:严格的结构化设计可能限制了某些特定情况下的灵活性。
2. 过度设计:在某些简单问题上,结构化设计可能导致不必要的复杂性。
实践方法1. 需求分析:明确程序需要完成的功能和性能要求。
2. 设计:使用伪代码或流程图来设计程序的逻辑结构。
3. 编码:根据设计文档编写代码,确保使用结构化控制语句。
4. 测试:对每个模块进行测试,确保其正确执行。
5. 维护:对程序进行持续的维护和优化。
应用领域结构化程序设计广泛应用于软件开发的各个领域,包括但不限于:- 商业软件:如会计、库存管理等。
第4章_结构化设计方法 参考答案
第4章结构化设计方法4.1 当你“编写”程序时你设计软件吗?软件设计和编码有什么不同吗?在“编写”程序时并没有设计软件。
软件设计包括概要设计和详细设计,编码是将详细设计中的过程描述转换成用程序设计语言来描述。
4.2 举出3个数据抽象的例子和可以用来操作这些数据抽象的过程抽象的一个例子。
抽象是忽略事物的细节,获取其本质特征的过程。
抽象是一种重要的机制,使人们能够对复杂系统能够很好地理解、交流和推理。
在软件领域,可以将抽象分为两类,即数据抽象和过程抽象。
在传统的结构化程序设计语言中,就提供了这两种抽象机制。
(1) 数据抽象:在所有的结构化程序设计语言中,用户都可以自定义抽象数据类型。
如定义抽象数据类型Student(学生)、Course(课程)、ClassScoreList(班级成绩单)。
(2) 过程抽象:过程抽象也称为是基于方法的抽象。
过程抽象使我们关心处理过程的名字和它能做什么,而无需知道如何完成所有实现细节。
如求班级总平均分average(ClassScoreList)就是一个过程抽象。
在面向对象的程序设计语言中,抽象与封装的概念密切相关,数据抽象和相关的过程抽象被封装在类中,不同类中相似的过程抽象(方法)又可以进一步抽象,放在接口中。
封装是保证事物有明确内外界限的机制。
内部是受保护的,与外部事物相隔离。
4.3 应在什么时候把模块设计实现为单块集成软件?如何实现?性能是实现单块集成软件的唯一理由吗?由于模块之间的调用降低了系统的运行速度,可能会导致满足不了用户的性能要求,这时就需要将软件设计为单块集成软件。
但是在设计时,最好按照模块化的原则进行设计,只是没有显式的模块定义而已。
这样的程序也具有模块化的优点。
性能是实现单块集成软件的唯一理由。
4.4 是否存在一种情况:复杂问题需要较少的工作去解决?这样的情况对模块化观点有什么影响?通过对复杂的问题进行合理分解,分解为若干个相对简单及独立的子问题,就可以用较少的工作去解决。
结构化程序设计
结构化程序设计结构化程序设计结构化程序设计(Structured Programming)是一种编程方法学,旨在通过使用控制结构和模块化的方式来提高程序的可读性和可维护性。
它强调程序应该被分解为小而独立的、可重用的块,并且应该使用清晰的控制结构来组织代码。
结构化程序设计通过减少代码中的跳转和条件语句来降低程序的复杂性,使得程序更易于理解和调试。
1. 控制结构在结构化程序设计中,主要有三种基本的控制结构:1.1 顺序结构顺序结构是最简单的控制结构,程序按照顺序执行语句,没有任何条件或循环。
例如,下面是一个简单的顺序结构的伪代码示例:pythonStep 1: 读取输入Step 2: 处理数据Step 3: 输出结果1.2 选择结构选择结构用于根据特定条件选择不同的路径执行代码。
通常使用`if`语句或`switch`语句来实现选择结构。
例如,下面是一个使用`if`语句实现的选择结构的伪代码示例:pythonif 条件1:执行语句1elif 条件2:执行语句2else:执行语句31.3 循环结构循环结构用于重复执行一段代码,直到满足特定条件才停止。
通常使用`for`循环或`while`循环来实现循环结构。
例如,下面是一个使用`while`循环实现的循环结构的伪代码示例:pythonwhile 条件:执行语句2. 模块化设计模块化设计是结构化程序设计的另一个关键概念,它将程序分解为相互独立的模块,每个模块负责完成特定的任务。
模块化设计可以提高代码的可重用性和可维护性,并且使得程序更易于理解和测试。
在模块化设计中,每个模块应该具有清晰的输入和输出接口,尽量减少模块之间的依赖关系。
模块之间的通信可以通过参数传递、全局变量或回调函数等方式实现。
例如,一个计算矩形面积的模块可以设计如下:pythondef calculate_area(length, width):area = length widthreturn area在上述示例中,`calculate_area`是一个独立的模块,它接收矩形的长度和宽度作为参数,并返回计算的面积。
结构化程序设计
结构化程序设计结构化程序设计结构化程序设计是一种软件开发方法,旨在通过模块化和顺序化的方式来设计和编写程序。
它强调程序应该被组织成一系列可重复使用和可维护的模块,以便增强开发效率和代码的可读性。
在结构化程序设计中,程序被划分为多个小的、相对独立的模块。
每个模块执行一个特定的任务,并且可以与其他模块进行通信和交互。
这种模块化的设计使得程序变得更加可靠和易于理解,因为每个模块都是独立的,它的功能可以被单独测试和验证。
,结构化程序设计还鼓励使用顺序、选择和重复等基本的控制结构来组织程序的执行流程。
顺序控制指的是按照代码的顺序依次执行语句,选择控制指的是根据条件选择执行不同的语句块,而重复控制则是通过循环执行一段代码多次。
结构化程序设计的目标是提高程序的可理解性和可维护性。
通过模块化的设计,可以将一个复杂的问题分解成多个简单的子问题,从而减少开发过程中的错误和bug。
结构化程序设计还使得程序的测试和调试变得更加容易,因为每个模块都是相对独立的,可以单独进行测试和调试。
在实践中,结构化程序设计可以通过使用编程语言中的函数、类和模块等概念来实现。
通过将程序划分为多个函数或者类,可以实现程序的模块化和重用。
而通过使用模块化的设计,可以将程序的不同部分放入不同的模块中,从而提高代码的可读性和可维护性。
,结构化程序设计是一种重要的软件开发方法,可以提高程序的可读性、可维护性和可重用性。
通过将程序划分为多个模块,并使用基本的控制结构来组织程序的执行流程,可以更好地管理和开发复杂的软件系统。
结构化程序设计是每个程序员都应该熟悉和掌握的软件开发技术。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
break不能用于循环语句和switch语句之外的任何其它语 句之中。
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
辅助控制语句: 例: 输出圆面积,面积大于100时停止
大连理工大学出版社
第4章 结构化程序设计
if 语句的嵌套:
一般形式:
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
注意: if ... else 配对原则:缺省{ }时,else总是和它上面离它最近的未配对 的if配对。
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
–1 (x<0) 0 (x=0) 1 (x>0)
C语言程序设计案例教程
-1 (x<0)
y= 0 (x=0)
1 (x>0)
0 (x<0)
y= -1 (x=0)
1 (x>0)
大连理工大学出版社
第4章 结构化程序设计
switch语句:
用if或if...else或它们的嵌套也可使程序实现多路分支,但容易出现下面 的问题: 可读性差 破坏结构 解决问题的方法:采用switch语句。 一般形式:
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
形式三:
格式: if ( expr1 )
statement1
else if (expr2 ) statement2
else if (expr3 ) statement3
…...
[ else
statementn ]
执行过程:
C语言程序设计案例教程
{
循环体语句;
expr3;
}
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
for循环 100
例: 用for循环求 n n 1
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
for循环:
例: 求Fibonacci数例: 1, 1, 2, 3, 5, 8, …前20个数。
if 语句的嵌套 例:有一函数y=
–1 (x<0) 0 (x=0) 1 (x>0)
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
if 语句的嵌套 例:有一函数y=
–1 (x<0) 0 (x=0) 1 (x>0)
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
if 语句的嵌套 例:有一函数y=
for 循环:
执行流程:
一般形式: for([expr1] ;[ expr2] ;[ expr3]) 循环体语句;
说明:
for语句中expr1, expr2 ,expr3 类型任意, 都可省略,但分号“;”不可省。
无限循环: for(;;)。
expr1;
for语句可以转换成while结构。 while(expr2)
switch语句: 说明:
(1)switch后圆括号内的表达式要求是整型或字符型的; (2)各case的常量表达式的值不能相同; (3)default放在语句的的最后是一个好的习惯。 (4)case中的break语句是根据程序的需要选用的。 (5)多个case可共用一组执行语句 例:用switch语句重新改写各种进位制数的转换程序。
在执行顺序结构时,程序的执行顺序就是语句的书写顺序。尽管一个C 语言程序可以包含多种结构,但从主体上讲,都是顺序结构。由main() 的第一行开始执行语句,顺序执行到main()的函数体的最后一行语句。 也就是说main()的函数体是一个顺序结构。
C语言程序设计案例教程
大连理工大学出版社
小结
选择结构有三种语句格式实现:if、if…else(if..else if)和switch 语句。特点是:程序的流程由多路分支组成,在程序的一次执行过程中, 根据不同的情况,只有一条支路被选中执行,而其他的分支上的语句被直 接跳过。 循环结构同样由三种语句实现:while、do…while、for语句。特点 是:当满足某个条件时,程序中的某个部分需要重复执行多次。 在一个程序中,通常不是仅由一种结构实现,而是对三种结构的综合应 用,这三种结构之间通过某种形式的连接,完成一个复杂的程序设计。
C语言程序设计案例教程
大连理工大学出版社
ห้องสมุดไป่ตู้
小结
结构化程序设计提供的三种基本结构:顺序结构、分支选择结构和循环 结构。
采用结构化程序设计能够设计出容易理解、测试、调试和修改的程序。 正确使用这些结构将有助于设计出高度结构化的程序。由这三种基本结构 可以组合任何复杂的程序设计。程序设计也可称为一门工程设计,它是根 据要解决的问题,使用某种程序设计语言,设计出能够完成这一任务的计 算机指令序列。
大连理工大学出版社
第4章 结构化程序设计
6)初始表达式、循环表达式可以是逗号表达式,以使循环变 量值在修改时可以对其它变量赋值;
7)循环体可以为空;
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
三种循环的比较:
1. 使用场合:三种循环都可以用来处理同一问题,一般情况 下可以互相代替。
3.循环初始条件:while、do-while在循环前指定;for循 环一般在“表达式1”中指定。 4.判循环条件的时机:while、for循环先判循环条件,后执 行;do-while循环先执行,后判循环条件。
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
循环的嵌套: 例: 循环嵌套,输出九九表
规律: F1=1, F2=1
Fn=Fn – 1 + Fn – 2
(n>2)
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
for语句的几种特例(表达方式灵活多样) 1)可以省略初始化表达式, 但须保留分号, 但在for 之前必须给循环变量赋值;
2)增量表达式亦可省略,但在循环体中必须有语句来 修改循环变量,使能够正常结束循环;
循环体;
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
while循环
100
例: 用while循环求 n n 1
循环条件
循环初值 循环变量增值
C语言程序设计案例教程
循环终值
循环体
大连理工大学出版社
第4章 结构化程序设计
do…while 循环: 一般形式: do
循环体语句; while(表达式);
C语言程序设计案例教程
大连理工大学出版社
大连理工大学出版社
大连理工大学出版社
第4章 结构化程序设计
❖本章内容
顺序结构:通过简单的引例来引入这种最为广泛使用的结构。
选择结构:介绍if语句、switch语句实现的多种分支结构。
循环结构:介绍实现循环结构的语句格式、功能及执行过程。
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
❖重点和难点
重点:(1) 三种控制结构 (2) 选择控制语句(if、switch) (3) 循环控制语句(for、while、do~while) (4) 简单控制语句(break、continue)
特点:先执行循环体,后判断表达式 说明: 至少执行一次循环体 do~while可转化成while结构
执行流程:
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
do…while循环: 100
例: 用do while循环求 n n 1
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
3)条件表达式一般不可省略,否则为无限循环,循 环体内应设法结束循环;
4)若同时省略初始表达式,和增量表达式,则相当 于while语句;
5)三个表达式均省略 即for(;;)语句则相当于while(1) 语句,为无限循环;
C语言程序设计案例教程
break语句的功能是终止本switch语句的执行。 执行过程:
首先计算switch后圆括号内的表达式的值,然后用这个值逐个与 case的常量表达式的值进行比较。当找到相一致(匹配)的case时,就 执行 其后的语句序列;否则进入default后的语句序列。
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
选择结构
if语句:
if语句(条件选择语句) if语句的三种形式 形式一:
格式:if (expression) statement
执行过程:
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
形式二: 格式:if (expression) statement1 else statement2 执行过程:
1)for一般用于具有明确循环次数的情况; 2)while 和do-while常用在事先只知道循环控制条 件,循环次数要在循环过程中才能确定的情况; 2.循环条件:while、do-while在whie后面指定;for循 环在“表达式2”中指定。
C语言程序设计案例教程
大连理工大学出版社
第4章 结构化程序设计
C语言程序设计案例教程
大连理工大学出版社