基本算法语句知识讲解.docx
- 文档编号:30187937
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:29
- 大小:327.60KB
基本算法语句知识讲解.docx
《基本算法语句知识讲解.docx》由会员分享,可在线阅读,更多相关《基本算法语句知识讲解.docx(29页珍藏版)》请在冰豆网上搜索。
基本算法语句知识讲解
基本算法语句
【学习目标】
1、正确理解输入语句、输出语句、赋值语句的结构.
2、会写一些简单的程序.
3、掌握赋值语句中的“=”号的作用.
4、正确理解条件语句和循环语句的概念,并掌握其结构的区别与联系.
5、会应用条件语句和循环语句编写程序.
【要点梳理】
要点一:
输入语句
在程序中的INPUT语句就是输入语句.这个语句的一般格式是:
INPUT“提示内容”;变量
其中,“提示内容”一般是提示用户输入什么样的信息.
INPUT语句不但可以给单个变量赋值,还可以给多个变量赋值,其格式为:
INPUT“提示内容1,提示内容2,提示内容3,…”;变量1,变量2,变量3,…
功能:
可对程序中的变量赋值.
要点诠释:
①“提示内容”提示用户输入什么样的信息,必须加双引号,提示内容“原原本本”的在计算机屏幕上显示,提示内容与变量之间要用分号隔开;
②变量是指程序在运行时其值是可以变化的量;
③一个语句可以给多个变量赋值,中间用“,”分隔,但最后的变量的后面不需要;
④要求输入的数据必须是常量,而不能是函数、变量或表达式;
⑤无计算功能.
例如,输入一个学生数学,语文,英语三门课的成绩,可以写成:
INPUT“数学,语文,英语”;a,b,c
要点二:
输出语句
在程序中的PRINT语句是输出语句.它的一般格式是:
PRINT“提示内容”;表达式
同输入语句一样,表达式前也可以有“提示内容”.
功能:
可输出表达式的值,计算.
要点诠释:
①“提示内容”提示用户输出什么样的信息,提示内容必须加双引号,提示内容要用分号和表达式分开;
②表达式是指程序要输出的数据,可以是变量、计算公式或系统信息;
③一个语句可以输出多个表达式,不同的表达式之间可用“,”分隔;
④有计算功能,可以输出常量、变量或表达式的值以及字符.
要点三:
赋值语句
用来表明赋给某一个变量一个具体的确定值的语句.它的一般格式是:
变量=表达式
赋值语句中的“=”叫做赋值号.
功能:
先计算出赋值号右边表达式的值,然后把这个值赋给赋值号左边的变量,使该变量的值等于表达式的值.
要点诠释:
①赋值号的左右两边不能对换,如“A=B”“B=A”的含义运行结果是不同的;
②格式中右边“表达式”可以是一个数据、常量和算式,如果“表达式”是一个算式时,赋值语句的作用是先计算出“=”右边表达式的值,然后将该值赋给“=”左边的变量;
③赋值号左边只能是变量名字,而不能是表达式,如:
2=X是错误的;
④不能利用赋值语句进行代数式的演算(如化简、因式分解等);
⑤对于一个变量可以多次赋值;
⑥有计算功能;
⑦赋值号与数学中的等号的意义是不同的.赋值号左边的变量如果原来没有值,则执行赋值语句后,获得一个值,如果已有值,则执行该语句后,以赋值号右边表达式的值代替该变量的原值,即将“原值”冲掉.
要点四:
条件语句
算法中的条件结构是由条件语句来表达的,是处理条件分支逻辑结构的算法语句.它的一般格式是:
(IF-THEN-ELSE格式)
当计算机执行上述语句时,首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句1,否则执行ELSE后的语句2.其对应的程序框图为:
(如上右图)
在某些情况下,也可以只使用IF-THEN语句:
(即IF-THEN格式)
计算机执行这种形式的条件语句时,也是首先对IF后的条件进行判断,如果条件符合,就执行THEN后的语句,如果条件不符合,则直接结束该条件语句,转而执行其他语句.其对应的程序框图为:
(如上右图)
要点诠释:
条件语句的作用:
在程序执行过程中,根据判断是否满足约定的条件而决定是否需要转换到何处去.需要计算机按条件进行分析、比较、判断,并按判断后的不同情况进行不同的处理.
要点五:
循环语句
算法中的循环结构是由循环语句来实现的.对应于程序框图中的两种循环结构,一般程序设计语言中也有当型(WHILE型)和直到型(UNTIL型)两种语句结构.即WHILE语句和UNTIL语句.
1.WHILE语句的一般格式是:
其中循环体是由计算机反复执行的一组语句构成的.WHLIE后面的“条件”是用于控制计算机执行循环体或跳出循环体的.
当计算机遇到WHILE语句时,先判断条件的真假,如果条件符合,就执行WHILE与WEND之间的循环体;然后再检查上述条件,如果条件仍符合,再次执行循环体,这个过程反复进行,直到某一次条件不符合为止.这时,计算机将不执行循环体,直接跳到WEND语句后,接着执行WEND之后的语句.因此,当型循环有时也称为“前测试型”循环.其对应的程序结构框图为:
(如上右图)
2.UNTIL语句的一般格式是:
其对应的程序结构框图为:
(如上右图)
直到型循环又称为“后测试型”循环,从UNTIL型循环结构分析,计算机执行该语句时,先执行一次循环体,然后进行条件的判断,如果条件不满足,继续返回执行循环体,然后再进行条件的判断,这个过程反复进行,直到某一次条件满足时,不再执行循环体,跳到LOOPUNTIL语句后执行其他语句,是先执行循环体后进行条件判断的循环语句.
要点诠释
当型循环与直到型循环的区别
①当型循环是先判断后执行,直到型循环是先执行后判断;
②当型循环用WHILE语句,直到型循环用UNTIL语句;
③对同一算法来说,当型循环和直到型循环的条件互为反条件.
【典型例题】
类型一:
输入语句、输出语句和赋值语句
例1.阅读下列程序,并回答问题.
(1)程序
(2)程序
INPUTA,B,C
A=A+B
B=B-A
C=C/A*B
PRINT“C=”;C
END
INPUTa,b
c=a―b
b=a+c―b
PRINTa,b,c
END
(1)中若输入1,2,则输出的结果为________;
(2)中若输入3,2,5,则输出的结果为________.
【答案】
(1)1,―2,―1
(2)C=―3
【解析】分别将输入的值代入程序中逐步计算即可,要注意赋值前后变量值的变化.
(1)阅读程序,由a=1,b=2,c=a―b可得c=―1;又根据语句b=a+c―b,可得b=―2;
所以程序运行后的结果为:
1,―2,―1.
(2)阅读程序,由A=3,B=2,C=5,A=A+B,可得A=5,
又根据语句B=B―A,可得B=―3,
又C=C/A*B,所以输出结果为C=―3.
【总结升华】赋值语句在给变量赋值时,先计算赋值号右边的式子然后赋值给赋值号左边的变量;另外可以给一个变量先后多次赋不同的值,但变量的取值只与最后一次赋值有关.解决此类问题时要时刻把握某个变量在该程序中充当的角色,时刻关注其值的改变情况.
举一反三:
【变式1】当x的值为5时,语句PRINT“x=”;x在屏幕上的输出结果为()
A.5=5B.5C.5=xD.x=5
【答案】D
【变式2】写出下列语句描述的算法的输出结果.
a=5
b=3
c=(a+b)/2
d=c*c
PRINT“d=”;d
END
(1)
a=1
b=2
c=a+b
b=a+c―b
PRINT“a=,b=,c=”;a,b,c
END
(2)
a=10
b=20
c=30
a=b
b=c
c=a
PRINT“a=,b=,c=”;a,b,c
END
(3)
【答案】
(1)16
(2)a=1b=2c=3(3)a=20b=30c=20
【解析】
(1)∵a=5,b=3,
,∴d=c2=16.
(2)∵a=1,b=2,c=a+b,∴c=3.又将a+c―b赋值给b,∴b=1+3-2=2.
(3)由b=20及a=b知a=20,由c=30及b=c知b=30,由a=30及c=a知c=20.
【总结升华】此题主要考查对三种语句的理解,要对三种语句理解透彻.注意写出每一步的运算结果,以减少错误.
例2.已知一个正三棱柱的底面边长为a,高为h,试设计一个程序来求解这个正三棱柱的表面积和体积,并画出程序框图.
【解析】由题意,已知底面边长,可求出底面积,正三棱柱的高已知,体积易得;由底面边长和高,可求侧面积,则表面积易解.
程序框图如图所示,
程序如下:
INPUT“a=”;a
INPUT“h=”;h
S=SQR(3)*a^2/4
V=S*h
C=3*a
T=C*h
P=T+2*S
PRINT“体积:
”;V
PRINT“表面积:
”;P
END
【总结升华】这是一道立体几何与算法相结合的综合类题目.首先要理清解题的步骤,要求正三棱柱的体积,可以利用公式V=Sh,所以要先求出正三棱柱的底面积,然后代入公式即可;正三棱柱的表面积等于各面的面积之和,所以还需求正三棱柱的侧面面积.
举一反三:
【变式1】已知钱数x(不足10元),要把它用1元、5角、1角、1分的硬币表示,若要用尽量少的硬币个数表示x,设计一个算法,求各硬币的个数.
【解析】其程序为:
INPUTx
x=x*100
a=x/100
b=(x―a*100)/50
c=(x―a*100―b*50)/10
d=(x―a*100―b*50―c*10)/1
PRINTa,b,c,d
END
例3.读下面的程序,根据程序画出程序框图.
INPUT“x=”;x
INPUT“y=”;y
m=x/4
n=2*y
PRINTm
PRINTn
x=x+2
y=y-1
PRINTx
PRINTy
END
【解析】由程序可以看出,此程序共用INPUT输入语句、赋值语句和PRINT输出语句,因此根据程序画出程序框图,只要按顺序从上到下把输入、赋值、输出语句表达内容填入相应图框内即可.故程序框图如图所示.
【总结升华】算法语句和程序框图以不同的形式展示给我们,解决问题时要注意掌握算法语句和程序框图的相互转换.
举一反三:
【变式1】以下是一个用基本算法语句编写的程序,根据程序画出其相应的程序框图.
INPUT“x,y=”;x,y
x=x/2
y=3*y
PRINTx,y
x=x-y
y=y-1
PRINTx,y
END
【解析】程序框图如图所示.
该程序主要利用了输入语句、赋值语句和输出语句进行算法描述,只要按顺序从上到下将输入语句、赋值语句、输出语句表达的内容填入相应的图框即可.
例4.经过市场调查分析,2008年第一季度内,某地区对某件商品的需求量为12000件,为保证商品不脱销,商家决定在月初时将商品按相同的量投放市场,已知年初商品的库存量为50000件,用S表示商品的库存量,请设计一个算法,求出第一季度结束时商品的库存量,编写其程序.
【解析】依题意,每月应投放市场12000÷3=4000(件).这样库存量随月份的变化情况如下表:
月份
库存
一月
二月
三月
S
46000
42000
38000
算法的程序框图如图所示.
其程序如下:
S=50000
S=S―4000
S=S―4000
S=S―4000
PRINT“S=”;S
END
【总结升华】利用赋值语句可对变量多次赋值,实现代数中的四则运算.但代数中的运算很多都是方程、不等式的形式,这是赋值语句所不能实现的,要写成类似于函数y=f(x)的形式才能构造成赋值语句的形式,从而用算法程序处理.这是解决这类问题的关键.
举一反三:
【变式1】“鸡兔同笼”问题是我国古代著名的趣题之一.大约在1500年前,《孙子算经》中就记载了这个有趣的问题.书中这样描述:
今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔几何?
试设计一个算法,输入鸡兔的头和鸡兔的脚的总数,分别输出鸡、兔的数量.
【解析】先假设M只都是兔子,那么就4M只脚,这比N只脚多了(4M―N)只脚,每只鸡比兔少2只脚,所以鸡的数量为
,从而得到兔的数量为B=M―A.
算法步骤如下:
第一步,输入鸡和兔的总数量M.
第二步,输入鸡和兔的脚的总数量N.
第三步,鸡的数量为
.
第四步,兔的数量为B=M―A.
第五步,输出A,B,得出结果.
程序框图如图所示.程序如下:
INPUT“鸡和兔的总数量为:
”;M
INPUT“鸡和兔的脚的总数量为:
”;N
A=(4*M-N)/2
B=M-A
PRINT“鸡的数量为:
”;A
PRINT“兔的数量为:
”;B
END
【变式2】“植树造林,防风抗沙”.某沙漠地区在2010年年底有绿化带树林20000亩,该地区每年春天会种树400亩加以绿公,但同时每年冬天又会有总绿化面积的1%被沙漠化,问2013年年底该地区总绿化面积有多少亩?
画出解决此问题的算法的程序框图,并写出程序.
【解析】该地区总绿化面积每年都在变化,可以设置一个变量来表示每年年底的绿化面积.
程序框图如图.
程序:
S=20000
S=(S+400)*(1―0.01)
S=(S+400)*(1―0.01)
S=(S+400)*(1―0.01)
PRINT“2013年年底总绿化面积为”;S
END
【总结升华】利用赋值语句可以对同一变量进行多次赋值,程序输出变量的最后值.
类型二:
条件语句
例5.给出三个正整a,b,c,判断以这3个数为三条边边长的三角形是否存在,若存在,则求出其面积,请设计程序实现该功能,并画出相应的程序框图.
【解析】由于不是任意三条线段都能构成三角形的三边,因此必须先判断三边是否满足任意两边之和大于第三边,即a+b>c,a+c>b,b+c>a,这些是保证能组成三角形的必要条件.经判断,如果满足上述条件,则按下面的公式计算三角形的面积,
,
.
程序框图如图所示.
程序如下:
INPUTa,b,c
IFa+b>cANDa+c>bANDb+c>aTHEN
p=(a+b+c)/2
S=SQR(p*(p―a)*(p―b)*(p―c)
PRINT“三角形的面积为”;S
ELSE
PRINT“不能构成三角形”
ENDIF
END
【总结升华】编程的一般步骤为:
(1)算法分析:
根据提供的问题利用数学及相关学科的知识,设计出解决问题的算法;
(2)画出程序框图:
依据算法分析,画出对应的程序框图;
(3)写出程序:
根据程序框图中的算法步骤,逐步把算法用相应的程序语句表达出来.
举一反三:
【变式1】根据如图所示的伪代码,当输入
分别为2,3时,最后输出的m的值是________
【答案】3
【解析】由已知可知,
为
中的最大值,故最后输出的
值为3.
例6.已知符号函数
,试编写程序输入x的值,输出y的值,并画出程序框图.
【解析】解法一(嵌套结构),如下图:
INPUTx
IFx>0THEN
y=1
ELSE
IFx=0THEN
y=0
ELSE
y=-1
ENDIF
ENDIF
PRINTy
END
解法二(叠加结构),如下图:
INPUTx
IFx>0THEN
y=1
ENDIF
IFx=0THEN
y=0
ENDIF
IFx<0THEN
y=-1
ENDIF
PRINTy
END
【总结升华】:
(1)条件结构的差异,造成程序执行的不同.当输入x的值时,解法一中先判断外层的条件,依次执行不同的分支;而解法二中按程序中条件语句的先后依次判断所有的条件,满足哪个条件就执行哪个条件下的语句.
(2)条件语句的嵌套可以多于两层,表达算法步骤中的多重限制条件.
举一反三:
【变式1】读下面的程序,并回答问题.
INPUTx
IFx<=2THEN
y=x^2
ELSE
IFx<=5THEN
y=2*x-3
ELSE
y=1/x
ENDIF
ENDIF
PRINTy
END
该程序的作用是输入x的值,输出y的值.
(1)画出该程序对应的程序框图;
(2)若要使输入的x值与输出的y值相等,问这样的x值有几个?
【解析】由程序可知这是一个求
的函数值的程序.
(1)程序对应的程序框图如图所示.
(2)x=x2,则x=0或x=1.
此时均满足x≤2.
若2x-3=x,则x=3,满足2<x≤5.
若
,则x=±1,不满足x>5.
综上可知满足题设条件的x值有3个,即x=0或x=1或x=3.
【变式2】输入一个自然数N,求其被3除得到的余数,设计一个程序,并输出相应的信息.
【解析】程序如下:
INPUT“请输入一个自然数N;”;N
M=NMOD3
IFM=0THEN
PRINT“能被3整除”
ENDIF
IFM=1THEN
PRINT“余数为1”
ENDIF
IFM=2THEN
PRINT“余数为2”
ENDIF
END
例7.某商场对顾客实行优惠措施,若购物金额x在800元以上,则打八折;若购物金额x在500元以上,则打九折;否则不打折.画出程序框图,要求输入购物金额x,输出实际付款额,并写出相应的程序.
【解析】依照题意,实际付款额y与购物金额x的函数关系为:
,程序框图如图所示.
程序:
INPUT“x=”;x
IFx>800THEN
y=0.8*x
ELSE
IFx>500THEN
y=0.9*x
ELSE
y=x
ENDIF
ENDIF
PRINTy
END
【总结升华】对于实际问题应先建立函数模型,然后设计算法,对自变量x的取值进行判断,这是应用条件语句的根据.
举一反三:
【变式1】某市电信部门规定:
拨打市内电话时,如果通话时间不超过3分钟,则收取通话费0.2元;如果通话时间超过3分钟,则超过部分以0.1形分钟收取通话费(t以分钟计,不足1分钟按1分钟计),问:
如何设计一个计算通话费用的算法,画出程序框图并写出相应的程序?
【解析】我们令c(单位:
元)表示通话费用,t(单位:
分钟)表示通话时间,则有
.
依上面分析可知解决这一问题的算法步骤如下:
第一步:
输入通话时间;
第二步:
如果0<t≤3,那么c=0.2,否则c=0.2+0.1(t-3);
第三步:
输出费用c.
程序框图如图所示.程序为:
INPUT“通话时间为”;t
IFt<=3ANDt>0THEN
c=0.2
ELSE
c=0.2+0.1*(t-3)
ENDIF
PRINT“通话费用为”;c
END
类型三:
循环语句
基本算法语句例5
例8.试用两种语句写出计算1+2+3+…+2010的程序,并画出相应的程序框图.
【解析】先设计出计数变量和累加变量S,依两种语句的特点分别写出,应注意各自的条件.
WHILE语句如下,程序框图如图所示:
S=0
i=1
WHILEi<=2010
S=S+i
i=i+1
WEND
PRINTS
END
UNTIL语句如下,程序框图如图所示:
S=0
i=1
DO
S=S+i
i=i+1
LOOPUNTILi>2010
PRINTS
END
举一反三:
【变式1】编写一个程序,计算1×3×5×7×…×99的值.(分别用两种循环语句)
【解析】方法一:
利用当型循环得到如图l所示的程序框图.
方法二:
利用直到型循环得到如图2所示的程序图.
利用当型(WHILE)循环语句编写程序如下:
S=1
i=3
WHILEi<=99
S=S*i
i=i+2
WEND
PRINTS
END
利用直到型(UNTIL)循环语句编写程序如下:
S=1
i=3
DO
S=S*i
i=i+2
LOOPUNTILi>99
PRINTS
END
例9.某商场第一年销售计算机5000台,如果平均每年销售量比上一年增加10%,那么从第一年起,大约几年可使总销售量达到30000台?
【解析】根据题意,每年销售量比上一年增加的百分率相同,设总销售量为S,n年达到30000台.
第一年销售了5000台;
第二年销售了5000+5000×10%=5000×(1+10%)(台);
第三年销售了5000×(1+10%)+5000×(1+10%)×10%=5000×(1+10%)2(台);
…
第n年销售了5000×(1+10%)n-1(台).
前n年的总销售量S=5000+5000×(1+10%)+5000×(1+10%)2+…+5000×(1+10%)n-1(台).
程序框图如图所示.
程序:
m=5000
S=0
i=0
WHILES<30000
S=S+m
m=m*(1+0.1)
i=i+1
WEND
PRINTi
END
【总结升华】
(1)循环条件是总销售量小于30000台.
(2)本题中第n年销售量为5000×(1+10%)n-1台.
(3)S表示总销售量,即前n年销售量之和.
举一反三:
【变式1】一个小球从100m的高度落下,每次落地后又反跳回原高度的一半,再落下,在第10次落地时,小球共经过多少路程?
【解析】第1次下落的高度h1=100m;
第2次下落的高度
;
第3次下落的高度
;
……
第10次下落的高度
.
所以递推关系是h1=100,
,n=1,2,3,…,9.到第10次落地时,共经过的路程为s=h1+2h2+2h3+…+2h10=2(h1+h2+…+h10)-h1,故可将s作为累加变量,i作为计数变量.
程序框图如图所示.根据以上程序框图,可设计程序如下:
s=0
h=100
i=1
WHILEi<=10
s=s+2h
h=h/2
i=i+1
WEND
s=s-100
PRINTs
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 算法 语句 知识 讲解