{流程管理流程再造}程序和流程控制编程及应用讲义

上传人:精****库 文档编号:140723563 上传时间:2020-08-01 格式:PPTX 页数:97 大小:631.47KB
返回 下载 相关 举报
{流程管理流程再造}程序和流程控制编程及应用讲义_第1页
第1页 / 共97页
{流程管理流程再造}程序和流程控制编程及应用讲义_第2页
第2页 / 共97页
{流程管理流程再造}程序和流程控制编程及应用讲义_第3页
第3页 / 共97页
{流程管理流程再造}程序和流程控制编程及应用讲义_第4页
第4页 / 共97页
{流程管理流程再造}程序和流程控制编程及应用讲义_第5页
第5页 / 共97页
点击查看更多>>
资源描述

《{流程管理流程再造}程序和流程控制编程及应用讲义》由会员分享,可在线阅读,更多相关《{流程管理流程再造}程序和流程控制编程及应用讲义(97页珍藏版)》请在金锄头文库上搜索。

1、第1、2章回顾,C程序结构: C程序由main函数和若干个其他子函数(标准函数和自定义函数等)构成。函数包括函数头和函数体,C程序语句以分号作为结束标志。 语法单位(单词):关键字、标识符、分隔符、常量、变量、运算符。 数据类型的规定以及表达式运算规则。 输入输出函数getchar,putchar,scanf,printf的使用。,第3章 程序和流程控制,3.1 C语言程序的版式及语句 3.2 结构化程序设计和流程控制 3.3 if语句 3.4 switch多分支选择语句 3.5 循环控制 3.6 辅助控制语句 3.7 典型程序编写方法举例 3.8 小结,C语言流程控制语句,3.1 C语言程序

2、的版式及语句,3.1.1 C语言程序的版式 3.1.2 C语言的语句,例3.1 /* 求二整数之和的程序 */ #include /预处理 void main( ) /函数定义 int a,b; /变量说明 int sum; scanf(%d%d, /信息输出 该程序的运行结果为: 7 8 /输入 sum=15,3.1.1 C语言程序的版式特征,程序设计 主要任务 输入 处理 输出,编写C语言程序一般应包含如下几个部分 (1)注释部分:格式为*注释内容*或/注释内容;在函数的最上端,一般都应有一段注释信息,主要说明函数的功能,输入、输出及其限制;如是商品软件还应包含版权信息,在程序的其他部分也

3、可加注释。编程者要养成一边编程序、一边加注释的习惯。一般长段的注释用*注释内容*形式,短段的注释用/注释内容形式。 (2)预处理块、全局变量说明等。(参见后面章节) (3)函数定义部分,包括函数类型,函数名及参数表,由于只有一个函数故取名main(),由于无返回值故类型为void,无参数输入时,main()内参数表为空。 (4)变量说明部分,对所用的变量进行说明; (5)数据输入部分,对要使用的变量赋初值,可直接或间接输入,有些是在第(4)部分完成(即变量直接初始化); (6)执行部分,它是整个程序的核心,一般是对程序算法用结构化程序设计方法进行描述,然后将其转化成对应的C语言语句; (7)信

4、息输出部分,根据要求输出所求的信息或返回结果;有些是在第(6)部分一边执行一边输出。,如上述程序的执行部分采用函数调用则上述程序应为 例3.2 /* 求二整数之和的程序 */ #include /预处理 int add(int x,int y); /函数声明 void main( ) /函数定义 int a,b; /变量说明 int sum; scanf(%d%d, /信息输出 ,/*求和函数,输入参数为二整数,返回值为其和*/ int add(int x, int y) /函数定义 int z; / 变量说明 z = x + y; /执行部分 return z; /返回结果 输入: 7 8

5、该程序的运行结果为: sum=15,语句是C语言程序的基本元素,语句以分号为结束标志。程序中的各函数模块都是由一定含义的语句组成的。 例: char ch =H;/*分号为语句结束标志*/ int y= 7 ; c=a+b; printf( “hello !”) ; 语句的分类: 说明语句 用来对程序中所使用的各种类型变量及属性进行说明,按其所起作用有时也称为定义语句。 执行语句 包括表达式语句、流程控制语句、函数调用语句等完成一定运算操作功能的语句。,3.1.2 C语言的语句,说明语句 用来对程序中所使用的各种类型变量进行说明,也称为定义语句。 说明语句的格式: 数据类型 变量名列表; 例:

6、 int i, j ; /说明了两个整型变量i和j 说明语句同时也可以进行初始化赋值,如: char ch =H; unsigned long y = 0 x35847412 ; 执行语句中所使用的每一个变量都必须在此前说明过。,2. 执行语句。一般包含四大类: 表达式语句(包括空语句) 复合语句 流程控制语句 辅助控制语句 (1)表达式语句 任何一个表达式加上一个分号就是一条表达式语句; /表达式语句,通常是赋值表达式或函数调用表达式。 例: c=a+b; sum = add( a , b) ; /赋值语句 printf( “hello !”) ; /函数调用语句 ; /空语句,(2)复合语

7、句 将若干语句用一对大括号 括起来就构成了复合语句。复合语句的一般格式为: 说明语句; 可执行语句; 复合语句在程序结构上是以整体出现,相当于程序块(BLOCK),当一个功能必须用多条语句才能完成时,就需要使用复合语句。 采用 可以清晰地表达程序的层次结构。,3.2 结构化程序设计和流程控制,3.2.1 结构化程序设计 3.2.2 C语言的流程控制语句和辅助控制语句,3.2.1 结构化程序设计,结构化程序设计的基本思想,任何程序都可以用三种基本结构表示: 顺序结构 选择结构 循环结构。 采用这三种基本结构编写程序的设计风格称为结构化程序设计。,图3.1顺序结构示意图,顺序结构: 按语句顺序依次

