高中数学第1章算法初步13基本算法语句互动课堂学案苏教版必修3Word文件下载.docx
《高中数学第1章算法初步13基本算法语句互动课堂学案苏教版必修3Word文件下载.docx》由会员分享,可在线阅读,更多相关《高中数学第1章算法初步13基本算法语句互动课堂学案苏教版必修3Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。
m←(x+y+z)/3
n←
.
Printm,n
在上面的算法的伪代码中,第一个语句为输入语句,它表示将输入的数据分别送给了x,y,z,最后一个语句为输出语句,它表示输出了运算结果m,n;
中间两个语句为赋值语句,它们分别表示将表达式
和
的值赋给变量m,n.
输入、输出语句和赋值语句一般对应用于算法的顺序结构,算法从上而下按语句的顺序执行这些语句.如右图所示.
3.条件语句
算法中的选择结构由语句来表达,条件语句的一般格式为IfAThenBElseCEndIf
在语句中A表示判断条件,B表示满足条件时执行的操作内容,C则表示不满足条件时执行的内容,EndIf则表示条件语句的结束.而在表示算法的具体过程中,其格式和对应的框图为:
对应框图(如下图所示):
在这里,语句1称为“Then”的分支,语句2称为“Else”的分支,为了醒目和便于阅读,这些分支一般要缩进书写.
例如,下面为一个算法的流程图(如下图所示):
由流程图可知,在此算法的表示过程中用到了选择结构,判断条件为“x≤3”.若x≤3成立,则执行语句“y←2x”,否则执行语句“y←x+1”.因此,上面流程图所表示的算法可用条件语句表示为:
Readx
在此算法中,虚框内为条件语句,语句“y←2x”为“Then”的分支,语句“y←x+1”为“Else”的分支,这两个分支均缩进书写.
某些情况下,条件语句中还可以使用IfThen语句,即
它对应的框图为(如下图所示).
除此之外,条件语句是可以嵌套的,即在条件语句的一个分支中还可以出现条件语句,这种嵌套结构一般用于执行过程中选择结构中还存在选择结构的算法中,其格式为:
例如,输入自变量的值,求函数f(x)=
函数值的一个算法的伪代码如下:
Printy
案例1某百货公司为了促销,采用购物打折的优惠办法:
每位顾客一次购物
(1)在1000元以上者,按九五折优惠.
(2)在2000元以上者,按九折优惠.
(3)在3000元以上者,按八五折优惠.
(4)在5000元以上者,按八折优惠.
编写程序求优惠价.
【探究】本题实质上是一个分段函数的求值问题,由于求值时需要根据自变量的范围来选择不同的解析式,则用算法语句表示此算法时应采用条件语句.设购物款数为x元,优惠价为y元.
【解】设购物款数为x元,优惠价为y元,则优惠付款公式为
y=
用条件语句表示为:
Ifx<1000Then
y=x
Else
Ifx<2000Then
y=0.95x
Ifx<3000Then
y=0.9x
Ifx<5000Then
y=0.85x
y=0.8x
EndIf
规律总结在准确理解算法的基础上,学会条件语句的使用.循环语句包括If…Then,If…Then…Else,并且If…Then…Else可以嵌套,解题时要根据需要灵活运用.当条件语句的一个分支中还存在条件判断时,一般采用条件语句的嵌套.
4.循环语句
当算法中存在循环结构时,我们可以用循环语句来实现算法过程.循环语句有两种:
一种是“For”语句;
一种是“While”语句.
疑难疏引
(1)“For”语句
当循环次数已经确定,则循环结构可用“For”语句来表示,“For”语句的一般格式为:
ForIFrom“初始值”To“终值”Step“步长”…EndFor
例如,计算1+2+3+…+100值的算法,可表示为
S←0
ForIFrom1To100Step1
S←S+I
EndFor
PrintS
上面算法中,“For”和“EndFor”之间缩进部分称为循环体.因此,用循环语句表示算法时,其格式为:
ForIFrom“初始值”To“终值”Step“步长”
循环体
而且应该注意,循环体要缩进书写.
在循环语句中,当步长为1时可以省略.如计算1+2+3+…00值的算法,也可表示为
ForIFrom1To100
S←S+I
(2)While语句
当循环次数不能确定时,可用While语句来实现循环.While语句的一般格式为:
WhileA…EndWhile
具体应用时格式为:
在While语句中A表示判断执行循环体的条件,书写时循环体也要缩进书写.
例如,寻求满足1+2+3+…+_________>2008的最小正整数的算法可用While语句表示为
S←1
I←2
WhileS≤2008
I←I+1
EndWhile
PrintI
算法在执行循环体的过程中,先检验条件S≤2008是否成立,若条件成立则执行循环体,直到条件不成立时才结束循环.
While语句的特点是“前测试”,即先判断再执行,当条件成立时,则执行循环体,然后再检验条件是否成立,若条件仍然成立则继续执行循环体,这个过程反复进行,直到某一次条件不成立为止,这时算法不再执行循环体,而直接转到EndWhile语句后按着执行的先后执行语句.若初始条件不成立,则一次也不执行循环体的内容.任何一种需要重复处理的问题都可以用这种“前测试”循环来实现.
案例2已知S=5+10+15+…+1500,请用流程图描述求S的算法并用伪代码表示.
【探究】由题意知应采用循环结构画出流程图,而应采用“For”语句来描述此算法,其中初始值为10,步长为5.
【解析】流程图如下图所示
从流程图可以看出这是一个循环结构,我们可以运用循环语句来实现.
S←5
ForIFrom10To1500Step5
S←S+I
规律总结在准确理解算法的基础上,学会循环语句的使用.循环语句包括For循环、While循环.解题时要根据需要灵活运用.当已知循环的次数时一般采用For循环;
当循环次数不知时可采用While循环.While语句的特点是“前测试”,任何一种需要重复处理的问题都可以用这种前测试循环来实现.
案例3怎样用伪代码和流程图设计算法来判断N是否为素数?
【探究】由于素数的特点是它的因数只有1和它的本身,则要判断某个数N是否为素数的方法:
将N作为被除数,用2到N各个整数轮流作除数,如果都不能被整除,则N为素数.
为了使程序能符合结构化程序设计,这里设计了一个开关W,使初值为0.若N能被某一个整数整除,则使W值为1,否则W值不变.最后根据W的值来确定N是否为素数,若W值为0,则N为素数,否则N为非素数.
【解】用伪代码设计算法如下:
ReadN
W←0
WhileI≤
且W=0
IfR=0ThenW←1
ElseI←I+1
IfW=0ThenPrintN,“是素数”
ElsePrintN,“不是素数”
End(算法结束)
流程图(如下图所示):
规律总结由于我们无法事先确定循环次数,故采用While循环语句.
活学巧用
1.写出下列用伪代码描述的算法执行后的结果.
(1)算法开始
a←2;
a←4;
a←a+a;
输出a的值;
算法结束
执行结果:
_________________________
解析:
本题考查了赋值语句的功能,第一个语句中将2赋给了变量a,此时a的值为2.第二个语句中将4赋给了变量a,此时a值由原来的2变为了4.第三个语句中将a+a的值赋给了变量a,此时a的值为4+4=8.
答案:
8
2.已知A(x1,y1),B(x2,y2)是平面上的两点.试设计一个算法,输入A、B两点的坐标,输出其中点的坐标.现已给出伪代码的一部分,试在横线上填上适当的语句,把它补充完整.
Readx1,y1,x2,y2
①
②
Printx,y
利用中点坐标公式知x=
y=
①x←
②y←
3.下列算法中最后输出的结果是多少?
A←2
A←A*5
A←A+8
PrintA
本题考查赋值语句、输出语句在算法中的应用.由题意知,最后输出的结果是2×
5+8=18.
18
4.指出下面用伪代码描述的算法的功能.
ReadR,a
S1←a*a
S←3.14*R*R-S1
用来求一个半径为R的圆中除去圆内边长为a的正方形后图示阴影部分的面积.只要输入R,a的值,就可输出阴影部分的面积S.
5.以下关于条件语句的说法正确的是()
A.条件语句的执行是按程序进行的先后顺序执行的
B.条件语句不能相嵌套,即条件语句中不能再有条件语句
C.条件语句实现了程序框中的条件分支结构
D.条件语句一定要完整,即If、Else、EndIf每一部分均不可少
A项明显错,B项中条件语句可以嵌套;
D项中条件语句有2种格式,其中If-EndIf中就没有Else;
C项正确.
C
6.用条件语句表示的算法的功能是
判断任意输入的数x是否是正数,若是,输出它的平方值;
若不是,输出它的相反数.
则填入的条件应该是()
A.x>0B.x<0C.x≥0D.x≤0
当x≤0时,y=-x;
当x>0时,y=x2.
D
7.下列用条件语句描述的算法
Printp
若输入x=18,则p=_______________.
x≤10时,p=0.35x;
当x>10时,p=10×
0.35+0.7(x-10)
现x=18>10,∴p=10×
0.35+0.7×
(18-10)=9.1.
9.1
8.使得任意输入的3个整数,按从大到小的顺序输出,其流程图如下图所示;
试写出上述算法的伪代码.
算法的伪代码如下:
Reada,b,c
Ifb>aThen
t←a,
a←b,
b←t
Ifc>aThen
a←c,
c←t
Ifc>bThen
t←b,
b←c,
Printa,b,c
在这个算法中,不存在Else语句.
9.某电信部门规定:
拨打市内电话时,如果通话时间不超过3min,则收取通话费0.2元;
如果通话时间超过3min,则超过部分以0.1元/min收取通话费(t以整分钟计,不足1min的按1min计).问:
如何设计一个计算话费的算法?
写出伪代码,并画出流程图.
分析:
由题意知,可用分段函数将话费表示为通话时间的函数,先把这个函数写出,再确定选择怎样的结构描述算法.
解:
设c表示通话费用(单元:
元),t表示通话时间(单位:
min),则有
c=
解决这一问题的算法步骤如下:
第一步:
输入通话时间t;
第二步:
若t≤3,则c=0.2,否则c=0.2+0.1(t-3);
第三步:
输出费用c.
用条件语句表示为
Readt
Printc
流程图如下图所示:
10.关于ForxFromaTocStepb,下列说法正确的是()
①当x=c时程序结束②当x=c时,还要继续执行一次③当b>0时,x≥c时程序结束④当b<0时,x<c时程序结束
A.1个B.2个C.3个D.4个
当x的值为终值时,还要执行一次,才能跳出循环体,从而①③不对,而②④正确.
B
11.依次将十个数输入,要求将其中最大的数打印出来.怎样用流程图和伪代码来表示问题的算法?
解决这个问题的思路很简单,先选2个数进行比较,去掉小的,留下大的;
再取第3个数与留下的数进行比较去掉小的留下大的;
继续进行,直到每个数都被比较,最后留下的数就是最大数.但用这种思想写出的算法比较复杂.由于在本算法中某些步骤是重复进行,则可用循环语句来描述此算法.用伪代码设计算法如下:
ReadX
max←X
ForIFrom2To10
IfX>maxThen
max←X
Printmax
12.写出下面用伪代码描述的算法执行后的结果.
n←10
i←2
sum←0
While(i≤n)
sum←sum+i
i←i+2
Printsum
____________________
本题考查了赋值语句、循环语句在算法中的应用.在本算法中前三个语句为赋值语句,它们分别表示将10、2、0赋给变量n、i、sum.第5、6个语句构成了一个循环体,当条件i≤n成立,则重复执行第5、6个语句直至条件不成立.当第一次执行时,sum的值变为2,i的值变为4;
第二次执行时,sum的值变为6,i的值变为6;
第三次执行时,sum的值变为12,i的值变为8;
第四次执行时,sum的值变为20,i的值变为10;
第五次执行时,sum的值变为30,i的值变为12,此时条件不成立,退出循环,输出sum的值为30.
30
13.小明第一天背一个单词,第二天背两个单词,以后每一天比前一天多背一个单词,问他前十天共背了多少个单词?
本题是一个求和问题,相当于求1+2+3+4+…+10的值,可用循环语句来实现此算法,实际操作时需设置一个变量表示和,并赋给其初值0.
第一步是选择一个变量S表示和,并赋给初值0;
第二步开始进入For循环语句,首先设i为循环变量,并设初值、步长、终值;
第三步为循环表达式(循环体);
第四步用“EndFor”控制一次循环,开始一次新的循环.
伪代码如下:
ForIFrom1To10
S←S+i
14.求π的近似值可用如下公式
=
+
+…
直到第N项的值小于0.00001为止.然后求出π的近似值.
可能把
+…+
逐项累加,然后利用其和S乘以6,再开方即可,流程图如下图:
用循环语句来描述上述算法.
本题算法的伪代码如下:
i←1
t←i*i
Whilet>100000
S←S+1/t
i←i+1
Pi←sqr(S*6)
PrintPi