1.2.1 输入语句、输出语句和赋值语句
[读教材·填要点]
三种算法语句的格式及功能
[小问题·大思维]
1.程序中同时输入多个变量的值,是否一定要用多个输入语句?
提示:不一定,输入语句可同时给多个变量赋值,在给多个变量赋值时,变量之间用“逗号”隔开.
2.输入语句和赋值语句都可给变量赋值,这一点上二者有何不同?
提示:输入语句可以使初始数值与程序分开,利用输入语句改变初始数据时,程序不变,而赋值语句是程序的一部分,输入语句可对多个变量赋值,赋值语句只能给一个变量赋值.
三种语句的格式
[例1] 下列正确的语句个数是( )
①输入语句 INPUT a+2
②赋值语句 x=x-5
③输出语句 PRINT M=2
A.0 B.1
C.2 D.3
[自主解答] ①中输入语句只能给变量赋值,不能给表达式a+2赋值,所以①错误;②中x=x-5表示变量x减去5后再赋给x,即完成x=x-5后,x比原来的值小5,所以②正确;③中不能输出赋值语句,所以③错误.
[答案] B
——————————————————
1.在输入语句中,“提示内容”和它后面的分号“;”可以省略不写;输入语句要求输入的值只能是具体的数,无计算功能.
2.输出语句可以输出常量、变量或表达式的值(输出语句有计算功能)或字符,程序中双引号内的部分将原始呈现。
3.(1)赋值语句的作用是先算出赋值号右边表达式的值,然后把该值赋给赋值号左边的变量,使该变量的值等于表达式的值.
(2)赋值号两边的内容不能对调,如a=b与b=a表示的意义完全不同.
赋值号与“等于”的意义也不同,若把“=”看作等于,则N=N+1不成立,若看作赋值号,则成立.
(3)赋值语句只能给一个变量赋值,不能接连出现两个或多个“=”,可给一个变量多次赋值,但只保留最后一次所赋的值.
——————————————————————————————————————
1.下列给出的赋值语句中,正确的有( )
①赋值语句3=B;②赋值语句x+y=0;③赋值语句A=B=-2;④赋值语句T=T*T.
A.0个 B.1个
C.2个 D.3个
解析:由赋值格式可知,只有④正确.
答案:B
利用输入、输出、赋值语句编写程序
[例2] 设计一个求底面半径为R,高为H的圆柱的表面积的程序,画出程序框图并写出程序.
[自主解答] 程序框图如图: 程序如下:
INPUT“R=,H=”;R,HA=2*3.14*R*HB=3.14*R*RS=A+2*BPRINT “S=”;SEND
——————————————————
1.根据输入、输出、赋值语句编写程序时,一定要遵守语句的格式和程序语言中运算符号的书写要求.
2.牢记以下几种常见的算术运算符号
运算符 作用
^ 乘方运算,如(ab=a^b)
*,/ 乘法,除法运算,如(a×b=a*b)
+,- 加法,减法运算
——————————————————————————————————————
2.任给三个变量a,b,c赋值,计算a2-3b2+5c的值.
解:程序如下:
INPUT “a=”;aINPUT “b=”;bINPUT “c=”;cS=a*a-3*b*b+5*c PRINT S END
程序框图与算法语句的转化
[例3] 以下是一个用基本算法语句编写的程序,根据程序画出其相应的程序框图.
INPUT “x,y=”;x,y x=x/2 y=3*y PRINT x,y x=x-y y=y-1 PRINT x,y END
[自主解答] 程序框图如图所示:
——————————————————
由程序画程序框图的关键是分清程序的结构,使用了哪些基本的算法语句,从而据此判定算法的逻辑结构,然后将语句中的内容填入相应的程序框中即可得到相应的程序框图.同样由程序框图设计程序就要看框图中使用了哪些逻辑结构,这些结构使用哪些算法语句,然后把框图中的内容写入算法语句即可.
——————————————————————————————————————
3.根据下面程序框图,写出程序.
解:程序:
INPUT “x,y=”;x,y x=x/8 y=5*y PRINT x,y x=x+y y=x+2y PRINT x,y END
已知f(x)=x3-1,设计一个程序,求f[f(13)].
[巧思] 从函数角度看,求f[f(13)],可先求y1=f(13),再求f(y1),将它们与程序对照y1相当于“y=x^3-1”,f(y1)相当于“y=y^3-1”,其中从左往右看,第二个“y”相当于y1.
[妙解] 程序如下:
1.(2012·洛阳高一检测)赋值语句n=n+1的意思是( )
A.n等于n+1
B.n+1等于n
C.将n的值赋给n+1
D.将n的值增加1,再赋给n,即n的值增加1
答案:D
2.下列语句中,正确表示输出语句的是( )
A.INPUT“提示内容”;变量
B.PRINT“提示内容”;表达式
C.INPUT“变量”;提示内容
D.PRINT“表达式”;提示内容
答案:B
3.如图,此段程序运行的结果是( )
A.2 2 3 B.3 2 2
C.2 3 2 D.3 3 2
解析:初始:a=1,b=2,c=3,
a=b,则a=2,b=c,则b=3,
c=a,则c=2.
答案:C
4.(2011·福建高考)运行如图所示的程序,输出的结果是________.
解析:a=1,b=2,把1与2的和赋给a,即a=3,输出的结果是3.
答案:3
5.下列程序
输入2,4后则执行的结果是________.
解析:x=2,y=4,
x=x*y=2×4=8,
y=8-4=-4.
答案:8 -4
6.已知正四棱柱的底面边长和高分别为a和h,设计程序求其体积.
解:程序:
INPUT “a,h=”;a,h V=a^2*h PRINT “V=”;V END
一、选择题
1.下列给出的输入、输出语句正确的是( )
①输入语句INPUT a;b;c;②输入语句INPUT x=3;
③输出语句PRINT A=4;④输出语句PRINT 20,3*2
A.①② B.②③
C.③④ D.④
解析:①INPUT语句可以给多个变量赋值,变量之间用“,”隔开;②INPUT语句中只能是变量,而不能是表达式;③PRINT语句中不用赋值号“=”;④PRINT语句可以输出常量、表达式的值.
答案:D
2.(2012·福建六校联考)下列给变量赋值的语句正确的是( )
A.5=a B.a+2=a
C.a=b=4 D.a=2* a
解析:A错,因为赋值语句的左右两边不能对换,赋值语句是将赋值号右边表达式的值赋给赋值号左边的变量;C错,因为赋值语句不能把一个值同时赋给两个变量;B错,赋值语句左边是一个变量,而不是代数式;D项正确.
答案:D
3.下面程序输出的结果是( )
A.27 B.9
C.2+25 D.11
解析:该程序的运行过程是
x=6,
y=3,
x=6÷3=2,
y=4×2+1=9,
x+y=2+9=11.
所以输出11.
答案:D
4.下列程序若输出的结果为3,则输入的x值可能是( )
A.1 B.-3
C.-1 D.1或-3
解析:由x2+2x=3得x=1或x=-3.
答案:D
二、填空题
5.下面程序输出的结果是________.
解析:该程序的运行过程是:
a=5,
b=3,
c=(3+5)/2=4,
d=4×4=16,
输出d=16.
答案:16
6.下列程序在电脑屏幕上显示的结果为________.
解析:根据赋值语句和输出语句可知,输出语句可将用双引号括起来的字符串显示在屏幕上,从而应输出x=2.
答案:x=2
7.已知A(x1,y1),B(x2,y2)是平面上的两点,试设计一个程序,输入A、B两点的坐标,输出其中点的坐标.现已给出程序的一部分.试在横线上填上适当的语句,把程序补充完整.
答案:①x=(x1+x2)/2
②y=(y1+y2)/2
8.下面程序的功能是求所输入的两个正数的平方和,已知最后输出的结果是3.46,试据此将程序补充完整.
解析:由于程序的功能是求所输入的两个数的平方和,所以,S=x+x;又由于最后输出的结果是3.46,所以,3.46=1.12+x,所以,x=2.25,又x2是正数,
所以,x2=1.5.
答案:1.5 x1^ 2+x2^ 2
三、解答题
9.把下列程序用程序框图表示出来
解:程序框图:
10.某工种按工时计算工资,每月总工资=每月劳动时间(时)×每小时工资,从总工资中扣除的10%做公积金,剩余的为应发工资,输入劳动时间和每小时工资数,试编写程序输出应发工资,并画出程序框图.
解:算法如下:第一步,输入月劳动时间t和每小时工资a.
第二步,求每月总工资y=每月劳动时间t×每小时工资a.
第三步,求应发工资z=每月总工资y×(1-10%).
第四步,输出应发工资z.
程序框图如图:
程序如下:1.2.3 循环语句
[读教材·填要点]
两种循环语句的对比
名称 直到型 当型
程序结构框图
格式 DO循环体LOOP_UNTIL条件 WHILE 条件循环体WEND
执行步骤 先执行一次DO和UNTIL之间的循环体,再对UNTIL后的条件进行判断,如果条件不符合,继续执行循环体,然后再检查上述条件,如果条件仍不符合,再次执行循环体直到某一次条件符合为止.这时不再执行循环体,跳出循环体执行UNTIL语句后面的语句 先判断条件的真假,如果条件符合,就执行WHILE和WEND之间的循环体,然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止,这时不再执行循环体,跳出循环体,执行WEND后面的语句
[小问题·大思维]
1.何时应用循环语句?
提示:在问题处理中,经常要对某一步骤或若干步骤重复执行多次,即对不同的运算对象进行若干次的相同运算或处理,这种模式就对应程序设计中的循环结构,在算法中的循环结构就是由循环语句来实现的.
2.当型循环(WHILE)语句与直到型循环(UNTIL)语句在执行循环体上有何区别?
提示:①当型循环先判断条件后执行,循环体可能一次也不执行;
②直到型循环先执行一次循环体再判断条件,循环体至少执行一次;
③对同一个算法,当型循环语句与直到型循环语句中的条件是相反的.
UNTIL语句的应用
[例1] 编写程序计算12+32+52+…+9992,并画出相应的程序框图.
[自主解答]
程序如下: 程序框图如下图:
S=0i=1DO S=S+i^2i=i+2LOOP UNTIL i>999PRINT SEND
例若将“12+32+52+…+9992”改为“12+22+32+42+…+9992+1 0002”,则结果又如何呢?解:程序如下: S=0i=1DO S=S+i^2i=i+1LOOP UNTIL i>1 000PRINT SEND程序框图如下图:
——————————————————
1.直到型循环语句中先执行一次循环体,再判断条件是否满足,以决定继续循环还是退出循环.
2.循环次数的控制往往是判断条件,在循环体内要有控制条件的改变,否则会陷入死循环.
3.控制循环次数的变量要综合考虑初始化时和LOOP UNTIL后两处,若初始值为1,则循环体中累加,若初始值为循环的次数,则循环体中递减.
——————————————————————————————————————
1.输入100个数,将其中正数的个数输出,写出程序.
解:程序:
WHILE语句的应用
[例2] 编写程序求2×4×6×…×100的值.
[自主解答]
程序框图: 程序:
—
—————————————————
1.计算机执行当型循环语句时,先判断条件的真假,若条件为真,执行循环体,若为假则退出.
2.当型循环语句中WHILE和WEND成对出现.
3.判断条件往往是控制循环次数的变量.
——————————————————————————————————————
2.下面程序的运行结果是( )
A.3 B.7
C.10 D.17
解析:该程序的运行过程是:
i=1,
S=0,
i=1<4成立,
S=0×1+1=1,
i=1+1=2,
i=2<4成立,
S=1×2+1=3,
i=2+1=3,
i=3<4成立,
S=3×3+1=10,
i=3+1=4,
i=4<4不成立,
输出S=10.
答案:C
若1+2+3+4+5+…+n>2 008,试设计一个程序,寻找满足条件的最小整数n.
[错解] 采用累加的方法,1+2+3+…,一个数一个数地向上加,直到加上一个数刚好大于2 008,这个数就是要找的数.
程序如下:
[错因] 循环体中,将i的值累加给S后,i自身加1,这次对S进行判断,若S>2 008,则累加给S的变量i就满足了条件,而i又加1,这时输出的i是满足条件的数的下一个数.本题出错的根本原因在于循环体中语句的先后次序发生变化对程序的影响没有引起重视,另外也没有对结束循环的条件的边界作检验.
[正解] 法一:
法二:
1.下列关于循环语句的说法,不正确的是( )
A.算法中的循环结构只能由WHILE语句来实现
B.一般程序设计语言中有当型和直到型两种循环语句结构
C.循环语句中有当型和直到型两种语句,即WHILE语句和UNTIL语句
D.算法中的循环结构由循环语句来实现
答案:A
2.下列循环语句,循环终止时,i等于( )
A.3 B.4
C.5 D.6
解析:∵LOOP UNTIL i>4.
∴当i=5时,循环终止.
答案:C
3.下面程序运行后的输出结果为( )
i=1WHILE i<8 i=i+2S=2*i+3i=i-1WENDPRINT SEND
A.17 B.19
C.21 D.23
解析:最后一次执行循环体时,S=2×9+3=21,此时i=8.
答案:C
4.执行下面的程序语句,输入a=3,b=-1,n=4后,输出的结果是________.
INPUT “a,b,n=”;a,b,ni=1WHILE i<=n c=a+ba=bb=ci=i+1WENDPRINT cEND
解析:循环体被执行了四次, 第一次执行循环体得到的结果是:c=2,a=-1,b=2,i=2;执行第二次得到的结果是:c=1,a=2,b=1,i=3;执行第三次得到的结果是:c=3,a=1,b=3,i=4,执行第四次得到的结果是:c=4,a=3,b=4,i=5,这时的c被输出.
答案:4
5.下面是一个用于计算+++…+的程序,试填上适当的语句.
答案:SUM=SUM+
6.判断所给程序的功能.
n=0i=1DOINPUT x IF x<0 THENn=n+1END IFi=i+1LOOP UNTIL i>10PRINT nEND
解:由循环语句知:共输入10个x.
由条件语句及计数变量n的变化可知:
n记录的是满足x<0的x的个数.
故本程序的功能是:
统计10个数中负数的个数.
一、选择题
1.
i=1S=0WHILE i<=100 S=S+ii=i+1WENDPRINT SEND
该程序是下列哪个和式的计算( )
A. B.0+1+…+99
C.1+2+3+…+99 D.1+2+…+100
答案:C
2.关于当型循环语句叙述正确的是( )
A.总是执行循环体
B.执行一次循环体
C.满足条件时执行循环体
D.遇到WEND就执行循环体
解析:对于当型循环语句,条件成立时,执行循环体,否则不执行循环体.
答案:C
3.如果以下程序运行后输出的结果是132,那么在程序中LOOP UNTIL后面的“条件”应为( )
i=12s=1DO s=s*ii=i-1LOOP UNTIL 条件PRINT sEND
A.i>11 B.i>=11
C.i<=11 D.i<11
解析:该程序中使用了直到型循环语句,当条件不满足时执行循环体,满足时退出循环,由于输出132,故执行了两次循环体,因此条件应为“i<11”.
答案:D
4.已知程序如图,运行的结果是( )
A.j=j-1
B.j=100
C.j=10
D.j=9
解析:当j=10时,10×10=100,不再满足于j*j<100,跳出循环体,j=10-1=9.
答案:D
二、填空题
5.下列算法语句的功能是________(只写式子不计算).
i=1S=0DO S=S+ i=i+1LOOP UNTIL i>10PRINT SEND
答案:S=+++…++
6.写出运行下列程序后的输出结果.
(1) (2)
i=0S=0WHILE S<=20 S=S+ii=i+1WENDPRINT iEND
i=0S=0WHILE S<=20 i=i+1S=S+iWENDPRINT iEND
(1)____________; (2)____________.
解析:(1)1+2+3+4+5+6=21>20.
∴i=i+1=7
(2)同(1)可知i=6.
答案:7 6
7.用UNTIL语句编写程序,计算+++…+的值.程序如下:
i=1S=0DO S=S+1/(i+i+1)i=i+1LOOP UNTIL ________PRINT SEND
请将程序补充完整,横线处应填________.
解析:横线处应填循环终止的条件,由于该循环语句是直到循环型语句,则满足该条件时循环终止,故填i>19.
答案:i>19
8.下列问题可以设计成循环语句计算的是________.
①求1+3+32+…+39的和;
②比较a,b两个数的大小;
③对于分段函数,要求输入自变量,输出函数值;
④求平方值小于100的最大整数.
解析:根据循环结构的特点可知,对①④可利用循环结构来实现,因而可设计成循环语句来计算,而②③可用条件语句来计算.
答案:①④
三、解答题
9.(1)求1 000以内的完全平方数并输出.
(2)输出1~100中(包括1和100)能被7整除的所有整数.
解:(1)程序设计如下:
i=1WHILE i*i<1 000 PRINT i*ii=i+1WENDEND
(2)程序设计如下:
i=1DO IF i MOD 7=0 THEN PRINT iEND IFi=i+1LOOP UNTIL i>100END
10.2000年底我国人口总数约为13亿,现在我国人口平均年增长率为1%.编写程序,计算多少年后我国的人口总数将达到或超过18亿?
解:程序:
直到型 当型
[读教材·填要点]
1.辗转相除法与更相减损术
(1)辗转相除法:又叫欧几里得算法,是一种求两个正整数的最大公约数的古老有效的算法.
(2)更相减损术:我国古代数学专著《九章算术》中介绍的一种求两个正整数的最大公约数的算法.
2.秦九韶算法
功能 它是一种用于计算一元n次多项式的值的方法
改写后的形式 f(x)=anxn+an-1xn-1+…+a1x+a0=(anxn-1+an-1xn-2+…+a1)x+a0=((anxn-2+an-1xn-3+…+a2)x+a1)x+a0=…=(…((anx+an-1)x+an-2)x+…+a1)x+a0
计算方法 从括号最内层开始,由内向外逐层计算v1=anx+an-1,v2=v1x+an-2,v3=v2x+an-3,…vn=vn-1x+a0,这样,求n次多项式f(x)的值就转化为求n个一次多项式的值
3.进位制
(1)进位制是人们为了计数和运算方便而约定的计数系统,“满几进一”就是几进制,几进制的基数就是几.
(2)其他进制与十进制间的转化:
①其他进制转化为十进制
其他进制的数化成十进制时,表示成不同位上数字与基数的幂的乘积之和的形式.
②十进制化成k进制——“除k取余法”.
[小问题·大思维]
1.辗转相除法与更相减损术有什么联系?
提示:(1)都是求两个正整数的最大公约数的方法.
(2)二者的实质都是递推的过程.
(3)二者都要用循环结构来实现.
2.辗转相除法与更相减损术有什么区别?
提示:(1)计算上,辗转相除法以除法为主,更相减损术以减法为主.
(2)在计算次数上,辗转相除法计算次数相对较少,特别当两个数大小差别较大时计算次数的区别较明显.
(3)从输出结果看,辗转相除法当余数为0时输出除数,更相减损术当差和减数相等时输出差(或差与约简的数的乘积).
3.用秦九韶算法求x=2时,f(x)=x3+3x2+x+1的值,第一个一次多项式的值是什么?
提示:用秦九韶算法知,f(x)=[(x+3)x+1]x+1,∴由内向外第一个一次多项式的值为2+3=5.
求最大公约数
[例1] 用辗转相除法求80和36的最大公约数,并用更相减损术检验所得结果.
[自主解答] 用辗转相除法:
80=36×2+8,
36=8×4+4,
8=4×2+0.
故80和36的最大公约数是4.
用更相减损术检验:
80-36=44,
44-36=8,
36-8=28,
28-8=20,
20-8=12,
12-8=4
8-4=4.
故80和36的最大公约数是4.
——————————————————
求两数的最大公约数可用辗转相除法和更相减损术两种方法,一般地,用辗转相除法比用更相减损术运算步骤更简捷、更有效.
所谓辗转相除法,就是对于给定的两个正整数,用较大的数除以较小的数.若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数.
——————————————————————————————————————
1.用两种方法求378和90的最大公约数.
解:法一:辗转相除法:
378=90×4+18,
90=18×5+0,
所以378与90的最大公约数是18.
法二:更相减损术:
因为378与90都是偶数.
所以用2约简得189和45.
189-45=144,144-45=99,
99-45=54,54-45=9,
45-9=36,36-9=27,
27-9=18,18-9=9.
所以378与90的最大公约数为2×9=18.
秦九韶算法的应用
[例2] 用秦九韶算法求多项式f(x)=2x4-6x3-5x2+4x-6在x=5时的值.
[自主解答] 由于f(x)=2x4-6x3-5x2+4x-6
=(((2x-6)x-5)x+4)x-6.
根据秦九韶算法,
我们有:
v0=2,v1=2x-6=2×5-6=4,
v2=4x-5=4×5-5=15,
v3=15x+4=15×5+4=79,
v4=79x-6=79×5-6=389.
——————————————————
1.秦九韶算法的步骤
2.应用秦九韶算法计算多项式的值应注意的问题
(1)要正确将多项式的形式进行改写.
——————————————————————————————————————
2.用秦九韶算法求多项式f(x)=8x7+5x6+3x4+2x+1当x=2时的值.
解:根据秦九韶算法,把多项式改写成如下形式:
f(x)=8x7+5x6+0·x5+3·x4+0·x3+0·x2+2x+1
=((((((8x+5)x+0)x+3)x+0)x+0)x+2)x+1.
而x=2,所以有
v0=8,
v1=8×2+5=21,
v2=21×2+0=42,
v3=42×2+3=87,
v4=87×2+0=174,
v5=174×2+0=348,
v6=348×2+2=698,
v7=698×2+1=1 397.
所以当x=2时,多项式的值为1 397.
进位制及其转化
[例3] 将八进制数3 726(8),化成十进制数.
[自主解答] ∵3 726(8)=3×83+7×82+2×8+6
=2 006,
∴3 726(8)=2 006.
将本例改为“化为五进制数”其结果又该如何?解: 把上式中各步所得余数从下到上排列得到2 006=31 011(5),∴3 726(8)=31 011(5).
——————————————————
1.非十进制数之间的转化,需先将其先化为十进制数,再将十进制数化为另一进制数.如:八进制数化为二进制数,则先将八进制数化为十进制数;再将十进制数化为二进制数.
2.注意除k取余法的余数取法:从下向上.
——————————————————————————————————————
3.将八进制数74化成二进制数.
解:首先将八进制数74化成十进制数:
74(8)=7×81+4×80=60(10),
然后再将十进制数60化成二进制数.
所以60(10)=111 100(2).
综上可得76(8)=111 100(2).
若二进制数10b1(2)和三进制数a02(3)相等,求正整数a,b.
[巧思] 先将这两个数化为十进制数,再利用两数相等,同时注意a,b的取值范围来求a,b的值.
[妙解] ∵10b1(2)=1×23+b×21+1=2b+9,
a02(3)=a×32+2=9a+2,
∴2b+9=9a+2.
即9a-2b=7.
又∵a∈{1,2},b∈{0,1}.
∴当a=1时,b=1,符合题意;
当a=2时,b=不合题意.
∴a=1,b=1.
1.下列各数中,可能是五进制的数是( )
A.55 B.106
C.732 D.2 134
解析:五进制的数是0~4之间的数.
答案:D
2.用辗转相除法求294和84的最大公约数时,需要做除法的次数是( )
A.1 B.2
C.3 D.4
解析:由294=84×3+42,84=42×2知,共需做2次除法.
答案:B
3.用秦九韶算法求多项式的值,可用哪种结构的算法实现( )
A.顺序结构 B.条件结构
C.循环结构 D.A、B两种
答案:C
4.用秦九韶算法求f(x)=3x6+4x5+5x4+6x3+7x2+8x+1,当x=0.4时的值,需进行乘法运算和加法运算的次数分别为( )
A.6 6 B.5 6
C.6 5 D.6 12
解析:改写多项多f(x)=(((((3x+4)x+5)x+6)x+7)x+8)x+1,则需要6次乘法和6次加法.
答案:A
5.将二进制数101 101(2)化为八进制数,结果为________.
解析:101 101(2)=1×25+0×24+1×23+1×22+0×2+1
=32+8+4+1=45.
101 101(2)=55(8).
答案:55(8)
6.用秦九韶算法求多项式f(x)=3x6+12x5+8x4-3.5x3+7.2x2+5x-13在x=6时的值.
解:f(x)=(((((3x+12)x+8)x-3.5)x+7.2)x+5)x-13,
v0=3,v1=3×6+12=30,
v2=v1x+8=30×6+8=188,
v3=v2x-3.5=188×6-3.5=1 124.5,
v4=v3x+7.2=1 124.5×6+7.2=6 754.2,
v5=v4x+5=6 754.2×6+5=40 530.2,
v6=v5x-13=40 530.2×6-13=243 168.2,
∴f(6)=243 168.2.
一、选择题
1.关于进位制说法错误的是( )
A.进位制是人们为了计数和运算方便而约定的记数系统
B.二进制就是满二进一,十进制就是满十进一
C.满几进一,就是几进制,几进制的基数就是几
D.为了区分不同的进位制,必须在数的右下角标注基数
解析:一般情况下,不同的进位制须在数的右下角标注基数,但十进制可以不用标注,所以不是必须在数的右下角标注基数,所以D错误.
答案:D
2.下列四个数中,数值最小的是( )
A.25(10) B.111(10)
C.10 110(2) D.10 111(2)
解析:C中10 110(2)=1×24+1×22+2=22,
D中,10 111(2)=23.
答案:C
3.用更相减损术求1 515和600的最大公约数时,需要做减法次数是( )
A.15 B.14
C.13 D.12
解析:1 515-600=915,915-600=315,600-315=285,315-285=30,285-30=255,255-30=225,225-30=195,195-30=165,165-30=135,135-30=105,105-30=75,75-30=45,45-30=15,30-15=15.
∴1 515与600的最大公约数是15.则共做14次减法.
答案:B
4.计算机中常用的十六进制是逢16进1的计数制,采用数字0~9和字母A~F共16个计数符号,这些符号与十进制数的对应关系如下表:
十六进制 0 1 2 3 4 5 6 7 8 9 A B C D E F
十进制 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
例如,用十六进制表示:E+D=1B,则A×B等于( )
A.6E B.72
C.5F D.B0
解析:A×B用十进制表示10×11=110,而110=6×16+14,所以用16进制表示6E.
答案:A
二、填空题
5.103(5)化为十进制数为________.
解析:103(5)=1×52+0×51+3=28.
答案:28
6.用更相减损术可求得78与36的最大公约数是________.
解析:78-36=42,42-36=6,
36-6=30,30-6=24,24-6=18,
18-6=12,12-6=6.
答案:6
7.已知a=333,b=24,则使得a=bq+r(q,r均为自然数,且0≤r<b)成立的q和r的值分别为________.
解析:用333除以24,商即为q,余数即为r.
333÷24=13…21.
答案:13 21
8.已知k进制数132与十进制数30相等,则k的值为________.
解析:由题意得1×k2+3×k+2=30.
即k2+3k-28=0.解之得
k=4或k=-7(舍去).
答案:4
三、解答题
9.用秦九韶算法求多项式f(x)=1+x+0.5x2+0.166 67x3+0.041 67x4+0.008 33x5,当x=-0.2时的值.
解:根据秦九韶算法,把多项式改写成如下形式:
f(x)=((((0.008 33x+0.041 67)x+0.166 67)x+0.5)x+1)x+1.
按照从内到外的顺序依次计算一次多项式当x=-0.2时的值:
v0=0.008 33;
v1=0.008 33×(-0.2)+0.041 67=0.040 004;
v2=0.040 004×(-0.2)+0.166 67=0.158 669 2;
v3=0.158 669 2×(-0.2)+0.5=0.468 266 16;
v4=0.468 266 16×(-0.2)+1=0.906 346 768;
v5=0.906 346 768×(-0.2)+1=0.818 730 646.
∴当x=-0.2时,多项式的值为0.818 730 646.
10.古时候,当边境有敌人来犯时,守边的官兵通过在烽火台上举火向国内报告,如图,烽火台上点火,表示数字1,不点火表示数字0,约定二进制数对应的十进制的单位是1 000,请你计算一下,这组烽火台表示约有多少敌人入侵?
解:由图可知从左到右的五个烽火台,表示二进制数的自左到右五个数位,依题意知这组烽火台表示的二进制数是11 011,改写为十进制为:
11 011(2)=1×24+1×23+0×22+1×21+1×20
=16+8+2+1=27(10).
又27×1 000=27 000,
所以这组烽火台表示边境约有27 000个敌人来犯.1.1.1 算法的概念
[读教材·填要点]
1.算法的概念
12世纪的算法 指的是用阿拉伯数字进行算术运算的过程
数学中的算法 通常是指按照一定规则解决某一类问题的明确和有限的步骤
现代算法 通常可以编成计算机程序,让计算机执行并解决问题
2.算法与计算机
计算机解决任何问题都要依赖于算法,只有将解决问题的过程分解为若干个明确的步骤,即算法,并用计算机能够接受的“语言”准确地描述出来,计算机才能够解决问题.
[小问题·大思维]
1.解决一个问题的算法是唯一的吗?
提示:不唯一.如解二元一次方程组的算法,有加减消元法和代入消元法两种.但不同的算法有优劣之分.
2.是不是任何一个算法都有明确结果?
提示:是.因为算法的步骤是明确的和有限的,有时可能需要大量重复的计算,但只要按部就班地做,总能得到确定的结果.
3.算法与一般意义上具体问题的解法相同吗?
提示:不同,它们既有区别,又有联系,算法的获得要借助一般意义上具体问题的求解方法,而任何一个具体问题都可以利用这类问题的一般算法来解决.
算法的概念
[例1] 下列语句表述为算法的是( )
①从济南到巴黎,可以先乘火车到北京,再坐飞机抵达;
②利用公式S=ah计算底为1,高为2的三角形的面积;
③x>2x+4;
④求M(1,2)与N(-3,-5)两点连线的方程,可先求M,N的斜率, 再利用点斜式方程求得.
A.①②③ B.①③④
C.①②④ D.②③④
[自主解答] 算法是解决问题的步骤与过程,这个问题并不仅仅限于数学问题,①②④都表达了一种算法.
[答案] C
——————————————————
算法具有如下特点:
1 确定性:算法中的每一步都应该是确定的,并且能有效地执行得到确定的结果,而不能含糊其辞,含有歧义.
(2)有限性:对于一个算法来说,它的操作步骤必须是有限的,必须在有限的步骤之内完成.
(3)普遍性:一个算法通常设计成能解决一类问题,不是仅仅解决一个单独问题.
(4)不唯一性:解决一个问题可能有多个算法,但有优劣之分,其中操作简单、步骤少且能解决一类问题的算法称为最优算法.
—————————————————————————————————————
1.下列关于算法的描述正确的是( )
A.算法与求解一个问题的方法相同
B.算法只能解决一个问题、不能重复使用
C.算法的过程要一步一步操作,每步操作必须确切
D.有的算法执行完后,可能无结果
答案:C
算法的设计
[例2] 已知长方体的长、宽、高分别为a、b、h设计算法求其体积.
[自主解答] 算法如下:
第一步,输入长方体的长a、宽b、高h.
第二步:计算V=abh.
第三步:输出V.
——————————————————
——————————————————————————————————————
2.解关于x的方程ax+2=0(a∈R)写出算法.
解:第一步:移项得ax=-2,
第二步:当a≠0时,x=-,输出x,
当a=0,输出方程无根.
非数值性算法的设计
[例3] 各种比赛在计算选手最后得分时,要去掉所有评委对该选手所打分数中的最高分和最低分,试设计一个找出最高分的算法.
[自主解答] 算法如下:
第一步,先假定其中一个为“最高分”.
第二步,将第二个分数与“最高分”比较,如果它比“最高分”还高,就假定这个分数为“最高分”;否则“最高分”不变.
第三步,如果还有其他分数,重复第二步.
第四步,一直到没有可比的分数为止,这时假定的“最高分”就是所有评委打分中的最高分.
——————————————————
对于非数值性问题,应当首先建立过程模型,根据过程设计步骤,完成算法,在设计算法时应简洁、清晰,要善于分析任何可能出现的情况以体现思维的严谨性.
——————————————————————————————————————
3.据《中国体育报》报道:对参与竞选的5个夏季奥林匹克运动会申办城市进行表决的操作程序是:首先进行第一轮投票,如果有一个城市得票数超过总票数的一半,那么该城市将获得举办权;如果所有申办城市得票数都不超过总票数的一半,则将得票最少的城市淘汰,然后进行第二轮投票;如果第二轮投票仍没选出主办城市,将进行第三轮投票,如此重复投票,直到选出一个主办城市为止,写出投票过程的算法.
解:算法如下:
第一步,投票.
第二步,统计票数,如果一个城市得票数超过总票数的一半,那么该城市就获得主办权,否则淘汰得票数最少的城市转第一步.
第三步,宣布主办城市.
写出求方程组的解的算法.
解:法一:第一步,①×(-)+②,得到(+1)y=-2-,即方程组可化为
第二步,解方程③可得y=-4;④
第三步,将④代入②,可得x-4=-2,x=2;
第四步,输出2,-4.
算法二:第一步,由②式可以得到x=-2-y ⑤.
第二步,把x=-2-y代入①,得到y=-4.
第三步,把y=-4代入⑤,得x=2.
第四步,输出2,-4.
1.算法的有穷性是指( )
A.算法的最后必包含输出
B.算法中每个操作步骤都是可执行的
C.算法的步骤必须有限
D.以上说法均不正确
答案:C
2.在用二分法求方程零点的算法中,下列说法正确的是( )
A.这个算法可以求所有的零点
B.这个算法可以求任何方程的零点
C.这个算法能求所有零点的近似解
D.这个算法可以求变号零点的近似解
解析:二分法的理论依据是函数的零点存在定理,它解决的是求变号零点的问题,并不能求所有零点的近似值.
答案:D
3.下列所给问题中,不可以设计一个算法求解的是( )
A.求1+2+3+…+10的和
B.解方程组
C.求半径为3的圆的面积
D.判断y=x2在R上的单调性
答案:D
4.已知一个学生的语文成绩为89,数学成绩为96,外语成绩为99.求他的总分和平均分的一个算法为:
第一步,令A=89,B=96,C=99.
第二步,计算总分S=____①____.
第三步,计算平均分M=____②____.
第四步,输出S和M.
答案:①A+B+C ②
5.给出下面的算法:
第一步,输入x.
第二步,判断x是否小于0,若是,则输出x+2,否则执行第三步.
第三步,输出x-1.
当输入的x的值分别为-1,0,1时,输出的结果分别为________、________、________.
解析:该算法实际上是分段函数
f(x)=
∴f(-1)=-1+2=1,f(0)=0-1=-1,
f(1)=1-1=0.
答案:1 -1 0
6.写出一个算法,求底面边长为4,侧棱长为5的正四棱锥的体积.
解:如图
算法一:S1 令a=4,l=5;
S2 计算R=·;
S3 计算h=;
S4 计算S=a2;
S5 计算V=Sh;
S6 输出运算结果V.
算法二:S1 令a=4,l=5;
S2 计算V=a2;
S3 输出运算结果V.
一、选择题
1.下列不能看成算法的是( )
A.洗衣机的使用说明书
B.烹制油焖大虾的菜谱
C.从山东省莱芜市乘汽车到北京,再从北京坐飞机到纽约
D.李明不会做饭
答案:D
2.在用二分法求方程零点的算法中,下列说法正确的是( )
A.这个算法可以求方程所有的零点
B.这个算法可以求任何方程的零点
C.这个算法能求方程所有的近似零点
D.这个算法并不一定能求方程所有的近似零点
解析:二分法求方程零点的算法中,仅能求方程的一些特殊的近似零点.(满足函数零点存在性定理的条件)则D正确.
答案:D
3.已知算法:
第一步,输入n.
第二步,判断n是否是2,若n=2,则n满足条件.
若n>2,则执行第三步.
第三步,依次检验从2到n-1的整数能不能整除n,若不能整除n,满足条件.
上述满足条件的数是( )
A.质数 B.奇数
C.偶数 D.4的倍数
解析:由质数的定义知.
答案:A
4.下列算法要解决的问题是( )
第一步,比较a与b的大小,如果a<b,则交换a,b的值.
第二步,比较a与c的大小,如果a<c,则交换a,c的值.
第三步,比较b与c的大小,如果b<c,则交换b,c的值.
第四步,输出a,b,c.
A.输入a,b,c三个数,比较a,b,c的大小
B.输入a,b,c三个数,找出a,b,c中的最大数
C.输入a,b,c三个数,按从大到小的顺序输出
D.输入a,b,c三个数,求a,b,c的平均数
解析:由步骤S1→S4可知算法要解决问题是输入a,b,c三个数,按从大到小的顺序输出.
答案:C
二、填空题
5.某人坐飞机去外地办一件急事,下面是他自己从家里出发到坐在机舱内的主要算法,请补充完整.
第一步,乘车去飞机场售票处.
第二步,____________.
第三步,凭票登机对号入座.
答案:在售票处购买飞机票
6.小明中午放学回家自己煮面条吃,有下面几道工序:①洗锅盛水2分钟;②洗菜6分钟;③准备面条及佐料2分钟;④用锅把水烧开10分钟;⑤煮面条和炒菜共3分钟.以上各道工序,除了④之外,一次只能进行一道工序.小明要将面条煮好,最少要用________分钟.
解析:①洗锅盛水2分钟+④用锅把水烧开10分钟(同时②洗菜6分钟+③准备面条及佐料2分钟)+⑤煮面条和炒菜共用3分钟=15分钟.
答案:15
7.求过P(a1,b1),Q(a2,b2)两点的直线斜率有如下的算法,请将算法补充完整:
第一步,令x1=a1,y1=b1,x2=a2,y2=b2.
第二步,若x1=x2,则输出斜率不存在,结束算法;否则,________.
第三步,输出结果k.答案:k=
8.已知数字序列:2,5,7,8,15,32,18,12,55,9.写出从该序列搜索18的一个算法.
第一步,输入实数a.
第二步,____________________________________.
第三步,输出a=18.
答案:如果a=18,则执行第三步,否则重复执行第一步.
三、解答题
9.有蓝和黑两个墨水瓶,但现在却错把蓝墨水装在了黑墨水瓶中,黑墨水错装在了蓝墨水瓶中,要求将其互换,请你设计算法解决这一问题.
解:算法步骤如下:
第一步,取一只空的墨水瓶,设其为白色.
第二步,将黑墨水瓶中的蓝墨水装入白瓶中.
第三步,将蓝墨水瓶中的黑墨水装入黑墨水瓶中.
第四步,将白瓶中的蓝墨水装入蓝墨水瓶中,交换结束.
10.写出求经过点M(-2,-1),N(2,3)的直线与两坐标轴围成的三角形面积的一个算法.
解:算法步骤如下:
第一步,取x1=-2,y1=-1,x2=2,y2=3.
第二步,得直线方程=.
第三步,在第二步的方程中,令x=0,得y的值为1,从而得直线与y轴的交点为B(0,1).
第四步,在第二步的方程中,令y=0,得x的值为-1,从而得直线与x轴的交点为A(-1,0).
第五步,根据三角形的面积公式求
S=×|1|×|-1|=.
第六步,输出运算结果.1.1.2 程序框图与算法的基本逻辑结构 第一课时
第一课时 程序框图与顺序结构、条件结构
[读教材·填要点]
1.程序框图
(1)定义:
程序框图又称流程图,是一种用程序框、流程线及文字说明来表示算法的图形.
(2)组成:
程序框:表示算法中的一个步骤.
流程线:表示算法步骤的执行顺序.
(3)常见的程序框、流程线及各自表示的功能.
图形符号 名称 功能
终端框(起止框) 表示一个算法的起始和结束
输入、输出框 表示一个算法输入和输出的信息
处理框(执行框) 赋值、计算
判断框 判断某一条件是否成立,成立时在出口处标明“是”或“Y”;不成立时标明“否”或“N”
流程线 连接程序框
连接点 连接程序框图的两部分
2.算法的基本逻辑结构
名称 定义 结构形式 特征
顺序结构 由若干个依次执行的步骤组成的基本结构 任何一个算法都离不开的基本结构
条件结构 算法的流程根据条件是否成立有不同的流向,处理上述过程的结构就是条件结构 两个步骤A、B根据条件选择一个执行
根据条件选择是否执行步骤A
[小问题·大思维]
1.程序框图由哪几部分组成?
提示:(1)表示相应操作的程序框;
(2)带有方向箭头的流程线;
(3)程序框内及流程线上必要的文字说明.
2.判断下列关于程序框图的说法是否正确?
(1)程序框图是描述算法的语言;
(2)在程序框图中,一个判断框最多只能有1个退出点;
(3)程序框图虽可以描述算法,但不如用自然语言描述算法直观;
(4)程序框图和流程图不是一个概念.
提示:(1)正确;(2)错误,判断框是具有超过一个退出点的唯一符号.(3)错误,程序框图比自然语言描述的算法更形象、直观;(4)错误,程序框图和流程图是同一个概念.
3.判断框有两个退出点,是否表示在这里要同时执行?
提示:不是.判断框的退出点在任何情况下都是根据条件去执行其中的一个,而另一个不会被执行,故判断框后的指向线应根据情况标注“是”或“否”.
顺序结构
[例1] 利用梯形的面积公式计算上底为2,下底为4,高为5的梯形面积,设计出该问题的算法及程序框图.
[自主解答] 算法如下:
第一步,a=2,b=4,h=5.
第二步,S=(a+b)h.
第三步,输出S.
该算法的程序框图如图所示:
——————————————————
(1)顺序结构的适用范围:数学中很多问题都可以按顺序结构设计算法,如运用公式进行计算、几何中的作图步骤等.
(2)应用顺序结构表示算法的步骤:
①仔细审题,理清题意,找到解决问题的方法;
②梳理解题步骤;
③用数学语言描述算法,明确输入量、计算过程、输出量;
④用程序框图表示算法过程.
——————————————————————————————————————
1.已知圆的半径,设计一个算法求圆的周长和面积的近似值,并用程序框图表示.
解:算法步骤如下:
第一步,输入圆的半径R.
第二步,计算L=2πR.
第三步,计算S=πR2.
第四步,输出L和S.
程序框图:
条件结构
[例2] 设计一个算法判断由键盘输入的一个整数是不是偶数,并画出程序框图.(提示:看被2除的余数是否为零)
[自主解答] 算法分析:第一步,输入整数x.
第二步,令y是x除以2所得的余数.
第三步,判断y是否为零,若y是零,输出“是偶数”,结束算法;若y不是零,输出“不是偶数”,结束算法.
程序框图:
——————————————————
1.凡是根据条件作出判断,再决定进行哪一个步骤的问题,在使用程序框图时,必须引入判断框,应用条件结构,如分段函数求值,数据的大小比较及含“若……,则……”字样的问题等
2.解题时应注意:常常先判断条件,再决定程序流向判断框有两个出口,但在最终执行程序时,选择的路线只有一条.
——————————————————————————————————————
2.儿童乘坐火车时,若身高不超过1.2 m,则无需购票;若身高超过1.2 m,但不超过1.5 m,可买半票;若超过1.5 m,应买全票,请设计一个算法,并画出程序框图.
解:根据题意,该题的算法中应用条件结构,首先以身高为标准,分成买票和免费,在买票中再分出半票和全票.买票的算法步骤如下:
第一步:测量儿童身高h.
第二步:如果h≤1.2 m,那么免费乘车,否则若h≤1.5 m,则买半票,否则买全票.
程序框图如图所示:
如图所示,是求函数y=|x-3|的函数值的程序框图,则①处应填________,②处应填________.
[巧思] 借助学习过函数y=|x-3|=
故而①处应判断x<3?,若条件为否也就是x≥3,则执行y=x-3.
[妙解] ∵y=|x-3|=
∴①中应填x<3
又∵若x≥3,则y=x-3.
∴②中应填y=x-3.
[答案] x<3? y=x-3
1.如图所示的程序框是( )
A.终端框 B.输入框
C.处理框 D.判断框
答案:C
2.下列问题的算法适宜用条件结构表示的是( )
A.求点P(-1,3)到直线l:3x-2y+1=0的距离
B.由直角三角形的两直角边求斜边
C.解不等式ax+b>0(a≠0)
D.计算3个数的平均数
解析:条件结构是先进行逻辑判断,并根据判断结果进行不同处理的结构,只有C项中需要判断a的符号,其余选项都不含逻辑判断.
答案:C
3.下列关于流程线的说法,不正确的是( )
A.流程线表示算法步骤执行的顺序,用来连接程序框
B.流程线只要是上下方向就表示自上向下执行可以不要箭头
C.流程线无论什么方向,总要按箭头的指向执行
D.流程线是带有箭头的线,它可以画成折线
解析:流程线上必须要有箭头来表示执行方向,故B错误.
答案:B
4.如图是求某个函数的函数值的程序框图,则满足该程序的函数的解析式为________.
解析:当满足x<0时,f(x)=2x-3;当不满足x<0,即x≥0时,f(x)=5-4x,所以满足该程序的函数解析式为f(x)=
答案:f(x)=
5.如图所示的一个算法的程序框图,已知a1=3,输出的结果为7,则a2的值为________.
解析:由框图可知,b=a1+a2
再将赋值给b,
∴7×2=a2+3
∴a2=11.
答案:11
6.求分段函数y=的函数值,请设计算法和框图.
解:算法:
第一步,输入x.
第二步,如果x<0,则使y=2x-1,输出y,否则执行第三步.
第三步,如果0≤x<1,则使y=x2+1,输出y,否则执行第四步.
第四步,y=x3+2x.
第五步,输出y.
相应的程序框图如下图所示.
一、选择题
1.关于程序框图的图形符号的理解,正确的有( )
①任何一个程序框图都必须有起止框;
②输入框只能放在开始框后,输出框只能放在结束框前;
③判断框是唯一具有超过一个退出点的图形符号;
④对于一个程序来说,判断框内的条件是唯一的.
A.1个 B.2个
C.3个 D.4个
解析:任何一个程序都必须有开始和结束,从而必须有起止框;输入和输出可以用在算法中任何需要输入、输出的位置,但是必须在开始框后结束框前;判断框内的条件不是唯一的,如“a>b?”亦可写为“a≤b?”,故①、②、③正确;④错误.
答案:C
2.任何一种算法都离不开的基本结构为( )
A.逻辑结构 B.条件结构
C.顺序结构 D.以上都不对
解析:任何一种算法都离不开顺序结构.
答案:C
3.下列算法中可以用条件结构表示的是( )
A.求点到直线的距离
B.已知梯形的两底及高求面积
C.解一元二次方程
D.求两个数的积
解析:C选项中需要判断根的判别式与零的大小关系,∴用到条件结构.
答案:C
4.某市的出租车收费办法如下:不超过2 km收7元(即起步价7元),超过2 km的里程每 km收2.6元,另每车次超过2 km收燃油附加费1元(不考虑其他因素).相应收费系统的程序框图如图所示,则①处应填( )
A.y=7+2.6x B.y=8+2.6x
C.y=7+2.6(x-2) D.y=8+2.6(x-2)
解析:结合框图可知,当超过2 km后收费应为起步价和2 km以外的路费及燃油费之和,即y=7+2.6×(x-2)+1=8+2.6(x-2).
答案:D
二、填空题
5.如图是求实数x的绝对值的算法程序框图,则判断框①中可填________.
解析:由程序框图可知,满足判断框①时,输出实数x本身,所以判断框①中可填x≥0?或x>0?.
答案:x≥0?或x>0
6.如图所示的算法功能是________.
解析:根据条件结构的定义,
当a≥b时,输出a-b;
当a<b时,输出b-a.
故输出|b-a|.
答案:计算|b-a|
7.如图,输出的结果是________.
解析:由程序框图知,当m=2时,p=2+5=7,
m=7+5=12.
答案:12
8.对任意非零实数a,b,若a b的运算原理的程序框图如图所示,则3 2=________.
解析:由程序框图可知
若a≤b,则输出
若a>b,则输出.
又∵3>2,
∴输出=2.
答案:2
三、解答题
9.某居民区的物业管理部门每月向居民收取卫生费,计费方法是:3人和3人以下的住户,每户收取5元;超过3人的住户,每超出一人加收1.2元.设计一个算法,根据住户的人数,计算应收取的卫生费,并画出程序框图.
解:算法如下:
第一步,输入x.
第二步,若x≤3,则y=5;否则,y=5+1.2(x-3).
第三步,输出y.
程序框图如图所示:
10.如图,给出了一个程序框图,其作用是输入x的值,输出相应的y的值.若要使输入的x的值与输出的y的值相等,求这样的x的值.
解:当x≤2时,y=x2,
由x=x2的x=0或x=1,都成立.
当2由x=2x-3得x=3,也成立.
当x>5时,y=,
由x=得x=±1(舍去).
∴满足条件的x的取值有0,1,3.1.1.2 程序框图与算法的基本逻辑结构 第二课时
第二课时 循环结构的程序框图的算法
[读教材·填要点]
循环结构
(1)概念:在算法中,从某处开始,按照一定的条件反复执行某些步骤的结构称为循环结构,反复执行的步骤称为循环体可以用如图(1)(2)所示的程序框图表示.
(2)直到型循环结构:如图(1)所示,其特征是:在执行了一次循环体后,再对条件进行判断,如果条件不满足,就继续执行循环体,直到条件满足时终止循环.
(3)当型循环结构:如图(2)所示,其特征是:在每次执行循环体前,对条件进行判断,当条件满足时,执行循环体,否则终止循环.
[小问题·大思维]
1.循环结构中判断框中的条件是唯一的吗?
提示:不是.在具体的程序框图设计时,这里的条件可以不同,但不同表示应该有共同的确定的结果.
2.如图,下面的程序框图中,是否含有所有的程序框?若不是,缺少哪一个?
提示:不是;缺少判断框.
累乘(加)问题
[例1] 设计求12+22+32+…+n2的一个算法,并画出相应的程序框图.
[自主解答] 第一步,令i=1,S=0.
第二步,S=S+i2.
第三步,i=i+1.
第四步,若i不大于n,则转到第二步,否则输出S.
程序框图:
——————————————————
1.用循环结构描述算法,需确定三件事
(1)确定循环变量和初始条件;
(2)确定算法中反复执行的部分,即循环体;
(3)确定循环的循环条件.
2.注意事项
(1)不要漏掉流程线的箭头.
(2)与判断框相连的流程线上要标注“是”或“否”.
(3)循环结构要在某个条件下终止循环,这就需要用条件结构来判断,因此循环结构中一定包含条件结构,但不允许是死循环.
3.一个循环结构可以使用当型,也可以使用直到型,但根据条件限制的不同,有时用当型比用直到型要好,关键是看题目中给定的条件,有时用两种循环都可以.当型循环结构是指当条件满足时执行循环体,直到型循环结构是指直到条件满足时退出循环体,这是两者的本质区别.
——————————————————————————————————————
1.设计求1+++…+的值的一个算法并画出一个程序框图.
解:算法步骤如下:
第一步,i=1.
第二步,S=0.
第三步,如果i≤999,则执行第四步,否则执行第六步.
第四步,S=S+.
第五步,i=i+2返回第三步.
第六步,输出S.
程序框图如下所示:
实际应用题
[例2] 某班共有学生50人,在一次数学测试中,要搜索出测试中及格(60分及以上)的成绩,试设计一个算法,并画出程序框图.
[自主解答] 算法如下:第一步,i=1.
第二步,输入x,
第三步,若x≥60则输出.
第四步,i=i+1.
第五步,判断i>50,是结束;否则执行第二步.
——————————————————
(4)确定每一个算法步骤所包含的逻辑结构,对于要重复执行的步骤,通常用循环结构来设计,并用相应的程序框图表示,得到表示该步骤的程序框图;
(5)将所有步骤的程序框图用流程线连接起来,并加上终端框,得到表示整个算法的程序框图.
——————————————————————————————————————
2.某商场第一年销售计算机5 000台,如果平均每年销售量比上一年增加10%,那么从第一年起,大约几年可使总销售量达40 000台?画出解决此问题的程序框图.
解:程序框图如图所示:
画出满足12+22+32+…+n2>106的最小正整数n的程序框图.
[错解一] 引入计数变量i和累加变量S,利用循环结构,将i2的值赋给S后,将i加1,依次循环直到满足条件后输出的i就是所求的n.程序框图如图①.
[错解二] 引入计数变量i和累加变量S,循环体中的i加1后,再将i2加给S,直到满足条件时,输出的i就是所求的n.算法框图如图②.
[错因] 错解一中变量i2加给S后i再加1,在检验条件时,满足条件后输出的i比实际值多1,显然是未重视最后一次循环的检验所致;错解二中,i加1后再把i2加给S,由于开始时i=1,这样导致第一次执行循环体时加的就是22,漏掉了第1项,是由于未重视第一次执行循环时的数据所致.故在循环结构框图中设计算法时,应注意以下三点:
①注意各个语句顺序不同对结果的影响;
②注意各个变量初始值不同对结果的影响;
③要对循环开始和结束的变量及结束时变量的值认真检验,以免出现多循环或者漏循环.
[正解] 程序框图:
1.根据指定条件决定是否重复执行一条或多条指令的控制结构称为( )
A.条件结构 B.循环结构
C.递归结构 D.顺序结构
答案:B
2.下列框图是循环结构的是( )
A.①② B.②③
C.③④ D.②④
解析:①是顺序结构;②是条件结构;③是当型循环结构;④是直到型循环结构.
答案:C
3.(2012·广东高考)执行如图所示的程序框图,若输入n的值为6,则输出s的值为( )
A.105 B.16 C.15 D.1
解析:按照程序过程,通过反复判断循环条件执行程序.执行过程为 s=1×1=1,i=3;s=1×3=3,i=5;s=3×5=15,i=7≥6,跳出循环.故输出s的值为15.
答案:C
第3题图 第4题图
4.(2012·江苏高考)如图是一个算法流程图,则输出的k的值是________.
解析:由k2-5k+4>0得k<1或k>4,所以k=5.
答案:5.
5.某城市缺水问题比较突出,为了制定节水管理办法,对全市居民某年的月均用水量进行了抽样调查,根据图所示的程序框图,若其中4位居民的月均用水量(单位:吨)分别为1,1.5,1.5,2,则输出的结果s为________.
解析:第一(i=1)步:s1+xi=0+1=1;
第二(i=2)步:s1=s1+xi=1+1.5=2.5;
第三(i=3)步:s1+xi=2.5+1.5=4;
第四(i=4)步:s1=s1+si=4+2=6,s=×6=.
答案:
6.画出计算1+++…+的值的程序框图.
解:程序框图:
一、选择题
1.直到型循环结构对应的框图为( )
答案:B
2.如图所示的程序框图中,循环体是( )
A.① B.②
C.③ D.②③
答案:B
3.一个算法的程序框图如图所示,当输入的x值为3时,输出y的值恰好是,则“?”处的关系式是( )
A.y=x3 B.y=3-x
C.y=3x D.y=x
解析:当x=3时,∵x>0,∴由x=x-2,得x=1;再用x=x-2,得x=-1;而当x=-1时,3x=.
答案:C
4.阅读下边的程序框图,运行相应的程序,则输出S的值为( )
A.8 B.18
C.26 D.80
解析:程序执行情况为S=31-30=2,n=2;S=2+32-31=8,n=3;S=8+33-32=26,n=4≥4,跳出循环.故输出26.
答案:C
二、填空题
5.如下程序框图,当输入x的值为5时,则其输出的结果是________.
解析:x=5,x>0,
∴x=5-3=2,x>0.
∴x=2-3=-1.
∴y=0.5-1=2.
答案:2
6.如下图所示的程序框图,则该程序框图表示的算法的功能是________.
答案:连续正奇数相乘,所得积不小于10 000时的第一个奇数
7.(2013·临沂高一检测)根据条件把图中的程序框图补充完整,求区间[1,1 000]内所有奇数的和,(1)处填________;(2)处填________.
解析:求[1,1 000]内所有奇数和,初始值i=1,S=0,并且i<1 000,所以(1)应填S=S+i,(2)为i=i+2.
答案:(1)S=S+i (2)i=i+2
8.(2012·浙江高考)若某程序框图如图所示,则该程序运行后输出的值是________.
第8题图
解析:运行程序后,i=1,T=1;i=2,T=;i=3,T=;i=4,T=;i=5,T=;i=6>5,循环结束.则输出的值为.
答案:
三、解答题
9.已知函数f(x)=3x,求f{f[f(x)]}.画出输入x求函数值的程序框图.
解:算法如下:
第一步:输入x.
第二步:i=1.
第三步:若i≤3,则执行第四步;否则,执行第七步.
第四步:y=3x.
第五步:x=y.
第六步:i=i+1,返回第三步.
第七步:输出y.
程序框图如图所示.
10.以下是某次考试中某班15名同学的数学成绩:72,91,58,63,84,88,90,55,61,73,64,77,82,94,60,画出求80分以上的同学的平均分的程序框图.
解:程序框图如下.1.2.2 条件语句
[读教材·填要点]
条件语句的一般格式及功能
类别 单支 双支
条件结构框图
条件语句 IF 条件 THEN 语句体END IF IF 条件 THEN语句体1 ELSE语句体2 END IF
语句功能 首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体,否则执行END_IF之后的语句 首先对IF后的条件进行判断,如果(IF)条件符合,那么(THEN)执行语句体1,否则(ELSE)执行语句体2
[小问题·大思维]
1.什么情况下应用条件语句?
提示:条件语句是用来实现算法中的条件结构的,当计算机按条件进行比较、分析、判断,并按判断后的不同情况进行处理时,就需要用到条件语句.
2.条件语句是否必须要有IF、THEN、END IF
提示:条件语句必须有IF、THEN、END IF,根据需要ELSE及其后的语句体有时可省略.
3.如何理解条件语句的功能?
提示:条件语句主要用来实现算法中的条件结构.因为人们对计算机运算的要求并不仅限于一些简单的运算,而是经常需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理.
IF—THEN语句的应用
[例1] 输入一个实数x,若它是非负数,就输出它,否则不输出它,画一个程序框图解决这个问题,再写出相应的程序.
[自主解答]
程序为:
——————————————————
单支条件语句采用IF-THEN的形式,IF后对条件进行判断,若条件成立,则执行THEN后的语句体;若条件不成立,则结束条件语句,执行END IF后面的语句.
——————————————————————————————————————
1.画出程序框图并编写程序:任意输入三个实数,输出最小的数.
解:
IF—THEN—ELSE语句的应用
[例2] 已知函数y=画出程序框图并编写一个程序,对每输入的一个x值,都得到相应的函数值.
[自主解答] 程序框图如下:
程序如下:
INPUT “x=”;x IF x>=0 THEN y=x^2-1ELSE y=2*x^2-5 END IF PRINT “y=”;y END
若本例条件改为y=则程序如何改?解:程序框图如下:程序如下:INPUT “x=”;xIF x>0 THENy=x^2-1ELSEIF x<0 THENy=2*x^2-5ELSEEND IFEND IFPRINT “y=”;yEND
——————————————————
当算法中需要判断情况,分类执行时,要用到条件语句.条件语句是一个整体,且“IF”与“END IF”必须成对出现,若程序只对条件满足时作处理,不用处理条件不满足时的情况,则可以省略ELSE分支.
——————————————————————————————————————
2.当a=3时,下面程序输出结果是________.
INPUT aIF a<10 THENy=2*aELSE y=a*aEND IFPRINT yEND
解析:∵a=3<10,∴y=2×3=6.
答案:6
条件语句的综合应用
[例3] 某商场购物实行优惠措施,若购物金额x在800元以上(包括800元),打8折;若购物金额x在500元以上(包括500元),但不足800元,则打九折,否则不打折,设计程序框图并编写程序,要求输入购物金额x,能输出实际交款额y.
[自主解答] 程序框图如下:
程序如下:
INPUT “x=”;xIF x>=800 THENy=0.8*xELSE IF x>=500 THEN y=0.9*xELSE y=xEND IFEND IFPRINT “y=”;yEND
——————————————————
1.对于实际应用问题,应先建立数学模型,再设计算法.
2.条件语句的嵌套与条件结构的对应:
3.在编写条件语句的嵌套中的“条件”时,要注意“IF”与“END IF”的配对,有时可以利用文字的缩进来表示嵌套的层次,以帮助对程序的阅读和理解.
——————————————————————————————————————
3.某市对出租车的计费统一规定:如果行驶不超过2 km,则收费7元(即起步价),若超过2 km,则超出部分,每1 km加收1.8元(不足1 km的,按1 km计算).画出计算路费的程序框图并写出程序.
解:程序框图:
程序:
INPUT “路程”;xIF x>0 AND x<=2 THENy=7ELSEIF x-[x]=0 THENy=7+1.8*(x-2) ELSEa=(x-2)\1y=7+1.8*(a+1).END IFEND IFPRINT yEND
已知符号函数y=试编写程序输入x的值,输出y的值,并画出程序框图.
解:法一(嵌套结构),如图
INPUT xIF x>0 THENy=1ELSEIF x=0 THENy=0ELSEy=-1END IFEND IFPRINT yEND
法二(叠加结构),如图
INPUT xIF x>0 THENy=1END IFIF x=0 THEN y=0END IFIF x<0 THEN y=-1END IFPRINT yEND
1.程序框图应用什么语句来表达( )
A.输入语句 B.条件语句
C.循环语句 D.输出语句
答案:B
2.下列关于条件语句的说法正确的是( )
A.条件语句中必须有ELSE和END IF
B.条件语句中可以没有END IF
C.条件语句中可以没有ELSE,但是必须有END IF
D.条件语句中可以没有END IF,但是必须有ELSE
答案:C
3.当a=1,b=3时,执行完下面一段程序后,x的值是( )
A.1 B.3
C.4 D.-2
解析:由a=1,b=3,a答案:C
4.已知下面程序,写出相应的输出结果
INPUT xIF x<=10 THEN p=x*0.35ELSE p=10*0.35+(x-10)*0.7END IFPRINT pEND
(1)若输入x=6,则p=________;
(2)若输入x=12,则p=________.
解析:(1)当x=6时,x≤10,则
p=0.35x=6×0.35=2.1.
(2)当x=12时,x>10,则
p=10×0.35+(x-10)×0.7
=3.5+2×0.7
=3.5+1.4
=4.9.
答案:2.1 4.9
5.下面的程序是求一个函数的函数值的程序:
INPUT xIF x<=0 THENy=-xELSE IF x>0 AND x<=1 THENy=0 ELSEy=x-1 END IFEND IFPRINT yEND
若执行此程序的结果为3,那么输入的x的值为________.
解析:此程序是求函数y=的值.
解出结果为3,则有可能x-1=3,即x=4,
或-x=3,即x=-3.
答案:4或-3
6.有一个算法如下:
第一步,输入x;
第二步,判断x>0?是,z=1;否则,z=-1;
第三步,z=1+z;
第四步,输出z.
试写出上述算法的程序语句.
解:程序如下:
一、选择题
1.给出下面4个问题:①输入一个数x,输出它的绝对值;
②求函数f(x)=的函数值;
③求面积为6的正方形的周长;
④求三个数a,b,c中的最大数.其中可以用条件语句来描述其算法的有( )
A.1个 B.2个
C.3个 D.4个
解析:在算法中需要逻辑判断的都要用到条件语句,其中①②④都需要进行逻辑判断,故都要用到条件语句,③只要顺序结构就能描述其算法.
答案:C
2.已知条件语句,如下:
IF 条件 THEN语句体1ELSE语句体2END IF
则下列说法正确的是( )
A.条件成立时,先执行语句体1,再执行语句体2,最后结束条件语句
B.条件不成立时,先执行语句体2,再执行语句体1,最后结束条件语句
C.条件成立时,先执行语句体1,再结束条件语句
D.条件成立时,先执行语句体2,再结束条件语句
答案:C
3.已知程序如下:
根据程序提示依次输入4,2,-5,则程序运行结果是( )
A.max=max B.max=2
C.max=-5 D.max=4
解析:程序的执行结果为输出三个数中最大的一个,输入4,2,-5则运行结果为max=4.
答案:D
4.在下面的程序中,如果输入x=0,则输出y的值为( )
A.3+π B.3-π
C.0 D.5+π
解析:本语句为“IF-THEN-ELSE”语句,
因为输入x=0,由程序可知应输出y的值为0.
答案:C
二、填空题
5.(2012·西安高一检测)下列算法语句表示的函数是________.
解析:由语句可知,当x≤2时,有y=x3+1,
当x>2时,有y=x3-1,
即y=
答案:y=
6.写出下列程序的运行结果.
输入-4,输出结果为________;
输入9,输出结果为________.
解析:∵-4<0,∴输入“-4”输出“是负数”.输入9,
∵9≥0,∴输出=3.
答案:“是负数” 3
7.求函数y=|x-4|+1的函数值,则③为________.
INPUT “x=”;xIF x>=4 THENy=x-3ELSE③END IFPRINT yEND
解析:∵y=|x-4|+1=
∴y=5-x.
答案:y=5-x
8.已知程序如下:
INPUT xIF x>0 THENy=4ELSE y=2END IFPRINT yEND
如果输出的结果为2,那么输入的自变量x的取值范围是________.
解析:若x>0,则y=4.
否则y=2,由于输出结果为2,
∴x≤0.
答案:( -∞,0]
三、解答题
9.给出下面程序(其中x满足:0INPUT “x=”;xIF x>0 AND x<=4 THENy=2*xELSE IF x<=8 THENy=8 ELSEy=24-2*x END IFEND IFPRINT yEND
(1)该程序的功能是求什么函数的函数值,写出这个函数.
(2)画出这个程序的程序框图.
解:(1)函数关系式为:
y=
(2)程序框图如下:
10.如图所示,在边长为16的正方形ABCD的边上有一动点P,点P沿边线由B→C→D→A(B为起点,A为终点)运动.若设P运动的路程为x,△APB的面积为y,试写出程序,根据输入的x值,输出相应的y值.
解:由题意可得函数关系式为:
y=
程序如下:
INPUT “x=”;xIF x>0 AND x<=16 THEN y=8*xELSE IF x<=32 THEN y=128 ELSE y=8*(48-x) END IFEND IFPRINT yEND