第4章选择结构程序设计 第一课: 教学内容 学习选择结构程序设计方法, if-else语 句 教学目标: 掌握选择结构程序的流程图的画法,并 会用 if-else语句实现C语言程序 教学重点: i语句中ilse的匹配关系,i语句的 嵌套
第4章 选择结构程序设计 第一课: 一、教学内容: 学习选择结构程序设计方法,if—else语 句。 二、教学目标: 掌握选择结构程序的流程图的画法,并 会用if—else语句实现C语言程序。 三、教学重点: if语句中if—else的匹配关系,if语句的 嵌套
(一)i语句 1、i语句的简单形式 f(表达式) 语句 2、i语句的标准形式 f(表达式 句1 else 语句2 句的执行过程:先判断或计算表达式的值,若结果为 “真”(非0),则执行语句1,否则执行语句2
1、if语句的简单形式 if(表达式) 语句 2、if语句的标准形式 if(表达式) 语句1 else 语句2 语句的执行过程:先判断或计算表达式的值,若结果为 “真”(非0),则执行语句1,否则执行语句2。 (一) if语句
输入任意三个整数numl、num2、num3,求三个数 中的最大值。 main( fint numl, num2, num3, max; printf("Please input three numbers scanf( %od, %od, %od",&numl, &num2, &numb) if (numI>num2 maxmum maxenum2 if(num>max max-num3 printf("The three numbers are: %d%d%d\n"numl num2. num3 printf("max-%odn", max)
例:输入任意三个整数num1、num2、num3,求三个数 中的最大值。 main() {int num1,num2,num3,max; printf("Please input three numbers:"); scanf("%d,%d,%d",&num1,&num2,&num3); if (num1>num2) max=num1; else max=num2; if (num3>max) max=num3; printf("The three numbers are:%d,%d,%d\n",num1,num2,num3); printf("max=%d\n",max); }
程序运行情况如下: Please input three numbers: 11, 22, 18K The three numbers are: 11.22.18 max-22 本例中的第1个证语句,可优化为如下不带else子句的 形式: max=numl if(num2>max)max-num2 这种优化形式的基本思想是:首先取一个数预置为 max(最大值),然后再用max依次与其余的数逐个比较 如果发现有比max大的,就用它给max重新赋值,比较完 所有的数后,max中的数就是最大值。这种方法,对从3 或3个以上的数中找最大值的处理,非常有效。请同学 ]仔细体会
程序运行情况如下: Please input three numbers:11,22,18↙ The three numbers are:11,22,18 max=22 本例中的第1个if语句,可优化为如下不带else子句的 形式: max=num1; if(num2>max) max=num2; 这种优化形式的基本思想是:首先取一个数预置为 max(最大值),然后再用max依次与其余的数逐个比较, 如果发现有比max大的,就用它给max重新赋值,比较完 所有的数后,max中的数就是最大值。这种方法,对从3 个或3个以上的数中找最大值的处理,非常有效。请同学 们仔细体会
例:输入任意三个数numl、num2、num3,按从小到大 的顺序排序输出。 main( fint numI, num2, numb, temp: printf( Please input three numbers. ) scanf(%od, %od, %od,&numl, &num2, &num3) if(numI>num2)(temp=numI; numl=num2 num2=temp;) if (num2>num) temp=num2; num2=numb, num3-=temp; 3 if(numI>num2)(temp=numl; numl=num2; num2=temp, 1 printf("Three numbers after sorted: %od, %od, %\"numl, num2, num3): 序运行情况如下: Please input three numbers: 11.22, 18K Three numbers after sorted: 11.18.22
例:输入任意三个数num1、num2、num3,按从小到大 的顺序排序输出。 main() {int num1,num2,num3,temp; printf("Please input three numbers:"); scanf("%d,%d,%d",&num1,&num2,&num3); if (num1>num2) {temp=num1;num1=num2;num2=temp;} if (num2>num3) {temp=num2;num2=num3;num3=temp;} if (num1>num2) {temp=num1;num1=num2;num2=temp;} printf("Three numbers after sorted: %d,%d,%d\n",num1,num2,num3); } 程序运行情况如下: Please input three numbers:11,22,18↙ Three numbers after sorted: 11,18,22
3.i句的嵌套与嵌套匹配原则 ii句允许嵌套。所谓ⅱ语句的嵌套是指,在 语句组1”或(和)“语句组2”中,又包含有i语 句的情况。 i语句嵌套时,else子句与i的匹配原则:与 在它上面、距它最近、且尚未匹配的对。 为明确匹配关系,避免匹配错误,强烈建议: 将内嵌的语句,一律用花括号括起来 例:写一程序,从键盘上输入1年份year(4位 十进制数),判断其是否闰年。闰年的条件是: 能被4整除、但不能被100整除,或者能被400整
3.if语句的嵌套与嵌套匹配原则 if语句允许嵌套。所谓if语句的嵌套是指,在 “语句组1”或(和)“语句组2”中,又包含有if语 句的情况。 if语句嵌套时,else子句与if的匹配原则:与 在它上面、距它最近、且尚未匹配的if配对。 为明确匹配关系,避免匹配错误,强烈建议: 将内嵌的if语句,一律用花括号括起来。 例: 写一程序,从键盘上输入1年份year(4位 十进制数),判断其是否闰年。闰年的条件是: 能被4整除、但不能被100整除,或者能被400整 除
算法设计要点: (1)如果Ⅹ能被Y整除,则余数为0, 即如果ⅹ%Y的值等于0,则表示Ⅹ能被 Y整除! (2)首先将是否闰年的标志eap预置为 0(非闰年),这样仅当year为闰年时将 leap置为1即可。这种处理两种状态值的方 法,对优化算法和提高程序可读性非常有 效,请同学们仔细体会
算法设计要点: (1)如果X能被Y整除,则余数为0, 即如果X%Y的值等于0,则表示X能被 Y整除! (2)首先将是否闰年的标志leap预置为 0(非闰年),这样仅当year为闰年时将 leap置为1即可。这种处理两种状态值的方 法,对优化算法和提高程序可读性非常有 效,请同学们仔细体会
参考程序如下 main int year, leap=0;/*leap=0:预置为非闰年* printf( Please input the year scanf( od", &year) if(year %04==0) if (year %100=0)leap=1 else fif (year%0400==0)leap=1;i if (leap) printf( %od is a leap year. In" year) else printf("%od is not a leap year. n",year)
参考程序如下: main() {int year,leap=0; /* leap=0:预置为非闰年*/ printf("Please input the year:"); scanf("%d",&year); if (year % 4==0) {if (year % 100 != 0) leap=1;} else {if (year%400==0) leap=1; } if (leap) printf("%d is a leap year.\n",year); else printf("%d is not a leap year.\n",year); }
课后小结: 本节课我们主要学习了分支(选择) 程序设计, if-else语句;要求同学们拿 到一个间题能够画出它的流程图,并用 if-else语句将它实现成一个C语言程序
课后小结: 本节课我们主要学习了分支(选择) 程序设计,if—else语句;要求同学们拿 到一个问题能够画出它的流程图,并用 if—else语句将它实现成一个C语言程序
第二课 教学内容: 对f一els嵌套形式进行复习。 利用 switch语句直接处理多路分支选择问题。 、教学目的: 会画多路分支的流程图。 会使用 switch语句直接处理多路分支选择间题 教学重点: switch语句的应用
第二课 一、教学内容: 对if—else嵌套形式进行复习。 利用switch语句直接处理多路分支选择问题。 二、教学目的: 会画多路分支的流程图。 会使用switch语句直接处理多路分支选择问题。 三、教学重点: switch语句的应用