C语言第4章PPT格式课件下载.ppt
《C语言第4章PPT格式课件下载.ppt》由会员分享,可在线阅读,更多相关《C语言第4章PPT格式课件下载.ppt(68页珍藏版)》请在冰豆网上搜索。
n”);
CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制:
用:
用括起来的一组语句括起来的一组语句一般形式:
一般形式:
数据说明部分数据说明部分;
执行语句部分;
说明:
“”后不加分号后不加分号语法上和单一语句相同语法上和单一语句相同复合语句可嵌套复合语句可嵌套复合语句复合语句CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制C程序的控制结构概述程序的控制结构概述结结构构化化程程序序设设计计是是进进行行程程序序设设计计的的方方法法和和原原则则,按按照照这这些些原原则则和和方方法法设设计计出出来来的的程程序序具具有有结结构构清清晰晰、可可读读性性好好、易易于于修修改改的的优优点点。
C语语言言是是使使用用最最广广泛泛的的结结构构化化程程序序设设计计语言。
语言。
在在结结构构化化程程序序设设计计方方法法中中,模模块块是是一一个个基基本本概概念念。
一一个个模模块块可可以以是是一一条条语语句句、一一段段程程序序、一一个个函函数数等等等等。
按按照照结结构构化化程程序序设设计计的的基基本本观观点点,任任何何程程序序都都可可以以通通过过三三种种基基本本程序结构的组合实现。
这三种基本结构是:
程序结构的组合实现。
顺序结构顺序结构按语句出现的顺序依次执行的程序结构。
按语句出现的顺序依次执行的程序结构。
选选择择结结构构根根据据给给定定的的条条件件是是否否成成立立,以以决决定定程程序序流流程程转转向的程序结构。
向的程序结构。
循循环环结结构构在在某某种种条条件件成成立立的的情情况况下下,反反复复执执行行某某一一公公共共程序段,直到条件不成立时终止循环的程序结构。
程序段,直到条件不成立时终止循环的程序结构。
CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制程序的三种基本模块结构程序的三种基本模块结构CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制C程序的控制结构概述程序的控制结构概述结构化程序设计支持结构化程序设计支持“自顶向下,逐步求精自顶向下,逐步求精”的程序设计方法。
自顶向下的程序设计方法从的程序设计方法。
自顶向下的程序设计方法从问题的本身开始,首先给出解决问题的基本程问题的本身开始,首先给出解决问题的基本程序结构框架,经过逐步细分、求精,将解决问序结构框架,经过逐步细分、求精,将解决问题的步骤用程序基本模块表述出来,并清晰地题的步骤用程序基本模块表述出来,并清晰地描述这些基本组成部分之间的关系,然后再使描述这些基本组成部分之间的关系,然后再使用某种程序设计语言编制出结构良好、易于调用某种程序设计语言编制出结构良好、易于调试的程序。
试的程序。
CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制4.2分支结构分支结构分支结构的基本概念分支结构的基本概念在程序设计中使用顺序结构只能编写一些在程序设计中使用顺序结构只能编写一些简单的程序,进行简单的运算。
但在实际问题中简单的程序,进行简单的运算。
但在实际问题中经常遇到要求计算机系统根据不同的情况进行不经常遇到要求计算机系统根据不同的情况进行不同的处理。
这种在程序运行中对程序的走向进行同的处理。
这种在程序运行中对程序的走向进行选择,以便决定执行哪一种操作的程序结构就是选择,以便决定执行哪一种操作的程序结构就是分支结构(也称为选择结构)。
分支结构(也称为选择结构)。
简言之,程序设计中分支的基本概念是:
通简言之,程序设计中分支的基本概念是:
通过对条件的判断,从两种或两种以上的可能中确过对条件的判断,从两种或两种以上的可能中确定问题的解。
定问题的解。
分支结构可以分为单分支结构、双分支结构分支结构可以分为单分支结构、双分支结构和多分支结构三种,和多分支结构三种,C语言中为此提供了三种类语言中为此提供了三种类型的条件转移语句:
型的条件转移语句:
if语句、语句、ifelse语句、语句、switch语句。
语句。
CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制C语言条件句与分支结构的实现语言条件句与分支结构的实现1.if语句语句if语句有三种语句形式:
语句有三种语句形式:
lifelse语句形式语句形式lif语句形式语句形式lifelseifelse语句形式语句形式CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制1)if语句构成二分支条件转移结构语句构成二分支条件转移结构结构形式:
结构形式:
if(表达式)表达式)语句语句1;
else语句语句2;
执行过程:
先判断表达式的值,若表达式的值为真执行过程:
先判断表达式的值,若表达式的值为真(表达式的值不为(表达式的值不为0),则执行语句),则执行语句1,然后执行,然后执行if结构的后续语句;
否则,执行语句结构的后续语句;
否则,执行语句2,然后执行,然后执行if结结构的后续语句。
构的后续语句。
二分支条件转移流程图二分支条件转移流程图CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制1)if语句构成二分支条件转移结构语句构成二分支条件转移结构输入三角形的三边的边长,若它们能构成一个三角形,则输入三角形的三边的边长,若它们能构成一个三角形,则输出其面积,否则输出数据出错信息。
输出其面积,否则输出数据出错信息。
问题分析:
根据数学知识,若三直边根据数学知识,若三直边a、b、c构成三角形,则必须满足构成三角形,则必须满足条件条件:
任意两边的之和大于第三边(即:
a+bc且且a+cb且且b+ca)。
计算三角形的面积的公式为:
)。
例例1CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制设计算法如下设计算法如下(伪代码描述伪代码描述):
算法开始算法开始输入输入a,b,cif(满足三角形条件满足三角形条件)thens=(a+b+c)/2;
area=sqrt(s*(s-a)*(s-b)*(s-c);
输出输出:
areaelse输出输出:
”error”算法结束算法结束在本程序中,条件是逻辑与连接的、较复杂的逻辑表在本程序中,条件是逻辑与连接的、较复杂的逻辑表达式;
语句达式;
语句1是一个复合语句;
其结构是二分支条件转是一个复合语句;
其结构是二分支条件转移结构。
由于用到了求平方根的函数(移结构。
由于用到了求平方根的函数(sqrt),这是一),这是一个系统标准函数,其函数的说明在文件个系统标准函数,其函数的说明在文件math.h中,因此中,因此在本程序的第二行中用在本程序的第二行中用#include将此头文将此头文件声明,这样才能在主函数件声明,这样才能在主函数main中使用该函数。
中使用该函数。
1)if语句构成二分支条件转移结构(语句构成二分支条件转移结构(if-else语句)语句)相应相应C程序为:
程序为:
#include#includevoidmain()floata,b,c,s,area;
scanf(%f,%f,%f,&
a,&
b,&
c);
if(a+bc&
a+cb&
b+ca)s=(a+b+c)/2;
printf(%fn,area);
elseprintf(dataerrorn);
CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制1)if语句构成二分支条件转移结构(语句构成二分支条件转移结构(if-else语句)语句)例例2求三个数中的最大数。
求三个数中的最大数。
算法分析:
在三个数在三个数x,y,z中,任取两个数中,任取两个数x,y;
将较大的数放入将较大的数放入结果变量结果变量max中;
中;
将余下的将余下的z与与max中的值比较,大者放入结果变量中的值比较,大者放入结果变量max中;
最后,最后,max中的值是三个数中的最大数。
中的值是三个数中的最大数。
设计算法如下设计算法如下(伪代码描述伪代码描述):
算法开始算法开始输入输入:
x,y,zif(xy)thenmax=xelsemax=yif(zmax)thenmax=z输出输出:
max算法结束算法结束CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制1)if语句构成二分支条件转移结构语句构成二分支条件转移结构本例中的第本例中的第1个个if语句,可优化为如下不带语句,可优化为如下不带else子句的形式:
子句的形式:
max=num1;
if(num2max)max=num2;
这种优化形式的基本思想是:
首先取一个数预这种优化形式的基本思想是:
首先取一个数预置为置为max(最大值),然后再用(最大值),然后再用max依次与其余依次与其余的数逐个比较,如果发现有比的数逐个比较,如果发现有比max大的,就用它大的,就用它给给max重新赋值,比较完所有的数后,重新赋值,比较完所有的数后,max中的中的数就是最大值。
这种方法,对从数就是最大值。
这种方法,对从3个或个或3个以上的个以上的数中找最大值的处理,非常有效。
数中找最大值的处理,非常有效。
CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制2)单分支条件转移结构(单分支条件转移结构(if语句语句)结构形式:
if(表达式)语句;
表达式)语句;
先先判判断断表表达达式式的的值值,若若表表达达式式的的值值为为真真(表表达达式式的的值值不不为为0),则则执执行行语语句句,然然后后执执行行if结结构构的的后后续续语语句句;
若若表表达达式式的的值值为为假假(表表达达式式的的值值为为0),则则跳跳过过语语句句直接执行直接执行if结构的后续语句。
结构的后续语句。
单分支条件转移流程图单分支条件转移流程图CC语言程序设计语言程序设计语言程序设计语言程序设计第四章第四章第四章第四章语句和流程控制语句和流程控制语句和流程控制语句和流程控制2)单分支条件转移结构(单分支条件转移