语言程序设计任务教程_教学课件_丁辉 王林林 任务六 编写选择结构类程序

上传人:bin****86 文档编号:57918950 上传时间:2018-10-25 格式:PPTX 页数:47 大小:265.39KB
返回 下载 相关 举报
语言程序设计任务教程_教学课件_丁辉 王林林 任务六 编写选择结构类程序_第1页
第1页 / 共47页
语言程序设计任务教程_教学课件_丁辉 王林林 任务六 编写选择结构类程序_第2页
第2页 / 共47页
语言程序设计任务教程_教学课件_丁辉 王林林 任务六 编写选择结构类程序_第3页
第3页 / 共47页
语言程序设计任务教程_教学课件_丁辉 王林林 任务六 编写选择结构类程序_第4页
第4页 / 共47页
语言程序设计任务教程_教学课件_丁辉 王林林 任务六 编写选择结构类程序_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《语言程序设计任务教程_教学课件_丁辉 王林林 任务六 编写选择结构类程序》由会员分享,可在线阅读,更多相关《语言程序设计任务教程_教学课件_丁辉 王林林 任务六 编写选择结构类程序(47页珍藏版)》请在金锄头文库上搜索。

1、Mission 6,編寫選擇結構類程序,日常生活中,往往会根据当前的具体情况,通过决策选择某种方案。程序设计也是一样的,有时候需要根据条件编写不同的处理程序,实现用户的需求。本任务就是要能根据条件编写选择结构程序。,任務內容,任務目標,進入任務,熟悉常用数学函数的调用; 熟悉关系运算符及关系表达式; 掌握if和switch语句。,知識目標,返回,会编写选择结构程序; 熟练运用单步和添加观察变量方法调试程序。,專業能力目標,返回,能自主地进行拓展阅读内容的学习; 能与同学共同讨论解决问题。,方法和社會能力目標,建議完成時間:8(課內)+8(課外) 任務完成形勢:學習小結、程序及程序調試記錄,返回

2、,任務六 编写选择结构类程序,求两个整数中的大数案例,任務準備(1),一个规范的C语言程序示例,任務準備(1),/*求两个数中的大数*/ /*程序名:compare.c*/ /*编程者:dinghhui*/ /*日期:2009-11-29*/#include #include /* 比较两个整数的大小,将大的数返回*/ int max_1(int,int);int main(void) /*定义变量*/int iNum_1,iNum_2,imax_1;,一个规范的C语言程序示例,任務準備(1),/*清屏*/system(“cls”);/*输入要比较的两个整数*/printf(“Please i

