1、 12.2 条 件 语 句 例1(1)比较两个数的大小,输出较大者(2)输入一个整数,判断它是否是5的倍数 解析(1)两个数比较大小,若ab,则输出a,否则输出b,故程序为:(2)判断一个数是否为5的倍数,只要看该数除以5的余数是否为0即可若余数为0,则该数是5的倍数,否则不是5的倍数程序为:INPUT“输入整数a”;a ra MOD 5 IF r0 THEN PRINT“a是5的倍数”ELSE PRINT“a不是5的倍数”END IF END.输入两个正整数a、b(ab),判断a能否被b整除 解析 INPUT“输入正整数a,b”;a,b ra MOD b IF r0 THEN PRINT“a
2、能被b整除”ELSE PRINT“a不能被b整除”END IF END.例2 编写程序,使得任意输入的3个整数按从小到大的顺序输出 解析 算法分析:用a,b,c表示输入的3个整数;为了节约变量,把它们重新排列后,仍用a,b,c表示,并使abc.具体操作步骤如下 S1 输入3个整数a,b,c.S2 将a与b比较,并把大者赋给b,小者赋给a.S3 将a与c比较,并把大者赋给c,小者赋给a,此时a已是三者中最小的 S4 将b与c比较,并把大者赋给c,小者赋给b,此时a,b,c已按从小到大的顺序排列好 S5 按顺序输出a,b,c.上述操作步骤可以用程序框图直观地表达出来 程序框图如图:根据程序框图,写
3、出计算机程序为:INPUT“a,b,c”;a,b,c IF ba THEN ta,ab,bt END IF IF ca THEN ta,ac,ct END IF IF ca”,“ca”,“cb”即可)如果有多个数排列顺序,则依次将第1,2,3各数与其后面的所有数比较即可例如5个数a,b,c,d,e,则先a与b,a与c,a与d,a与e比较完后,再b与c,b与d,b与e比较等等(3)对于较复杂的程序设计问题,可分模块逐块处理,最后连缀成一个整体,该例就分“a与b比较”“a与c比较”和“b与c比较”三部分 读下列各题所给的程序,依据程序画出程序框图,并说明其功能:(1)INPUT“x”;x IF x
4、1 OR xc AND acb AND bca THEN p(abc)/2 SSQR(p*(pa)*(pb)*(pc)PRINT“三角形的面积S”S ELSE PRINT“构不成三角形”END IF END.解析(1)此程序表达的是一个分段函数 当1x1时,输出y的值为0,否则(当x1时),输出y的值为1.程序框图如图:(2)如图:这个程序是从键盘上输入三个正数(表示三条线段),检验这三个数是否为三角形的三条边长如果是,求出三角形的面积,否则,输出“输入的三个数不是三角形三边长”的算法 点评 框图中可合并为 例3 儿童乘坐火车时,若身高不超过1.1m,则无需购票;若身高超过1.1m但不超过1.
5、4m,可买半票;若超过1.4m,应买全票设计一个根据身高买票的程序 解析 由题意可知,该题的算法中应该有条件分支,首先以身高1.1m为判断点分成应买票和免票然后在大于1.1m的一段里,以1.4m为判断点把其分为买半票和买全票,因此1.4米这个判断是套在1.1米这个判断里的,故用条件语句的嵌套来解决要用两个“END IF”,第一个END IF结束内层判断,第二个END IF结束外层判断 算法步骤如下:S1 测量儿童身高h;S2 如果h1.1,那么免费乘车;S3 如果h1.4,那么买半票乘车,否则买全票 程序框图为:程序为:INPUT“h”;h IF h1.1 THEN PRINT“免票”ELSE IF h800 THEN yx*0.8 ELSE IF x500 THEN yx*0.9 ELSE yx END IF END IF PRINT y END.