第4章选择结构程序设计.ppt

上传人:本田雅阁 文档编号:2256651 上传时间:2019-03-11 格式:PPT 页数:28 大小:297.01KB
返回 下载 相关 举报
第4章选择结构程序设计.ppt_第1页
第1页 / 共28页
第4章选择结构程序设计.ppt_第2页
第2页 / 共28页
第4章选择结构程序设计.ppt_第3页
第3页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4章选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第4章选择结构程序设计.ppt(28页珍藏版)》请在三一文库上搜索。

1、第4章 选择结构程序设计,内容提要,算法的描述方法 基本控制结构 基本控制语句 常用算法,如累加、累乘、统计、递推、迭代、穷举等 结构化程序设计的基本思想,算法的概念,数据结构 + 算法 = 程序 只对面向过程的语言(C)成立 面向对象程序 = 对象 + 消息 算法: 为解决一个具体问题而采取的确定的有限的操作步骤,仅指计算机能执行的算法,算法的特性,有穷性 在合理的时间内完成 确定性,无歧义 如果x0,则输出Yes;如果x0,则输出No; 有效性 能有效执行 负数开平方 没有输入或有多个输入 有一个或多个输出,算法的表示方法,自然语言表示 传统的流程图表示 在1966年,Bohra 与 Ja

2、copini 提出 N-S结构化流程图表示 1973年,美国学者I.Nassi 和 B.Shneiderman 提出 伪代码表示,起止框,输入框,判断框,处理框,流程线,连接点,注释框,B,A,NS图,传统流程图,顺序结构,B,A,B,N,如果 成绩60 那么 通知补考 否则 告知你考试成绩,A,Y,条 件P,分支结构(选择结构),当型循环,循环结构,A,当P成立,直到型循环,循环结构,A,直到P为假,A,条 件P,A,当型循环,直到型循环,真,假,假,条 件P,假,真,循环结构,流程图,6!算法可以用流程图表示如下:,开始,x = 1,y = 2,x*y= y,x + 1= x,A,A,x

3、6,Y,B,B,结束,传统流程图,打印 y,图,6!算法可以用 N-S 图表示如下:,1 =x,2 =y,x * y =y,x + 1 =x,直到 x6,打印 y,初始化部分,循环部分,输出部分,复合语句,括住的若干条语句构成一个语句块,称为复合语句 语句块内可以定义变量 变量仅在定义它的复合语句内有效 变量必须在复合语句的开头定义 复合语句可以用在任何可以使用语句的地方,if-else,选择结构的一种最常用形式 if (表达式) 语句1; else 语句2; 语句3,表达式值非0时,执行语句1,然后语句3; 表达式值为0时,执行语句2,然后语句3,if-else,else部分可以没有 if

4、(表达式) 语句1; 语句3 if-else嵌套使用时,注意else和谁配对的问题,当表达式值为0时,直接执行语句3,例4.4 :年龄判断,#include main() int yourAge, hisAge; printf(“Please enter your age:“); scanf(“%d“, ,条件表达式,含义: 如果表达式1的值非0(为真),则该条件表达式的结果就是表达式2的值 否则,是表达式3的值,表达式3,N,表达式2,Y,表达式1,例4.4 :年龄判断,#include main() int yourAge, hisAge; printf(“Please enter you

5、r age:“); scanf(“%d“, ,else-if,if的一种扩展形式相当于else分支嵌套 if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; else 语句4; 语句5;,例4.5 :体型判断,按“体指数”对肥胖程度进行划分: 体指数t = w / h2 (体重w单位为公斤,身高h单位为米) 当t 18时,为低体重; 当18 t 25时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。 编程从键盘输入你的身高h和体重w,根据给定公式计算体指数t,然后判断你的体重属于何种类型。 用3种方法编程: 算法1

6、:用不带else子句的if语句编程 算法2:用在if子句中嵌入if 语句的形式编程 算法3:用在else子句中嵌入if 语句的形式编程,例4.5 用不带else子句的if语句编程,#include main() float h, w, t; printf(“Please enter h,w:“); scanf(“%f, %f“, ,当t 18时,为低体重; 当18 t 25时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。,例4.5 用在if子句中嵌入if 语句的形式编程,#include main() float h, w, t; printf(“Please ent

7、er h,w:“); scanf(“%f, %f“, ,18 25 27,当t 18时,为低体重; 当18 t 25时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。,例4.5 用在else子句中嵌入if语句的形式编程,#include main() float h, w, t; printf(“Please enter h,w:“); scanf(“%f, %f“, ,当t 18时,为低体重; 当18 t 25时,为正常体重; 当25 t 27时,为超重体重; 当t 27时,为肥胖。,18 25 27,switch,多路选择 switch (表达式) case 常数1

8、: 语句序列1; case 常数2: 语句序列2; default: 语句序列3; default可以没有,但最好不省略 不要忘记break,例4.8:计算器程序,编程设计一个简单的计算器程序,要求根据用户从键盘输入如下形式的表达式: 操作数1 运算符op 操作数2 然后,计算并输出表达式的值 指定的运算符为 加(+) 减(-) 乘(*) 除(/),main() int data1, data2; /*定义两个操作符*/ char op; /*定义运算符*/ printf(“Please enter the expression:“); scanf(“%d%c%d“, ,例4.8,思考题,语句 if (0 = data2)的必要性 1998年11月科学美国人杂志,描述了美国导弹巡洋舰约克敦号上的一起事故,除零错导致军舰推进系统的关闭 如果要求程序能进行浮点数的算术运算,语句 if (0 = data2)还能用于比较实型变量data2和常数0的大小吗? if (fabs(data2) = 1e-7) 如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空格符,那么程序如何修改? scanf(“%d%c%d“, ,取绝对值函数,这一章我们学习了,算法的描述方法 流程图 与基本控制结构相应的结构化的控制语句 if-else switch,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1