3、nput two integers:n”); scanf(“%d%d”, ,一个规范的C语言程序示例,任務準備(1),int max_1(int iNum_1,int iNum_2) int iMax_1_1;if(iNum_1iNum_2) iMax_1_1= iNum_1; else iMax_1_1= iNum_2;return(iMax_1_1);,ifelse语句,任務準備(2),1、ifelse语句的基本格式 if(表达式) 语句组A; else 语句组B; 注:所有格式中凡是用“ ”括起来的部分是可选部分,即可根据编程需要进行选择。,任務準備(2),2、ifelse语句的执行过程

4、计算if后的表达式;如果表达式的值为非0(真),则执行语句组A;如果表达式的值为0(假),则执行语句组B。当else部分省略时,表达式的值为0(假)时,什么也不做;不管执行哪一组语句,程序接着执行ifelse语句的下一条语句。,ifelse语句,任務準備(2),3、ifelse语句执行过程图解,ifelse语句,任务准备(5),任務準備(3),关系表达式,关系运算符 是用于进行两个对象大小的比较,决定其关系的。C语言中定义的关系运算符有:“、=、=、3的值为非0,也就是“真”;55的值为0,即假;而5=5的值为非0,即为真。,任务准备(6),任務準備(4),复合语句,用“”括起来的多条语句称为

5、复合语句。复合语句逻辑上可理解为一条语句,或者是一个不可分割的整体。,任务准备(7),任務準備(5),案例程序分析,max_1()函数中ifelse语句的执行过程 if(iNum_1iNum_2) iMax_1_1=iNum_1; else iMax_1_1=iNum_2;先计算关系表达式“iNum_1iNum_2”的值,如果iNum_1大于iNum_2,则表达式的值为非0,即真;反之为0,即假; 如果表达式的值为非0,则将iNum_1的值赋给变量iMax_1_1,即执行“iMax_1_1=iNum_1;”语句,否则执行“iMax_1_1=iNum_2;”语句; 不管执行“iMax_1_1=i

6、Num_1;”还是执行“iMax_1_1=iNum_2;”分支,最后都接着执行ifelse其后的语句“return(iMax_1_1);”,返回iMax_1_1变量的值即两个整数中的大数。,任务准备(8),任務準備(5),案例程序分析,讨论下述输入的执行过程: (1)67和34 (2)63和74,任务准备(9),任務準備(6),应用举例(一),【例1-6-1】用省略else部分的if语句改写前述案例。,int max_1(int iNum_1,int iNum_2) int iMax_1_1;iMax_1_1=iNum_2; if(iNum_1iNum_2) iMax_1_1= iNum_1;

7、return(iMax_1_1); ,任务准备(10),任務準備(6),应用举例(一),【例1-6-2】请编程输入学生成绩,并且根据成绩判断其是否通过考试。要求:如果成绩大于等于60,则输出“passed”,否则输出“failed”。,设计分析 用程序设计的三步曲分析如下: 输入数据:本例仅要求输入一个学生的成绩,根据实际情况,成绩一般是实数,所以需要定义一个实型变量,存放输入的分数。 输出数据:根据题目要求,只要输出“passed”或“failed”字符串,可以直接进行输出,因此不需要定义相关的变量。 处理过程:先输入一个成绩,然后判断是否大于等于60,如果是,则输出“passed”,则否输

8、出“failed”。,任务准备(11),任務準備(6),应用举例(一),算法描述(流程图),一个规范的C语言程序示例,任務準備(1),程序 /*判断一个学生的考试成绩是否合格*/ /*程序名称:decide.c*/ /*作者:dinghui*/ /*编程日期:2009-11-29*/#include #include int main(void) /*定义变量*/ float fScore;system(“cls”);,/*输入分数*/ scanf(“%f”, ,任务准备(13),任務準備(7),应用举例(二),请编程将100分制成绩转换为五级等级制成绩。转换规则 :100分制的成绩转换A、B

9、、C、D、E五级等级制的成绩,90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。,任务准备(13),任務準備(7),应用举例(二),ifelse语句的嵌套格式之一,if(条件A) 语句组A; else if(条件B) 语句组B; else if(条件C) 语句组C; else 语句组n+1; ,注:if与else成对的原则:最近原则。,任务准备(14),任務準備(7),应用举例(二),嵌套ifelse语句的执行过程 计算条件A的值,如果其值为非0,则执行语句组A,执行完语句组A后,程序转if的下一条语句; 如果条件A的值为0,则计算条件B,如果为非0,执行语句组B

10、,执行完语句组B后,程序转if的下一条语句; 依次类推,直到所有条件的值都为0,则执行语句组n+1。,任务准备(15),任務準備(7),应用举例(二),嵌套ifelse语句的执行过程图解,任务准备(16),任務準備(7),应用举例(二),案例部分流程图,任务准备(17),任務準備(7),应用举例(二),输入75时的执行示例,任务准备(18),任務準備(8),switch语句,switch语句格式 switch(表达式) case 常量1:语句组1 ;break;case 常量2:语句组2;break;case 常量3:语句组3 ;break;case 常量n:语句组n;break;defaul

11、t :语句组n+1; ,常量:指在程序的执行过程中其值不变量的量。如整型常量56,-123,实型常量5.67,-0.98,3.2e+6,字符常量w,2,M。,break语句,没有参数,其作用是结束switch语句的执行,使程序转到switch语句的下一条语句执行。,任务准备(19),任務準備(8),switch语句,switch语句执行过程 计算switch后表达式的值。注意,switch语句要求表达式的值为整型或字符型。C语言中的字符是指以单引号“”括起来的单个字符,如a,A,1等。 根据表达式的值,从上到下依次判断表达式的值是否与case后的某个常量匹配(相同),程序将从最先相匹配的cas

12、e后的语句组入口开始执行程序,直到遇到break语句为止,如果没有break语句,则从入口处一直执行程序至switch语句外层的“”止。 如果没有一个常量与表达式的值相匹配时,如有default语句,则从default后入口开始执行,直到遇到break语句或switch语句外层的“”止;如果没有default语句,则结束switch语句。,一个规范的C语言程序示例,任務準備(1),用switch改写程序 /*100分制转换为五级等级制分数*/ /*程序名称:100-five1.c*/ /*作者:dinghui*/ /*编程日期:2009-11-29*/#include #include int

13、 main(void) float fScore;system(“cls”); scanf(“%f”,一个规范的C语言程序示例,任務準備(1),switch(int)(fScore)/10 ) case 10: case 9: printf(“A”);break;case 8: printf(“B”);break;case 7:printf(“C”);break; case 6:printf(“D”);break; default : printf(“E”);,用switch语句改写的关键是switch后表达式的确定,及case后常量的确定,本例将fScore的值取整,然后利用两个整数相除结果

14、仍为整数这一规则,使表达式的值为整数,范围在010之间。常量10和9说明fScore的值在90分以上,所以当fScore的值在90分以上时,将会从case 10:或case 9 处找到入口,从而输出字符“A”,然后运行break;语句,结束switch语句的执行。,任务准备(20),任務準備(7),应用举例(三),【例1-6-3】分别用嵌套ifelse语句和switch语句编程为某运输公司计算运费。路程(s)赿远,每公里的运费赿低。标准如下: s=2000,20%折扣 假设每公里每吨货物的基本运费为p,货物重量为w,距离为s,折扣率为d,则总运费f的计算公式为:f=p*w*s*(1-d),任务

15、准备(21),任務準備(7),应用举例(三),设计分析 如果用嵌套ifelse语句来实现,可以按题目的要求使用条件递进,第一个条件是s500,第二个条件是s1000,第三个条件是s1500,依次递进。选择相应的折扣后,用f=p*w*s*(1-d)公式计算运算。 输入数据:基本运费、里程、重量、折扣四个值,定义为实型。 输出数据:需要支付的运费,定义为实型。 处理过程: 输入基本运费、里程和重量; 根据里程,决定采用不同的折扣; 利用公式计算最后的运费; 输出结果。,任务准备(22),任務準備(7),应用举例(三),算法,一个规范的C语言程序示例,任務準備(1),程序(if语句) /*运费计算程

16、序*/ /*程序名称:fee-if.c*/ /*作者:dinghui*/ /*编程日期:2009-11-29*/#include #include int main(void) float fBase,fWeight,fDistance,fFee,fDiscount;/*定义变量*/system(“cls”); scanf(“%f”, /* 输入运输距离;*/,一个规范的C语言程序示例,任務準備(1),if(fDistance500) fDiscount=0; else if(fDistance1000)fDiscount=0.05; else if(fDistance1500)fDiscount=0.1; else if(fDistance2000)fDiscount=0.15; else fDiscount=0.2;fFee=fBase*fWeight*fDistance*(1-fDiscount); printf(“weight=%f,distance=%f,fee=%fn”, fWeight, fDistance, fFee); return(0); ,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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