《2010届数学高考总复习全套教案. 第16讲 基本算法语句doc--高中数学 .doc》由会员分享,可在线阅读,更多相关《2010届数学高考总复习全套教案. 第16讲 基本算法语句doc--高中数学 .doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、http:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网普通高中课程标准实验教科书数学 人教版高三新高三新数学数学第一轮复习教案(讲座第一轮复习教案(讲座 16)基本算法语句基本算法语句一课标要求:一课标要求:1经历将具体问题的程序框图转化为程序语句的过程,理解几种基本算法语句输入语句、输出语句、赋值语句、条件语句、循环语句,进一步体会算法的基本思想;2 通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展的贡献。二命题走向二命题走向算法是高中数学课程中的新内容,本章的重点是算法的概念和算法的三种逻辑结构。预测 2007 年高考对本章的考察是:以选择题或填空题的形式出现,分
2、值在 5 分左右,本讲考察的热点是识别程序和编写程序。三要点精讲三要点精讲1输入语句输入语句的格式:INPUT“提示内容”;变量例如:INPUT“x=”;x 功能:实现算法的输入变量信息(数值或字符)的功能。要求:(1)输入语句要求输入的值是具体的常量;(2)提示内容提示用户输入的是什么信息,必须加双引号,提示内容“原原本本”的在计算机屏幕上显示,提示内容与变量之间要用分号隔开;(3)一个输入语句可以给多个变量赋值,中间用“,”分隔;输入语句还可以是“提示内容 1”;变量 1,“提示内容 2”;变量 2,“提示内容 3”;变量 3,”的形式。例如:INPUT“a=,b=,c=,”;a,b,c。
3、2输出语句输出语句的一般格式:PRINT“提示内容”;表达式例如:PRINT“S=”;S功能:实现算法输出信息(表达式)要求:(1)表达式是指算法和程序要求输出的信息;(2)提示内容提示用户要输出的是什么信息,提示内容必须加双引号,提示内容要用分号和表达式分开。(3)如同输入语句一样,输出语句可以一次完成输出多个表达式的功能,不同的表达式之间可用“,”分隔;输出语句还可以是“提示内容 1”;表达式 1,“提示内容 2”;表达式 2,“提示内容 3”;表达式 3,”的形式;例如:PRINT“a,b,c:”;a,b,c。3赋值语句赋值语句的一般格式:变量=表达式赋值语句中的“”称作赋值号作用:赋值
4、语句的作用是将表达式所代表的值赋给变量;要求:http:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网(1)赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个常量、变量或含变量的运算式。如:2=x 是错误的;(2)赋值号的左右两边不能对换。赋值语句是将赋值号右边的表达式的值赋给赋值号左边的变量。如“A=B”“B=A”的含义运行结果是不同的,如 x=5 是对的,5=x 是错的,A+B=C 是错的,C=A+B 是对的。(3)不能利用赋值语句进行代数式的演算。(如化简、因式分解、解方程等),如)1)(1(12xxxy这是实现不了的。在赋值号右边表达式中每一个变量的值必须事先赋给确
5、定的值。在一个赋值语句中只能给一个变量赋值。不能出现两个或以上的“=”。但对于同一个变量可以多次赋值。4条件语句(1)“IFTHENELSE”语句格式:IF条件THEN语句 1ELSE语句 2ENDIF说明:在“IFTHENELSE”语句中,“条件”表示判断的条件,“语句 1”表示满足条件时执行的操作内容;“语句 2”表示不满足条件时执行的操作内容;ENDIF 表示条件语句的结束。计算机在执行“IFTHENELSE”语句时,首先对 IF 后的条件进行判断,如果符合条件,则执行 THEN 后面的“语句 1”;若不符合条件,则执行 ELSE 后面的“语句 2”。(2)“IFTHEN”语句格式:IF
6、条件 THEN语句ENDIF说明:“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条件不满足时,直接结束判断过程;ENDIF 表示条件语句的结束。计算机在执行“IFTHEN”语句时,首先对 IF 后的条件进行判断,如果符合条件就执行 THEN 后边的语句,若不符合条件则直接结束该条件语句,转而执行其它后面的语句。5循环语句(1)当型循环语句http:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网当型(WHILE 型)语句的一般格式为:WHILE条件循环体WEND说明:计算机执行此程序时,遇到 WHILE 语句,先判断条件是否成立,如果成立,则执行 WHILE 和 WEND
7、 之间的循环体,然后返回到 WHILE 语句再判断上述条件是否成立,如果成立,再执行循环体,这个过程反复执行,直到一次返回到 WHILE 语句判断上述条件不成立为止,这时不再执行循环体,而是跳到 WEND 语句后,执行 WEND 后面的语句。因此当型循环又称“前测试型”循环,也就是我们经常讲的“先测试后执行”、“先判断后循环”。(2)直到型循环语句直到型(UNTIL 型)语句的一般格式为:DO循环体LOOPUNTIL条件说明:计算机执行 UNTIL 语句时,先执行 DO 和 LOOPUNTIL 之间的循环体,然后判断“LOOPUNTIL”后面的条件是否成立,如果条件成立,返回 DO 语句处重新
8、执行循环体。这个过程反复执行,直到一次判断“LOOPUNTIL”后面的条件条件不成立为止,这时不再返回执行循环体,而是跳出循环体执行“LOOPUNTIL条件”下面的语句。因此直到型循环又称“后测试型”循环,也就是我们经常讲的“先执行后测试”、“先循环后判断”。四典例解析四典例解析题型 1:输入、输出和赋值语句例 1判断下列给出的输入语句、输出语句和赋值语句是否正确?为什么?(1)输入语句 INPUTa;b;c(2)输出语句 A4(3)赋值语句 3B(4)赋值语句AB2解析:(1)错,变量之间应用“,”号隔开;(2)错,PRINT 语句不能用赋值号“=”;(3)错,赋值语句中“=”号左右不能互换
9、;(4)错,一个赋值语句只能给一个变量赋值。点评:输入语句、输出语句和赋值语句基本上对应于算法中的顺序结构。输入语句、http:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网输出语句和赋值语句都不包括“控制转移”,由它们组成的程序段必然是顺序结构。例 2请写出下面运算输出的结果。(1)ddPRINTccdbacba;2/)(35(2)cbacbaPRINTbcabbacba,;,21(3)cbacbaPRINTaccbbacba,;,302010解析:(1)16;语句2/)(bac是将 a,b 和的一半赋值给变量 c,语句ccd是将c 的平方赋值给 d,最后输出 d 的值。(2)1,2
10、,3;语句bac是将 a,b 的和赋值给 c,语句bcab是将bca的值赋值给了 b。(3)20,30,20;经过语句ba 后 a,b,c 的值是 20,20,30。经过语句cb 后a,b,c 的值是 20,30,30。经过语句ac 后 a,b,c 的值是 20,30,20。点评:语句的识别问题是一个逆向性思维,一般我们认为我们的学习是从算法步骤(自然语言)至程序框图,再到算法语言(程序)。如果将程序摆在我们的面前时,我们要从识别逐个语句,整体把握,概括程序的功能。题型 2:赋值语句的应用例 3写出求三个数 a,b,c 的方差的程序。http:/ 永久免费组卷搜题网http:/ 永久免费组卷搜
11、题网解析:方差是在初中统计内容中学习过的知识,计算所有数的方差首先计算所有数的平均数x,通过公式nxxxxxxsn222212)(.)()(来计算。算法步骤:第一步:计算平均数3cbax;第二步:计算方差3)()()(2222axaxaxs;第三步:得到的结果即为所求。程序如下:INPUT a,b,cy=(a+b+c)/3S=(ay)2+(by)2+(cy)2)/3PRINT SEND点评:套用公式求值问题是传统数学求值问题的一种,它是一种典型的顺序结构,也就是说只通过输入、输出和赋值语句就可以完成任务。解决这类问题的关键是先分析这种问题的解法,即构造计算的过程,再写出算法步骤和流程图,再翻译
12、成算法语句即可。例 4编写一个程序,要求输入的两个正数 a 和 b 的值,输出 ab和 ba的值。解析:可以利用 INPUT 语句输入两个正数,然后将 ab和 ba的值分别赋给两个变量输出即可。也可以将 ab和 ba的底数和幂数进行交换,故还可以利用赋值语句,采用将两个变量的值互换的办法实现。程序 1:INPUT“a,b:”;a,bA=abB=baPRINT“ab=”;A,“ba=”;BEND程序 2:INPUT“a,b:”;a,bA=abPRINT“ab=”;Ax=aa=bb=xhttp:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网A=abPRINT“ab=”;AEND点评:交换
13、a,b 的值可通过下面三个语句来实现:tbbaat通过引进一个变量t实现变量a 和b的值的交换,因此只需用赋值语句即可实现算法。在一些较为复杂的问题算法中经常需要对两个变量的值进行交换,因此应熟练掌握这种方法。题型 3:条件语句例 5编写程序,输出两个不相等的实数 a、b 的最大值。解析:要输出两个不相等的实数 a、b 的最大值,从而想到对 a,b 的大小关系进行判断,a,b 的大小关系有两种情况:(1)ab;(2)ba,这也就用到了我们经常提及的分类讨论的方式,找出两个数的最大值。解:算法一:第一步:输入 a,b 的数值;第二步:判断 a,b 的大小关系,若 ab,则输出 a 的值,否则输出
14、 b的值。(程序框图如右图)程序如下:(“IFTHENELSE”语句)INPUT“a,b”;a,bIFabTHENPRINTaELSEPRINTbEND IFEND算法二:第一步:输入 a,b 的数值;第二步:判断 a,b 的大小关系,若 b a,则将 b 的值赋予 a;否则直接执行第三步;第三步:输出 a 的值,结束。开始输入 a,bab?输出 a输出 b结束YNhttp:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网(程序框图如右图)程序如下:(“IFTHEN”语句)INPUT“a,b”;a,bIFbaTHENa=bEND IFPRINTaEND点评:1一个“好”的算法往往像上面教
15、材例题中的“小技巧”,要熟练、有效的使用它们,则需要在大量的算法设计中积累经验。我们也可以先根据自己的思路设计算法,再与“成形”的、高效的、优秀的算法比较,改进思路,改进算法,以避免重复计算等问题,提高算法设计的水平!2 我们在平常的训练中尽可能的少引用变量,过多的变量不仅会使得算法和程序变得复杂,而且不利于计算机的执行。为此,我们在练习中要积极思考尽可能少引入变量以及如何才能少引入变量。例 6高等数学中经常用到符号函数,符号函数的定义为0,10,00,1xxxy,试编写程序输入 x 的值,输出 y 的值。程序一:(嵌套结构)程序框图:(右图)程序语言:INPUTxIF x0 THENy=1E
16、LSEIF x=0THENy=0ELSEy=1END IFEND IFPRINT yEND程序二:(叠加结构)开始输入 a,bba?输出 a结束YNa=bY开始输入 xx0?x=0输出 1输出 0输出 0YNN结束http:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网程序框图:程序如下:INPUTxIF x0 THENy=1END IFIF x=0THENy=0END IFIF x0?输出 1YNN结束x=0?输出 0 x0?输出1YNhttp:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网WHILEi99ss*iii2WENDPRINTsEND点评:你能用“UNTIL”型循
17、环语句表示“典例 1”中的程序吗?例 8编写一个程序,求 1!+2!+10!的值。解析:这个问题是求前 10 个正整数的阶乘之和,可以用“WHILE+WHILE”循环嵌套语句格式来实现。程序结构要做到如下步骤:处理“N!”的值;(注:处理 N!值的变量就是一个内循环变量)累加“N!”的值。(注:累加 N!值的变量就是一个外循环变量)显然,通过 10 次循环可分别求出 1!、2!、10!的值,并同时累加起来,可求得 S的值。而求 T=N!,又可以用一个循环(内循环)来实现。程序为:s=0i=1WHILE i=10j=1t=1WHILE j=it=t*jj=j+1WENDs=s+ti=i+1WEN
18、DPRINT sEND上面程序中哪个变量是内循环变量,哪个变量是外循环变量?(1)内循环变量:j,t(2)外循环变量:s,i“典例 2”程序是一个的“WHILE+WHILE”型循环嵌套语句格式。这是一个比较好想的方法,但实际上对于求 n!,我们也可以根据求出的(n1)!乘上 n 即可得到,而无需重新从 1 再累乘到 n。程序可改为:s=0i=1http:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网j=1WHILE i=10j=j*is=s+ji=i+1WENDPRINT sEND显然第二个程序的效率要比第一个高得多。第一程序要进行 1+2+10=55 次循环,而第二程序进行 10 次
19、循环。如题目中求的是 1!2!1000!,则两个程序的效率区别更明显。点评:解决具体的构造循环语句的算法问题,要尽可能的少引入循环变量,否则较多的变量会使得设计程序比较麻烦,并且较多的变量会使得计算机占用大量的系统资源,致使系统缓慢。另外,也尽可能使得循环嵌套的层数少,否则也浪费计算机的系统资源。题型 5:实际应用例 9中国网通规定:拨打市内电话时,如果不超过 3 分钟,则收取话费 0.22 元;如果通话时间超过 3 分钟,则超出部分按每分钟 0.1 元收取通话费,不足一分钟按以一分钟计算。设通话时间为 t(分钟),通话费用 y(元),如何设计一个程序,计算通话的费用。解析:算法分析:数学模型
20、实际上为:y 关于 t 的分段函数。关系是如下:),3(),13(1.022.0),3(),3(1.022.0)30(,22.0ZtttZtttty其中t3表示取不大于 t3 的整数部分。算法步骤如下:第一步:输入通话时间 t;第二步:如果 t3,那么 y=0.22;否则判断 tZ 是否成立,若成立执行 y=0.2+0.1(t3);否则执行 y=0.2+0.1(t3+1)。第三步:输出通话费用 c。算法程序如下:INPUT“请输入通话时间:”;tIFt=3THENy=0.22ELSEIFINT(t)=tTHENhttp:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网y=0.22+0.1
21、*(t3)ELSEy=0.22+0.1*(INT(t3)+1)END IFEND IFPRINT“通话费用为:”;yEND点评:实际应用问题,在高考中是一个热点。如何将实际问题转化成数学问题是解题的关键,最后还要用算法步骤和程序进行表达。如:中国网通通话费的规定在数学中就是通话时间到通话费用的分段函数。日常生活中的分段函数问题还有很多:出租车的计费问题、个人所得税问题、银行利率问题等等。例 10编写程序,计算数列an的前 20 项的和。(其中数列的前几项分别为 1,1,2,3,5,8,)解析:这是“Fibonacci 数列”的典型特征,从第三项起每一项都是它前两项的和,即21nnnaaa。程序
22、如下:a=1b=1s=0i=3WHILEi=20s=s+a+bt=aa=bb=b+ti=i+1WENDPRINT sEND点评:1计数变量的作用一般是统计循环体执行的次数,改变循环条件的取值,为结束循环作准备。譬如:计算等差、等比数列的前 n 项的和,n 就是计数变量的临界值,在当型结构中“小于等于 n”维持循环,而在直到型循环结构中“大于 n”跳出循环。2累加变量是最终的输出结果。每进入一次循环体随着计数变量改变而改变。累加变量的初始值通常为 0。五思维总结五思维总结在设计算法的过程中,解决问题的基本思想常常很简单、很清楚,但表述参与运算的数值的频频变换却很麻烦。为了解决这个问题,需要在程序
23、中引入变量。前面通过对http:/ 永久免费组卷搜题网http:/ 永久免费组卷搜题网函数概念的学习,我们就已经了解变量的含义:在研究问题的过程中可以取代不同数值的量称为变量。程序中一些重要的函数也很有用处,如取平方根函数 SQR(x)=|x|,取绝对值函数 ABS(x)=0,0,xxxx。变量与函数是中学数学里面最重要的和最基本的概念,在算法的设计里面仍然发挥着重要的和最基本的作用,它们会使得算法的表达变得非常整洁、清楚。1赋值语句在程序运行时给变量赋值;“=”的右侧必须是表达式,左侧必须是变量;一个语句只能给一个变量赋值;有计算功能;将一个变量的值赋给另一个变量时,前一个变量的值保持不变;
24、可先后给一个变量赋多个不同的值,但变量的取值只与最后一次赋值有关。2条件语句的主要功能是来实现算法中的条件结构。因为人们对计算机运算的要求不仅仅是一些简单的代数运算,而是经常需要计算机按照条件进行分析、比较、判断,并且按照判断后的不同情况进行不同的操作和处理。如果是要解决像“判断一个数的正负”、“比较数之间的大小”,“对一组数进行排序”、“求分段函数的函数值”等很多问题,计算机就需要用到条件语句。3学习了循环语句的两种格式,我们来挖掘一下应用循环语句编写程序的“条件三要素”。第一、循环语句中的变量一般需要进行一定的初始化操作。第一、循环语句中的变量一般需要进行一定的初始化操作。请看我们用 WH
25、ILE 循环实现 1 到 100 累加为例,做一下说明:“1+2+100”部分程序如下:sum=0i=1WHILEi=100sum=sum+ii=i+1WEND这段程序中,循环的条件是“i=100”;因此,一开始 i 肯定需要一个确定的值。前面的“i=0”这一个语句,在声明变量 i 的同时,也为 i 赋了初始值“1”。这样,条件 i=100得以成立(因为 i 为 1,所以 条件“i=100”当然成立)。第二、循环语句在循环的过程中需要有第二、循环语句在循环的过程中需要有“结束结束”的机会。的机会。程序中最忌“死循环”。所谓的“死循环”就是指该循环条件永远成立,没有跳出循环体的机会。第三、在循环中要改变循环条件的成立因素第三、在循环中要改变循环条件的成立因素程序每执行一次循环体,循环条件中涉及到的变量就会发生改变,正在步步逼近满足跳出循环体的条件。