普通高中课程标准实验教科书—数学[人教版]高三新数学第一轮复习教案(讲座16)—基本算法语句一.课标要求:1.经历将具体问题的程序框图转化为程序语句的过程,理解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句,进一步体会算法的基本思想;2.通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展的贡献。
二.命题走向算法是高中数学课程中的新内容,本章的重点是算法的概念和算法的三种逻辑结构。
预测2007 年高考对本章的考察是:以选择题或填空题的形式出现,分值在5 分左右,本讲考察的热点是识别程序和编写程序。
三.要点精讲1.输入语句输入语句的格式:INPUT “提示内容” ;变量例如:INPUT “x=”;x 功能:实现算法的输入变量信息(数值或字符)的功能。
要求:(1)输入语句要求输入的值是具体的常量;(2)提示内容提示用户输入的是什么信息,必须加双引号,提示内容“原原本本”的在计算机屏幕上显示,提示内容与变量之间要用分号隔开;(3)一个输入语句可以给多个变量赋值,中间用“,”分隔;输入语句还可以是“ “提示内容1 ”;变量1 ,"提示内容2”;变量2,"提示内容3”;变量3, ”的形式。
例如:INPUT “a=,b=,c=,”;a,b,c。
2.输出语句输出语句的一般格式:PRINT “提示内容”;表达式例如:PRINT“S=”;S功能:实现算法输出信息(表达式)要求:(1 )表达式是指算法和程序要求输出的信息;(2)提示内容提示用户要输出的是什么信息,提示内容必须加双引号,提示内容要用分号和表达式分开。
(3)如同输入语句一样,输出语句可以一次完成输出多个表达式的功能,不同的表达式之间可用“,”分隔;输出语句还可以是“提示内容1”;表达式1,“提示内容2”;表达式2, “提示内容3”;表达式3,……”的形式;例如:PRINT “a,b,c:”;a,b,c。
3.赋值语句赋值语句的一般格式:变量=表达式赋值语句中的“=”称作赋值号作用:赋值语句的作用是将表达式所代表的值赋给变量;要求:(1)赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个常量、变量或含变量的运算式。
如:2= x 是错误的;(2)赋值号的左右两边不能对换。
赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量。
如“ A= B”“ B= A”的含义运行结果是不同的,女口x=5是对的,5=x是错的,A+B=C 是错的,C=A+B 是对的。
( 3)不能利用赋值语句进行代数式的演算。
(如化简、因式分解、解方程等) ,如2y x21 (x 1)(x 1)这是实现不了的。
在赋值号右边表达式中每一个变量的值必须事先赋给确定的值。
在一个赋值语句中只能给一个变量赋值。
不能出现两个或以上的“ = ”。
但对于同一个变量可以多次赋值。
4.条件语句(1)“IF —THEN —ELSE ”语句格式:IF 条件THEN语句1ELSE语句2END IF说明:在“IF —THEN —ELSE ”语句中,“条件”表示判断的条件,“语句1 ”表示满足条件时执行的操作内容;“语句2”表示不满足条件时执行的操作内容;END IF 表示条件语句的结束。
计算机在执行“IF —THEN —ELSE”语句时,首先对IF后的条件进行判断,如果符合条件,则执行THEN 后面的“语句1”;若不符合条件,则执行ELSE 后面的“语句2”。
( 2)“ IF—THEN ”语句格式:IF 条件THEN语句END IF说明:“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条件不满足时,直接结束判断过程;END IF表示条件语句的结束。
计算机在执行“IF —THEN ”语句时,首先对IF 后的条件进行判断,如果符合条件就执行THEN 后边的语句,若不符合条件则直接结束该条件语句,转而执行其它后面的语句。
5.循环语句( 1 )当型循环语句当型( WHILE 型)语句的一般格式为:WHILE 条件循环体WEND说明:计算机执行此程序时,遇到WHILE 语句,先判断条件是否成立,如果成立,则执行WHILE 和WEND 之间的循环体,然后返回到WHILE 语句再判断上述条件是否成立,如果成立,再执行循环体,这个过程反复执行,直到一次返回到WHILE 语句判断上述条件不成立为止,这时不再执行循环体,而是跳到WEND 语句后,执行WEND 后面的语句。
因此当型循环又称“前测试型” 循环,也就是我们经常讲的“先测试后执行” 、“先判断后循环” 。
( 2)直到型循环语句直到型(UNTIL 型)语句的一般格式为:DO循环体LOOP UNTIL 条件说明:计算机执行UNTIL 语句时,先执行DO 和LOOP UNTIL 之间的循环体,然后判断“ LOOP UNTIL ”后面的条件是否成立,如果条件成立,返回DO 语句处重新执行循环体。
这个过程反复执行,直到一次判断“ LOOP UNTIL ”后面的条件条件不成立为止,这时不再返回执行循环体,而是跳出循环体执行“ LOOP UNTIL 条件”下面的语句。
因此直到型循环又称“后测试型”循环,也就是我们经常讲的“先执行后测试” 、“先循环后判断”。
四.典例解析题型1:输入、输出和赋值语句例1 .判断下列给出的输入语句、输出语句和赋值语句是否正确?为什么?1)输入语句INPUT a;b;c2)输出语句A= 43)赋值语句3= B4)赋值语句 A = B=—2解析:(1)错,变量之间应用“,”号隔开;(2)错,PRINT 语句不能用赋值号“ =”;(3)错,赋值语句中“ =”号左右不能互换;(4)错,一个赋值语句只能给一个变量赋值。
点评:输入语句、输出语句和赋值语句基本上对应于算法中的顺序结构....。
输入语句、输出语句和赋值语句都不包括“控制转移” ,由它们组成的程序段必然是顺序结构。
例2 .请写出下面运算输出的结果。
(1)a5b3c (a b)/2d c cPRINT "d ";d(2)a1b2c a bb ac bPRINT "a ,b ,c ";a,b,c(3)a 10b 20c 30 a b b c c a PRINT "a ,b ,c ";a,b,c解析: (1)16;语句c (a b)/2是将a ,b 和的一半赋值给变量c ,语句d c c 是将c 的平方赋值给d ,最后输出d 的值。
(2) 1,2,3;语句c a b 是将a ,b 的和赋值给c ,语句b a c b 是将a c b 的值赋值给了 b 。
(3) 20,30,20;经过语句a b 后a ,b ,c 的值是20,20,30。
经过语句b c 后a , b ,c 的值是20,30,30。
经过语句 c a 后a ,b ,c 的值是20,30,20。
点评:语句的识别问题是一个逆向性思维, 一般我们认为我们的学习是从算法步骤 (自然语言)至程序框图,再到算法语言(程序) 。
如果将程序摆在我们的面前时,我们要从识别逐个语句,整体把握,概括程序的功能。
题型2:赋值语句的应用例3 .写出求三个数a , b ,c 的方差的程序。
解析:方差是在初中统计内容中学习过的知识,计算所有数的方差首先计算所有数的平2 2 2均数Xn算法步骤:第一步:计算平均数X第三步:得到的结果即为所求。
程序如下:INPUT a ,b ,c y=(a+b+c)/3S=((a - y)2+ (b - y)2+ (c - y)2)/3 PRINT S END点评:套用公式求值问题是传统数学求值问题的一种, 它是一种典型的顺序结构,也就是说只通过输入、输出和赋值语句就可以完成任务。
解决这类问题的关键是先分析这种问题的解法,即构造计算的过程,再写出算法步骤和流程图,再翻译成算法语句即可。
例4.编写一个程序,要求输入的两个正数a 和b 的值,输出a b 和b a 的值。
解析:可以利用INPUT 语句输入两个正数, 然后将a b 和b a 的值分别赋给两个变量输出第二步:计算方差S 2(X a)2 (x a)2 3(x a)2 ;;即可。
也可以将a b和b a的底数和幕数进行交换,故还可以利用赋值语句,采用将两个变量的值互换的办法实现。
程序1:INPUT “a,b:” a,bA=a A bB=b A aPRINT “a b= ” A, “b a= ” BEND程序2:INPUT “a,b:” a,bA=aAbPRINT “a b= ” Ax=aa=bb=xA=aAbPRINT “a b= ” AEND点评:交换a,b的值可通过下面三个语句来实现:t aa bb t通过引进一个变量t实现变量a和b的值的交换,因此只需用赋值语句即可实现算法。
在一些较为复杂的问题算法中经常需要对两个变量的值进行交换,因此应熟练掌握这种方法。
题型3:条件语句例5 .编写程序,输出两个不相等的实数a、b的最大值。
解析:要输出两个不相等的实数a、b的最大值,从而想到对a, b的大小关系进行判断, a,b的大小关系有两种情况:(1) a>b; ( 2) b>a,这也就用到了我们经常提及的分类讨论的方式,找出两个数的最大值。
解:算法一:第一步:输入a,b的数值;第二步:判断a,b的大小关系,a>b,则输出a的值,否则输出b的值。
(程序框图如右图)程序如下:(“IF —THEN —ELSE”句)INPUT “a,b” a,bIF a> b THENPRINT aELSE语若结束END算法二:第一步:输入a,b的数值;第二步:判断a,b的大小关系,若b > a,则将b的值赋予a;否则直接执行第三步;第三步:输出a的值,结束。
(程序框图如右图)程序如下:“IF—THEN ”语句)INPUT “a,b”;a,bIF b > a THENa=bEND IFPRINT aEND点评:1•一个“好”的算法往往像上面教材题中的“小技巧”,要熟练、有效的使用它们,则要在大量的算法设计中积累经验。
我们也可以先根自己的思路设计算法,再与“成形”的、高效的、秀的算法比较,改进思路,改进算法,以避免重复算等问题,提高算法设计的水平!2.我们在平常的训练中尽可能的少引用变量,多的变量不仅会使得算法和程序变得复杂,而且不于计算机的执行。
为此,我们在练习中要积极思考尽可能少引入变量以及如何才能少引入变量。
例6 •高等数学中经常用到符号函数,符号函数的定义为输入x的值,输出y的值。
程序一:(嵌套结构)程序框图:(右图)程序语言:INPUT xIF x>0 THENy=1ELSEIF x=0 THENy=0ELSEy= —1END IFEND IF例需据优计过利1,x 0y 0, x 0 ,试编写程序程序二:(叠加结构)程序框图:程序如下:INPUT xIF x>0 THENy=1END IFIF x=0 THENy=0END IFIF x<0 THENy= —1END IFPRINT yEND点评:1 •条件结构的差异,造成程序执行的不同。