新人教版(b)高中数学必修3基本算法语句教案_第1页
新人教版(b)高中数学必修3基本算法语句教案_第2页
新人教版(b)高中数学必修3基本算法语句教案_第3页
新人教版(b)高中数学必修3基本算法语句教案_第4页
新人教版(b)高中数学必修3基本算法语句教案_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基本算法语句

一.课标要求:

1.经历将具体问题的程序框图转化为程序语句的过程,理解几种基本算法语

句——输入语句、输出语句、赋值语句、条件语句、循环语句,进一步体会算法的

基本思想;

2.通过阅读中国古代数学中的算法案例,体会中国古代数学对世界数学发展

的贡献。

二.命题走向

算法是高中数学课程中的新内容,本章的重点是算法的概念和算法的三种逻辑

结构。

预测2007年高考对本章的考察是:以选择题或填空题的形式出现,分值在5

分左右,本讲考察的热点是识别程序和编写程序。

三.要点精讲

1.输入语句

输入语句的格式:INPUT"提示内容”;变量

例如:INPUT“七”;x功能:实现算法的输入变量信息(数值或字符)的功

能。

要求:

(1)输入语句要求输入的值是具体的常量;

(2)提示内容提示用户输入的是什么信息,必须加双引号,提示内容“原原

本本”的在计算机屏幕上显示,提示内容与变量之间要用分号隔开;

(3)一个输入语句可以给多个变量赋值,中间用“,”分隔;输入语句还可以

是““提示内容1”;变量1,“提示内容2”;变量2,“提示内容3”;变量3,……”