8、执行。,/通过语句书写顺序自然实现 int a,b; /变量说明 int sum; scanf(“%d%d”, /输出,选择结构 根据条件选择两支或多支程序中的一支执行。,图3.2选择结构示意图,由两分支选择结构可以派生出另一种基本结构,多分支选择结构。,/if,switch语句,选择运算符实现 if(a=0) printf(come in !); else printf(go away!); ,循环结构 在判断条件成立的情况下,反复执行某个程序段。,图3.3循环结构示意图,/while,do while以及 / for语句来实现 while ( i = 100) sum = sum + i

9、; i +; ,3.2.2 C语言的流程控制语句和辅助控制语句,3.3 条件选择语句:if语句,if条件选择语句的三种形式 双路分支 选择执行语句 ifelse 单路分支选择执行语句 if 多路分支 选择执行语句 if else ifelse.,1 if语句的标准形式 ifelse双路分支,例: if(a= =b ) mark+; printf(“you are right !); else printf(“you are wrong!); ,注意:对于某分支包含多行语句时,必须采用括起来构成复合语句形式,初学者书写程序时尤其要注意此问题。,例a: if(a= =b) n+; printf(

10、you are right!); else mark-; printf( you are wrong!);,易犯错误!,Sample-3-1.c,对于分支只有单行语句则可以不用 . 如: if(a=90,2 if单路分支形式(选择性执行语该分支),scanf(“%f”,在C语言程序中,还常用如下书写形式: if(x) 等价于 if(x!=0) if(!x) 等价于 if(x=0) 如变量x为float或double实型变量,则与0比较的if语句建议如下: if (fabs(x)= 1e-6 ),图3.7 多路分支if语句,if (表达式1) 语句1; else if (表达式2) 语句2 el

11、se if (表达式n) 语句n else 语句n+1,算法1: ; float i; /定义i表示学生成绩, char grade; /grade表示等级。 scanf(“%f”,例3.3 给某班学生的一次考试成绩分等级. 90分以上的为A,70分到90分之间的为B,60分到70分之间的为C,60分以下的得D。,Sample-3-3-1.c,算法2: ; float i; /定义i表示学生成绩, char grade; /grade表示等级。 scanf(“%f”,例3.3 给某班学生的一次考试成绩分等级. 90分以上的为A,70分到90分之间的为B,60分到70分之间的为C,60分以下的得

12、D。,例:小灵通服务语音提示内部程序处理流程: 话费查询请按,小灵通充值请按,挂失请按。,; printf(“话费查询请按,小灵通充值请按,挂失请按”); scanf(“%d”, if (i=1) 话费查询处理 else if (i=2) 小灵通充值处理 else if (i=3) 挂失处理 else 输入错误提示及处理 ,多分支语句的应用:,小灵通充值服务内部处理流程,printf(“话费查询请按,小灵通充值请按,挂失请按”); scanf(“%d”, if(a=1) 为本机充值操作 else if(a=2) 为其他小灵通充值操作处理 else 回到上一级指令 ,条件语句嵌套的应用:,VC6

13、 调试程序方法,程序编写时静态测试; 直接运行检查结果是否正确; 单步调试功能 F10; 调试程序 F5 , 退出调试状态shift+F5; 设置断点(取消断点) F9; 调试过程中,通过variable窗口查看变量值,3.3 条件选择语句:if语句,if条件选择语句的三种形式 双路分支 选择执行语句 ifelse 单路分支选择执行语句 if 多路分支 选择执行语句 if else ifelse.,图3.7 多路分支if语句,if (表达式1) 语句1; else if (表达式2) 语句2 else if (表达式n) 语句n else 语句n+1,算法1: ; float i; /定义i表

14、示学生成绩, char grade; /grade表示等级。 scanf(“%f”,例3.3 给某班学生的一次考试成绩分等级. 90分以上的为A,70分到90分之间的为B,60分到70分之间的为C,60分以下的得D。,Sample-3-3-1.c,例3.4 求一元二次方程 ax2+bx+c=0的根,实系数a,b,c从终端输入。 算法分析: 先判断输入的系数是否满足方程是二次方程,判断a是否为0。接着应考虑两个不同实根,相同实根,和复根三种情况讨论: 当b2-4ac0时,有两个不同的实根,其中x1,x2为其两个根; 当b2-4ac0时,有两个相同的实根,其中x1,x2为其两个等根; 当b2-4a

15、c0时,有两个共轭的虚根;我们把虚根的实部x3和虚部x4分成两部份分开计算,后来再组合在一起。,程序如下: #include #include void main( ) float a,b,c; float x1,x2; float x3,x4; printf(input numbers: a ,b ,c:); scanf(%f%f%f, else if ( b*b 4*a*c), x1 = (-b+sqrt(b*b-4*a*c)/(2*a); x2 = (-b-sqrt(b*b-4*a*c)/(2*a); printf(x1=%.2f,x2=%.2fn,x1,x2); else if ( b*b = 4*a*c) x1 = x2 = (-b+sqrt(b*b-4*a*c)/(2*a); printf(x1=x2=%.2fn,x1);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 企业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号