程序控制结构优秀PPT.ppt
《程序控制结构优秀PPT.ppt》由会员分享,可在线阅读,更多相关《程序控制结构优秀PPT.ppt(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、程序控制结构现在学习的是第1页,共40页3.1 C 语言结构化程序设计基础程序的控制结构(黑箱)程序的控制结构(黑箱)程序的控制结构(黑箱)程序的控制结构(黑箱)单入口单出口的控制结构易于理解单入口单出口的控制结构易于理解单入口单出口的控制结构易于理解单入口单出口的控制结构易于理解 三种基本控制结构:顺序、分支、循环三种基本控制结构:顺序、分支、循环三种基本控制结构:顺序、分支、循环三种基本控制结构:顺序、分支、循环 控制结构可以嵌套,以构成更复杂的控制结构控制结构可以嵌套,以构成更复杂的控制结构控制结构可以嵌套,以构成更复杂的控制结构控制结构可以嵌套,以构成更复杂的控制结构程序的结构化程序的
2、结构化 三种基本控制结构可以构造任何复杂的结构化算法三种基本控制结构可以构造任何复杂的结构化算法三种基本控制结构可以构造任何复杂的结构化算法三种基本控制结构可以构造任何复杂的结构化算法 结构化程序设计原则:结构化程序设计原则:结构化程序设计原则:结构化程序设计原则:自顶向下自顶向下自顶向下自顶向下,逐步求精逐步求精逐步求精逐步求精 结构化程序设计过程:首先对任务进行功能分解,然后使用结结构化程序设计过程:首先对任务进行功能分解,然后使用结结构化程序设计过程:首先对任务进行功能分解,然后使用结结构化程序设计过程:首先对任务进行功能分解,然后使用结构化程序设计思想逐一解决各个子问题,最后构造原始问
3、题的构化程序设计思想逐一解决各个子问题,最后构造原始问题的构化程序设计思想逐一解决各个子问题,最后构造原始问题的构化程序设计思想逐一解决各个子问题,最后构造原始问题的解解解解 好处:逻辑性强,可读性好,维护方便好处:逻辑性强,可读性好,维护方便好处:逻辑性强,可读性好,维护方便好处:逻辑性强,可读性好,维护方便现在学习的是第2页,共40页3.2 顺序结构顺序结构的含义顺序结构的含义顺序结构的含义顺序结构的含义 由一组顺序执行的处理块组成,每个处理块可能包含一条或一组由一组顺序执行的处理块组成,每个处理块可能包含一条或一组由一组顺序执行的处理块组成,每个处理块可能包含一条或一组由一组顺序执行的处
4、理块组成,每个处理块可能包含一条或一组语句,完成一项任务语句,完成一项任务语句,完成一项任务语句,完成一项任务 顺序结构是最基本的算法结构顺序结构是最基本的算法结构顺序结构是最基本的算法结构顺序结构是最基本的算法结构语句与复合语句(语句块)语句与复合语句(语句块)语句与复合语句(语句块)语句与复合语句(语句块)三种语句结构:单语句(三种语句结构:单语句(三种语句结构:单语句(三种语句结构:单语句(表达式表达式表达式表达式;)、空语句()、空语句()、空语句()、空语句(;)、复合语句)、复合语句)、复合语句)、复合语句(语句序列语句序列语句序列语句序列)现在学习的是第3页,共40页顺序结构程序
5、示例分别输入两个复数的实部与虚部,计算两个复数的和、分别输入两个复数的实部与虚部,计算两个复数的和、差、积、商并输出结果差、积、商并输出结果#include include int int mainmain()()float float a a,b b,c c,d d,realreal,imaginaryimaginary;printf printf(“Input reals and imaginaries of two complexes(“Input reals and imaginaries of two complexesn n”);”);scanfscanf(“%(“%f f,%,%
6、f f,%,%f f,%,%f f”,&”,&a a,&,&b b,&,&c c,&,&d d););printf printf(“Sum:%(“Sum:%f f+%+%f fi in n”,”,a a+c c,b b+d d););printf printf(“Difference:%(“Difference:%f f+%+%f fi in n”,”,a a c c,b b d d););realreal=a a*c c b b*d d;imaginaryimaginary=a a*d d+b b*c c;printf printf(“Product:%(“Product:%f f+%+%f
7、 fi in n”,”,realreal,imaginaryimaginary););realreal=(=(a a*c c+b b*d)d)/(/(c c*c c+d d*d d););imaginaryimaginary=(=(b b*c c a a*d)d)/(/(c c*c c+d d*d d););printf printf(“Quotient:%(“Quotient:%f f+%+%f fi in n”,”,realreal,imaginaryimaginary););return 0;return 0;实际需要输入实际需要输入实际需要输入实际需要输入4 4 4 4个实数个实数个实
8、数个实数现在学习的是第4页,共40页3.3 分支结构 分支结构(选择结构)的含义分支结构(选择结构)的含义分支结构(选择结构)的含义分支结构(选择结构)的含义 根据某一条件的判断结果,确定程序的流程,即选择哪一个程序根据某一条件的判断结果,确定程序的流程,即选择哪一个程序根据某一条件的判断结果,确定程序的流程,即选择哪一个程序根据某一条件的判断结果,确定程序的流程,即选择哪一个程序分支中的处理块去执行分支中的处理块去执行分支中的处理块去执行分支中的处理块去执行 最基本的分支结构是二路分支结构最基本的分支结构是二路分支结构最基本的分支结构是二路分支结构最基本的分支结构是二路分支结构 以条件判断为
9、起点,如果判断结果为真,则执行以条件判断为起点,如果判断结果为真,则执行以条件判断为起点,如果判断结果为真,则执行以条件判断为起点,如果判断结果为真,则执行A A处理块的处理块的处理块的处理块的操作,否则执行操作,否则执行操作,否则执行操作,否则执行B B处理块的操作处理块的操作处理块的操作处理块的操作现在学习的是第5页,共40页if-else 语句语句格式:语句格式:if(if(表达式表达式表达式表达式)语句语句语句语句1 else 1 else 语句语句2 2 表达式必须位于括号内,一般为关系或逻辑表达式表达式必须位于括号内,一般为关系或逻辑表达式表达式必须位于括号内,一般为关系或逻辑表达
10、式表达式必须位于括号内,一般为关系或逻辑表达式先计算表达式值,若为真则执行语句先计算表达式值,若为真则执行语句先计算表达式值,若为真则执行语句先计算表达式值,若为真则执行语句1 1,否则执行语句,否则执行语句,否则执行语句,否则执行语句2 2 2 2 语句语句语句语句1 1 1 1与语句与语句2 2可以为复合语句可以为复合语句可以为复合语句可以为复合语句 语句语句语句语句1 1与语句与语句与语句与语句2 2 2 2只能有一个被执行只能有一个被执行只能有一个被执行只能有一个被执行如果仅仅用于确定某条语句是否执行,如果仅仅用于确定某条语句是否执行,elseelseelseelse分支可以分支可以分
11、支可以分支可以省略省略省略省略现在学习的是第6页,共40页if-else 语句示例一 输入一个字符,判断它是否为输入一个字符,判断它是否为输入一个字符,判断它是否为输入一个字符,判断它是否为09090909之间的数字之间的数字#include include int int mainmain()()char char c c;printf printf(“Input a character:”);(“Input a character:”);c c=getchargetchar();();if if(c c=48&=48&c c=57)=57)printf printf(“It is a nu
12、mber.(“It is a number.n n”);”);elseelse printf printf(“No,it is not a number.(“No,it is not a number.n n”);”);return 0;return 0;因:字符以因:字符以因:字符以因:字符以ASCIIASCIIASCIIASCII码值存储码值存储码值存储码值存储且数字的且数字的且数字的且数字的ASCIIASCIIASCIIASCII码值码值码值码值4857485748574857故:比较故:比较故:比较故:比较ASCIIASCIIASCIIASCII码值码值码值码值现在学习的是第7页,共4
13、0页if-else 语句示例二 输入一个整数,输出其绝对值输入一个整数,输出其绝对值输入一个整数,输出其绝对值输入一个整数,输出其绝对值#include include int int mainmain()()int int n n,absabs;printf printf(“Enter integer:”);(“Enter integer:”);scanfscanf(“%(“%d d”,&”,&n n););absabs=n n;if if(absabs 0)0)abs abs=absabs;printf printf(“Original integer:%(“Original intege
14、r:%d d,absolute value:%,absolute value:%d d n n”,”,n n,absabs););return 0;return 0;现在学习的是第8页,共40页if-else if-else 语句语句格式语句格式 if(if(表达式表达式表达式表达式1)1)语句语句语句语句1 else if(1 else if(表达式表达式表达式表达式2)2)语句语句语句语句2 else 2 else 语句语句语句语句n n现在学习的是第9页,共40页if-else if-else 示例 根据百分制成绩给出优秀、通过或不通过成绩根据百分制成绩给出优秀、通过或不通过成绩根据百分
15、制成绩给出优秀、通过或不通过成绩根据百分制成绩给出优秀、通过或不通过成绩#include#include int int mainmain()()float float scorescore;printfprintf(“Input score:“);(“Input score:“);scanfscanf(“%(“%f f“,&“,&scorescore););if if(scorescore=85&=85&scorescore=100)=60&=60&scorescore 85)=0&=0&scorescore 60)50)50)if(if(salsal 500)50)50)if(if(sal
16、sal 500)50)50)if(if(salsal 500)500)salsal+=200;+=200;elseelse salsal+=300;+=300;现在学习的是第11页,共40页条件分支嵌套示例求方程求方程 ax2+bx+c=0 的根的根#include#include#include#include /由于用到平方根函数,要用此头文件由于用到平方根函数,要用此头文件由于用到平方根函数,要用此头文件由于用到平方根函数,要用此头文件int int mainmain()()float float a a,b b,c c,x1x1,x2x2,p p,q q,mm;/定义实型变量定义实型变
17、量定义实型变量定义实型变量 printfprintf(“Enter 3 coefficients:“);(“Enter 3 coefficients:“);scanfscanf(“%(“%f f,%,%f f,%,%f f“,&“,&a a,&,&b b,&,&c c););/从键盘读入方程的三个系数从键盘读入方程的三个系数从键盘读入方程的三个系数从键盘读入方程的三个系数 if if(a a=0.0&=0.0&b b=0&=0&c c=0)=0)/分支分支分支分支1 1:三个系数全为:三个系数全为:三个系数全为:三个系数全为0 0 printfprintf(“any value(“any va
18、luen n“);“);elseelse if if(a=0&b!=0)(a=0&b!=0)/分支分支分支分支2 2:系数:系数:系数:系数a a为为为为0 0,解一元一次方程,解一元一次方程,解一元一次方程,解一元一次方程 printfprintf(“x1=x2=%(“x1=x2=%f f n n,c c/b b););elseelse /分支分支分支分支3 3:解一元二次方程的两个根:解一元二次方程的两个根:解一元二次方程的两个根:解一元二次方程的两个根 mm=b b*b b 4.0*4.0*a a*c c;现在学习的是第12页,共40页条件分支嵌套示例 if if(mm=0)=0)/解实
19、根解实根解实根解实根 x1x1=(=(b b+sqrtsqrt(mm)/(2.0*)/(2.0*a a););x2x2=(=(b b sqrtsqrt(mm)/(2.0*)/(2.0*a a););printfprintf(“x1=%(“x1=%f f n n“,“,x1x1););/输出两个实根输出两个实根输出两个实根输出两个实根 printfprintf(“x2=%(“x2=%f f n n“,“,x2x2););elseelse /解虚根解虚根解虚根解虚根 p p=b b/(2.0*/(2.0*a a););q q=sqrtsqrt(mm)/(2.0*)/(2.0*a a););prin
20、tfprintf(“x1=%(“x1=%f f+%+%f fi in n“,“,p p,q q););printfprintf(“x2=%(“x2=%f f%f fi in n“,“,p p,q q););return 0;return 0;现在学习的是第13页,共40页switch 分支语法 计算过程计算过程计算过程计算过程 先计算表达式的值先计算表达式的值先计算表达式的值先计算表达式的值 依次与一组常量比较依次与一组常量比较依次与一组常量比较依次与一组常量比较 若相同则执行该分支若相同则执行该分支若相同则执行该分支若相同则执行该分支 否则转向否则转向否则转向否则转向defaultdefau
21、ltdefaultdefault分支分支分支分支 退出退出退出退出switchswitchswitchswitch语句语句语句语句 说明说明说明说明 switchswitchswitchswitch后面的表达式必须为整型、字符型或枚举型后面的表达式必须为整型、字符型或枚举型后面的表达式必须为整型、字符型或枚举型后面的表达式必须为整型、字符型或枚举型 casecasecasecase后面必须为常量表达式,则各个后面必须为常量表达式,则各个后面必须为常量表达式,则各个后面必须为常量表达式,则各个casecasecasecase值必须不同值必须不同值必须不同值必须不同 如果没有如果没有如果没有如果没
22、有defaultdefaultdefaultdefault子句,且没有子句,且没有子句,且没有子句,且没有casecasecasecase子句匹配,则不执行子句匹配,则不执行子句匹配,则不执行子句匹配,则不执行 casecasecasecase分支中的语句可以有多条,不需要花括号分支中的语句可以有多条,不需要花括号分支中的语句可以有多条,不需要花括号分支中的语句可以有多条,不需要花括号switch(switch(表达式表达式表达式表达式)case case 常量表达式常量表达式常量表达式常量表达式1:1:语句组语句组语句组语句组1 1 case case 常量表达式常量表达式常量表达式常量表达
23、式2:2:语句组语句组语句组语句组2 2 case case 常量表达式常量表达式常量表达式常量表达式n n:语句组语句组语句组语句组n n default:default:语句组语句组语句组语句组 现在学习的是第14页,共40页switch 分支流程图现在学习的是第15页,共40页switch 分支示例一根据输入的成绩等级,打印相应分数段根据输入的成绩等级,打印相应分数段#include#include int int mainmain()()char char gradegrade;printfprintf(“Input the grade(A,B,C,D,E):“);(“Input th
24、e grade(A,B,C,D,E):“);scanfscanf(“%(“%c c“,&“,&gradegrade););switch(switch(grade grade)case A:case A:printfprintf(“90-100(“90-100n n“);“);breakbreak;case B:case B:printfprintf(“80-89(“80-89n n“);“);breakbreak;case C:case C:printfprintf(“70-79(“70-79n n“);“);breakbreak;case D:case D:printfprintf(“60-
25、69(“60-69n n“);“);breakbreak;case E:case E:printfprintf(“0-59(“0-59n n“);“);breakbreak;default:default:printfprintf(“Error(“Errorn n“);“);return 0;return 0;现在学习的是第16页,共40页switch 分支示例一根据输入的成绩等级,打印相应分数段根据输入的成绩等级,打印相应分数段#include#include int int mainmain()()char char gradegrade;printfprintf(“Input the g
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序控制 结构 优秀 PPT
限制150内