的形式。例如:INPUTt(a=,tr,c=,";a,b,c。

2.输出语句

输出语句的一般格式:PRINT"提示内容”;表达式

例如:PRINT“S=”;S

功能:实现算法输出信息(表达式)

要求:

(1)表达式是指算法和程序要求输出的信息;

(2)提示内容提示用户要输出的是什么信息,提示内容必须加双引号,提示

内容要用分号和表达式分开。

(3)如同输入语句一样,输出语句可以一次完成输出多个表达式的功能,不

同的表达式之间可用“,”分隔;输出语句还可以是“提示内容1”;表达式1,“提

示内容2”;表达式2,“提示内容3”;表达式3……”的形式;例如:PRINT"a",c:";

a,b,co

3.赋值语句

赋值语句的一般格式:变量=表达式

赋值语句中的“="称作赋值号

作用:赋值语句的作用是将表达式所代表的值赋给变量;

要求:

(1)赋值语句左边只能是变量名字,而不是表达式,右边表达式可以是一个

常量、变量或含变量的运算式。如:2=x是错误的;

(2)赋值号的左右两边不能对换。赋值语句是将赋值号右边的表达式的值赋

给赋值号左边的变量。如“止8""是"’的含义运行结果是不同的,如尸5是对的,

5=X是错的,木是C是错的,C=4+8是对的。

(3)不能利用赋值语句进行代数式的演算。(如化简、因式分解、解方程等),

y-x2-\-(x-l)(x+1)

这是实现不了的。在赋值号右边表达式中每一个变量的值必须事先赋给确定的

值。在一个赋值语句中只能给一个变量赋值。不能出现两个或以上的“="。但对于

同一个变量可以多次赋值。

4.条件语句

(1)“IF—THEN—ELSE”语句

格式:

IF条件THEN

语句1

ELSE

语句2

ENDIF

说明:在“IF—THEN—ELSE”语句中,“条件”表示判断的条件,“语句1”表

示满足条件时执行的操作内容;“语句2”表示不满足条件时执行的操作内容;END

IF表示条件语句的结束。计算机在执行“IF—THEN—ELSE”语句时,首先对IF后

的条件进行判断,如果符合条件,则执行THEN后面的“语句1”;若不符合条件,

则执行ELSE后面的“语句2”。

(2)“IF—THEN”语句

格式:

IF条件THEN

语句

ENDIF

说明:“条件”表示判断的条件;“语句”表示满足条件时执行的操作内容,条

件不满足时,直接结束判断过程;ENDIF表示条件语句的结束。计算机在执行“IF

—THEN”语句时,首先对IF后的条件进行判断,如果符合条件就执行THEN后边的

语句,若不符合条件则直接结束该条件语句,转而执行其它后面的语句。

5.循环语句

(1)当型循环语句

当型(WHILE型)语句的一般格式为:

WHILE条件

循环体

WEND

说明:计算机执行此程序时,遇到WHILE语句,先判断条件是否成立,如果成

立,则执行WHILE和WEND之间的循环体,然后返回到WHILE语句再判断上述条件

是否成立,如果成立,再执行循环体,这个过程反复执行,直到一次返回到WHILE

语句判断上述条件不成立为止,这时不再执行循环体,而是跳到WEND语句后,执

行WEND后面的语句。因此当型循环乂称“前测试型”循环,也就是我们经常讲的

“先测试后执行”、“先判断后循环”。

(2)直到型循环语句

直到型(UNTIL型)语句的一般格式为:

DO

循环体

LOOPUNTIL条件

说明:计算机执行UNTIL语句时,先执行DO和LOOPUNTIL之间的循环体,

然后判断“LOOPUNTIL”后面的条件是否成立,如果条件成立,返回DO语句处

重新执行循环体。这个过程反复执行,直到一次判断“LOOPUNTIL”后面的条件

条件不成立为止,这时不再返回执行循环体,而是跳出循环体执行"LOOPUNTIL

条件”下面的语句。

因此直到型循环又称“后测试型”循环,也就是我们经常讲的“先执行后测试”、

“先循环后判断”。

四.典例解析

题型1:输入、输出和赋值语句

例1.判断下列给出的输入语句、输出语句和赋值语句是否正确?为什么?

(1)输入语句INPUTa;b;c

(2)输出语句4=4

(3)赋值语句3=8

(4)赋值语句A=B=—2

解析:(1)错,变量之间应用“,”号隔开;

(2)错,PRINT语句不能用赋值号“=”;

(3)错,赋值语句中“=”号左右不能互换;

(4)错,一个赋值语句只能给一个变量赋值。

点评:输入语句、输出语句和赋值语句基本上对应于算法中的飒序绪秒。输入

语句、输出语句和赋值语句都不包括“控制转移”,由它们组成的程序段必然是顺

序结构。

例2.请写出下面运算输出的结果。

(1)

a=5

b=3

c=(〃+/?)/2

d=c*c

PRINT

(2)

a=1

b=2

c=a+b

b=a+c-b

PRINT”ci=,b=,cW;a,b,c

(3)

”10

ft=20

c=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+8是将a,6的和赋值给c,语句=a+c-b是将a+c-b

的值赋值给了b。

(3)20,30,20;经过语句a=6后a,b,c的值是20,20,30o经过语句b=c

后a,b,c的值是20,30,300经过语句c=a后a,b,c的值是20,30,20。

点评:语句的识别问题是一个逆向性思维,-一般我们认为我们的学习是从算法

步骤(自然语言)至程序框图,再到算法语言(程序)。如果将程序摆在我们的面

前时,我们要从识别逐个语句,整体把握,概括程序的功能。

题型2:赋值语句的应用

例3.写出求三个数a,b,c的方差的程序。

解析:方差是在初中统计内容中学习过的知识,计算所有数的方差首先计算所

有数的平均数"通过公式S2=他=)1±、二)2+•…•…+(乙r)2来计算。

n

算法步骤:

第一步:计算平均数:="+"c;

3

第二步:计算方差S2=——"I+(X—a)2+(X—a)2;

3

第三步:得到的结果即为所求。

程序如下:

INPUTa,b,c

y=(a+b+c)/3

S=((a—y)2+(b—y)2+(c—y)2)/3

PRINTS

END

点评:套用公式求值问题是传统数学求值问题的一种,它是一种典型的顺序结

构,也就是说只通过输入、输出和赋值语句就可以完成任务。解决这类问题的关键

是先分析这种问题的解法,即构造计算的过程,再写出算法步骤和流程图,再翻译

成算法语句即可。

例4.编写一个程序,要求输入的两个正数a和8的值,输出/和〃的值。

解析:可以利用INPUT语句输入两个正数,然后将/和加的值分别赋给两个

变量输出即可。也可以将才和6的底数和幕数进行交换,故还可以利用赋值语句,

采用将两个变量的值互换的办法实现。

程序1:

INPUT“a,6:”;a,b

A=a~b

B^b~a

PRINT"a"=”;A,“"=”;B

END

程序2:

INPUT“a,b:”;a,b

A=a~b

PRINT"a"=”;A

apb

b=x

A=a~b

PRINT"a"=”;4

END

点评:交换a,b的值可通过下面三个语句来实现:

t=a

a=b

b=t

通过引进一个变量t实现变量a和b的值的交换,因此只需用赋值语句即可实

现算法。在一些较为复杂的问题算法中经常需要对两个变量的值进行交换,因此应

熟练掌握这种方法。

题型3:条件语句

例5.编写程序,输出两个不相等的实数a、8的最大值。

解析:要输出两个不相等的实数a、8的最大值,从而想到对a,b的大小关系

进行判断,a,b的大小关系有两种情况:(1)a>b;(2)b>a,这也就用到了我们

经常提及的分类讨论的方式,找出两

开始

个数的最大值。

解:算法一:

第一步:输入a,•的数值;

第二步:判断a,8的大小关系,若

a>b,则输出a的值,否则输出b的值。

(程序框图如右图)

程序如下:(“IF—THEN一ELSE”

结束

语句)

INPUT“a,b”;a,b

IFa>bTHEN

PRINTa

ELSE

PRINTb

ENDIF

END

算法二:

第一步:输入a,。的数值;

第二步:判断a,8的大小关系,若b>a,则将b的值赋予a;否则直接执行

第三步;

第三步:输出a的值,结束。

(程序框图如右图)

程序如下:(“IF—THEN”语句)

INPUT“a,b”;a,b

IFb>aTHEN

a=b

ENDIF

PRINTa

END

点评:1.一个“好”的算法往往像上面教材例题

中的“小技巧”,要熟练、有效的使用它们,则需要在

大量的算法设计中积累经验。我们也可以先根据自己

的思路设计算法,再与“成形”的、高效的、优秀的

算法比较,改进思路,改进算法,以避免重复计算等

问题,提高算法设计的水平!

2.我们在平常的训练中尽可能的少引用变量,过

多的变量不仅会使得算法和程序变得复杂,而且不利

于计算机的执行。为此,我们在练习中要积极思考尽可能少引入变量以及如何才能

少引入变量。

程序一:(嵌套结构)

程序框图:(右图)

程序语言:

INPUTx

IFx>0THEN

7=1

ELSE

IFA=0THEN

片0

ELSE

J=-l

ENDIF

ENDIF

PRINTy

END

程序二:(叠加结构)

程序框图:

程序如下:

INPUTx

IFx>0THEN

7=1

ENDIF

IFx=0THEN

尸0

ENDIF

IFKOTHEN

片一1

ENDIF

PRINTy

END

点评:1.条件结构的差异,造成程序执行的不

同。当代入x的数值时,“程序--”先判断外层的条

件,依次执行不同的分支,才有可能判断内层的条件;

而“程序二”中执行了对“条件1”的判断,同时也

对“条件2”进行判断,是按程序中条件语句的先后

依次判断所有的条件,满足哪个条件就执行哪个语

句。

2.条件语句的嵌套可多于两层,可以表达算法步骤中的多重限制条件。

题型4:循环语句

例7.设计一个计算1X3X5X7X…X99的算法,编写算法程序。

解析:

算法如下:

第一步:s=l;

第二步:i=3;

第三步:s=sXi;

第四步:i=i+2;

第五步:如果iW99,那么转到第三步;

第六步:输出s;

程序如下:(“WHILE型”循环语句)

s=1

i=3

WHILEi<=99

s=s*i

i=i+2

WEND

PRINTs

END

点评:你能用"UNTIL”型循环语句表示“典例1”中的程序吗?

例8.编写一个程序,求1!+2!+…+10!的值。

解析:这个问题是求前10个正整数的阶乘之和,可以用“WHILE+如二夕循

环嵌套语句格式来实现。

程序结构要做到如下步骤:

①处理"N!”的值;(注:处理N!值的变量就是一个内循环变量)

②累加“N!”的值。(注:累加N!值的变量就是一个外循环变量)

显然,通过10次循环可分别求出1!、2!、…、10!的值,并同时累加起来,可

求得S的值。而求T=N!,又可以用一个循环(内循环)来实现。

程序为:

s=0

i=l

WHILEi<=10

j=l

t=l

WHILEj<=i

t=t*j

j=j+l

WEND

s=s+t

i=i+l

WEND

PRINTs

END

上面程序中哪个变量是内循环变量,哪个变量是外循环变量?

(1)内循环变量:j,t

(2)外循环变量:s,i

“典例2”程序是一个的“WHILE+WHILE”型循环嵌套语句格式。这是一个比

较好想的方法,但实际上对于求n!,我们也可以根据求出的(n-l)!乘上n即可得

到,而无需重新从1再累乘到n。

程序可改为:

s=0

i=l

j=l

WHILEi<=10

j=j*i

s=s+j

i=i+l

WEND

PRINTs

END

显然第二个程序的效率要比第一个高得多。第一程序要进行1+2+…+10=55次

循环,而第二程序进行10次循环。如题目中求的是1!+2!+…+1000!,则两

个程序的效率区别更明显。

点评:解决具体的构造循环语句的算法问题,要尽可能的少引入循环变量,否

则较多的变量会使得设计程序比较麻烦,并且较多的变量会使得计算机占用大量的

系统资源,致使系统缓慢。另外,也尽可能使得循环嵌套的层数少,否则也浪费计

算机的系统资源。

题型5:实际应用

例9.中国网通规定:拨打市内电话时,如果不超过3分钟,则收取话费0.22

元;如果通话时间超过3分钟,则超出部分按每分钟0.1元收取通话费,不足一分

钟按以一分钟计算。设通话时间为t(分钟),通话费用9(元),如何设计一个程

序,计算通话的费用。

解析:

算法分析:

数学模型实际上为:y关于t的分段函数。

关系是如下:

0.22,(0</<3)

y=-0.22+0.1(/-3),(/>3,reZ)

0.22+0.1([/-3]+1),(f>3/史Z)

其中[t-3]表示取不大于t—3的整数部分。

算法步骤如下:

第一步:输入通话时间t;

第二步:如果t<3,那么y=0.22;否则判断tGZ是否成立,若成立执行

y=0.2+0,IX(t-3);否则执行y=0.2+0.IX([t-3]+l)o

第三步:输出通话费用c。

算法程序如下:

INPUT”请输入通话时间:”;t

IFt<=3THEN

片0.22

ELSE

IFINT(t)=tTHEN

7=0.22+0.l*(t-3)

ELSE

产0.22+0.l*(INT(t-3)+l)

ENDIF

ENDIF

PRINT“通话费用为:”;y

END

点评:实际应用问题,在高考中是一个热点。如何将实际问题转化成数学问题

是解题的关键,最后还要用算法步骤和程序进行表达。如:中国网通通话费的规定

在数学中就是通话时间到通话费用的分段函数。日常生活中的分段函数问题还有很

多:出租车的计费问题、个人所得税问题、银行利率问题等等。

例10.编写程序,计算数列{4}的前20项的和。(其中数列的前儿项分别为1,

1,2,3,5,8,....)

解析:这是“用Anacci数列”的典型特征,从第三项起每一项都是它前两项

的和,即=。“_]+*_2。

程序如下:

a=l

ZFI

s=0

i=3

WHILEi<=20

s=s+a+6

t=a

apb

於价t

i=i+l

WEND

PRINTs

END

点评:

1.计数变量的作用一般是统计循环体执行的次数,改变循环条件的取值,为

结束循环作准备。譬如:计算等差、等比数列的前n项的和,n就是计数变量的临

界值,在当型结构中“小于等于n”维持循环,而在直到型循环结构中“大于n”

跳出循环。

2.累加变量是最终的输出结果。每进入一次循环体随着计数变量改变而改变。

累加变量的初始值通常为Oo

五.思维总结

在设计算法的过程中,解决问题的基本思想常常很简单、很清楚,但表述参与

运算的数值的频频变换却很麻烦。为了解决这个问题,需要在程序中引入变量。前

面通过对函数概念的学习,我们就已经了解变量的含义:在研究问题的过程中可以

取代不同数值的量称为变量。

程序中一些重要的函数也很有用处,如取平方根函数SQR(x)=|x|,取绝对值

函数ABS(X)=

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论