选择结构程序设计

上传人:宝路 文档编号:49543124 上传时间:2018-07-30 格式:PPT 页数:28 大小:297.97KB
返回 下载 相关 举报
选择结构程序设计_第1页
第1页 / 共28页
选择结构程序设计_第2页
第2页 / 共28页
选择结构程序设计_第3页
第3页 / 共28页
选择结构程序设计_第4页
第4页 / 共28页
选择结构程序设计_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《选择结构程序设计》由会员分享,可在线阅读,更多相关《选择结构程序设计(28页珍藏版)》请在金锄头文库上搜索。

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

2、ini 提出N-S结构化流程图表示 1973年,美国学者I.Nassi 和 B.Shneiderman 提 出伪代码表示 起止框输入框判断框处理框流程线 连接点注释框*6B BA ANS图传统流程图顺序结构B BA A*7B BN如果如果 成绩 yx + 1= xAAx 6YBB结束传统流程图传统流程图打印 y*12图6!算法可以用 N-S 图表示如下:1 =x 2 =yx * y =yx + 1 =x直到 x6打印 y初始化部分循环部分输出部分*13复合语句括住的若干条语句构成一个语句块,称为复合 语句语句块内可以定义变量 变量仅在定义它的复合语句内有效 变量必须在复合语句的开头定义复合语句

3、可以用在任何可以使用语句的地方*14if-else选择结构的一种最常用形式if (表达式) 语句1; else 语句2; 语句3表达式值非0时,执行语句1,然后语句3; 表达式值为0时,执行语句2,然后语句3 语句语句1 1; ; 语句语句2 2; ; *15if-elseelse部分可以没有if (表达式) 语句1; 语句3if-else嵌套使用时,注意else和谁配对的问题当表达式值为0时,直接执行语句3 语句语句1 1; ; *16例4.4 :年龄判断 #include main() int yourAge, hisAge;printf(“Please enter your age:“)

4、; scanf(“%d“, /*输入你的年龄yourAge*/printf(“Please enter your friends age:“); scanf(“%d“, /*输入你朋友的年龄hisAge*/if (yourAge = hisAge) printf(“You are older! Your age is = %dn“, yourAge); else printf(“Your friend is older!His age is=%dn“,hisAge); *17条件表达式 含义: 如果表达式1的值非 0(为真),则该条件 表达式的结果就是表达 式2的值 否则,是表达式3的 值 表

5、达式3N表达式2Y 表达式1表达式表达式1 ? 1 ? 表达式表达式2 : 2 : 表达式表达式3 3*18例4.4 :年龄判断#include main() int yourAge, hisAge;printf(“Please enter your age:“); scanf(“%d“, /*输入你的年龄yourAge*/printf(“Please enter your friends age:“); scanf(“%d“, /*输入你朋友的年龄hisAge*/max = (yourAge = hisAge) ? yourAge : hisAge; printf(“The older ag

6、e is = %dn“, max); *19else-ifif的一种扩展形式相当于else分支嵌套if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; else 语句4; 语句5;表达式1 语句1 语句2 语句3 语句4表达式2表达式3图4-9 多分支选择结构语句语句1;1;语句语句2;2;语句语句3;3;语句语句4;4;*20例4.5 :体型判断按“体指数”对肥胖程度进行划分:体指数t = w / h2 (体重w单位为公斤,身高h单位为米) 当t main() float h, w, t;printf(“Please enter h,w

7、:“); scanf(“%f, %f“, t = w / (h * h); if (t = 18 当当t main() float h, w, t;printf(“Please enter h,w:“); scanf(“%f, %f“, t = w / (h * h);if (t main() float h, w, t;printf(“Please enter h,w:“); scanf(“%f, %f“, t = w / (h * h);if (t 18) printf(“t=%ftLower weight!n“, t); else if (t 25) printf(“t=%ftStand

8、ard weight!n“, t); else if (t 27) printf(“t=%ftHigher weight!n“, t); else printf(“t=%ftToo fat!n“, t); 当当t 18t 18时,为低体重;时,为低体重; 当当18 t 2518 t 25时,为正常体重;时,为正常体重; 当当25 t 2725 t 27时,为超重体重;时,为超重体重; 当当t 27t 27时,为肥胖。时,为肥胖。18 25 2718 25 27*24switch多路选择switch (表达式) case 常数1:语句序列1; case 常数2:语句序列2; default:语句

9、序列3; default可以没有,但最好不省略不要忘记break语句序列语句序列1;1;语句序列语句序列2;2;语句序列语句序列n;n;*25例4.8:计算器程序编程设计一个简单的计算器程序,要求根据用户 从键盘输入如下形式的表达式:操作数1 运算符op 操作数2然后,计算并输出表达式的值指定的运算符为加(+)减(-)乘(*)除(/) *26main() int data1, data2; /*定义两个操作符*/ char op; /*定义运算符*/printf(“Please enter the expression:“); scanf(“%d%c%d“, /*输入运算表达式*/switch

10、 (op) case +: /*处理加法*/ printf(“%d + %d = %dn“, data1, data2, data1 + data2); break; case -: /*处理减法*/ printf(“%d - %d = %dn“, data1, data2, data1 - data2); break; case *: /*处理乘法*/ printf(“%d * %d = %dn“, data1, data2, data1 * data2); break; case /: /*处理除法*/ if (0 = data2)printf(“Division by zero!n“);

11、 else printf(“%d/%d = %dn“, data1, data2, data1/data2); break; default: printf(“Unknown operator! n“); 例4.8*27思考题语句 if (0 = data2)的必要性 1998年11月科学美国人杂志,描述了美国导弹 巡洋舰约克敦号上的一起事故,除零错导致军舰推进系 统的关闭 如果要求程序能进行浮点数的算术运算,语句 if (0 = data2)还能用于比较实型变量data2和常 数0的大小吗? if (fabs(data2) = 1e-7)如果要求输入的算术表达式中的操作数和运算符之 间可以加入任意多个空格符,那么程序如何修改? scanf(“%d%c%d“, scanf(“%d%1s%d“, 取绝对取绝对 值函数值函数*28这一章我们学习了算法的描述方法 流程图与基本控制结构相应的结构化的控制语句 if-else switch

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

当前位置:首页 > 中学教育 > 教学课件

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