12.2 基本算法语句、算法案例
考纲要求
了解几种基本算法语句——输入语句、输出语句、赋值语句、条件语句、循环语句的含义.
1.输入语句
不同的程序语言都有自己的输入指令和方法,在Scilab中的输入语句之一是“input”,不仅可输入数值,也可输入单个或多个字符.
2.输出语句
(1)“print”语句
程序中的print的参数______表示在屏幕上输出. (2)“disp”语句
disp也是Scilab的输出语句,运行后在界面窗口上显示______中间的文字. 3.赋值语句
(1)赋值语句的一般格式:____________.
(2)在研究问题的过程中可以取不同数值的量称为______,把一个值a赋给变量b的过程称为______,“____”为赋值符号.
注意事项:赋值号“=”左边只能是变量名,右边是表达式,左右边不能交换;每一个赋值语句只能出现一次“=”,只能给一个变量赋值.
赋值号“=”的理解:把右边的数值赋给左边的变量或计算右边表达式的值并把计算结果赋给左边的变量.
4.条件语句
处理条件分支逻辑结构的算法语句. 功能 语句格式 对应框图 如果表达式结果为真,则执行表达式后面的语句序列1,否则跳过语句序列1 if表达式 语句序列1; end 如果表达式结果为真,则执行表达式后面的语句序列1;如果表达式结果为假,则执行else后面的语句序列2 if表达式 语句序列1; else 语句序列2; end 5.循环语句 (1)for循环格式为
for循环变量=初值:步长:终值 循环体; end
(2)while语句格式为 while表达式 循环体; end
6.更相减损术
第一步:任意给定两个正整数,判断它们是否都是______.若是,用2约简;若不是,执行第二步.
第二步:以__________减去__________,接着把所得的差与较小的数比较,并以大数减
小数.继续这个操作,直到______________为止,则相等的数就是所求的__________.
7.秦九韶算法
nn-1
把一个n次多项式函数f(x)=anx+an-1x+…+a1x+a0改写成如下形式:f(x)=____________________________________.
求多项式的值时,首先计算最内层括号内一次多项式的值,即________,然后由内向外逐层计算一次多项式的值,即
v2=v1x+an-2, v3=v2x+an-3, ……
vn=vn-1x+a0.
1.已知变量a,b已被赋值,要交换a,b的值,采用的算法是( ). A.a=b,b=a B.a=c,b=a,c=b C.a=c,b=a,c=a D.c=a,a=b,b=c 2.运行下面的程序时,while循环语句的执行次数是( ). n=0;
while n<20 n=n+1;
n=n n;end
print%io2,n;
A.3 B.4 C.15 3.运行下面的程序,若输入5,则输出的值是( ). a=input“a=”;a=-a+15; print%io2,a;
A.-10 B.10 C.20 D.-20
4.下列关于利用更相减损之术求156和72的最大公约数的说法中正确的是( ). A.第一步必须是约简
B.第一步可以约简,也可以不约简
C.第一步作差为156-72=84;第二步作差为72-84=-12 D.以上都不对
2
5.2012年某地森林面积为1 000 km,且每年增长5%,到哪一年该地森林面积超过2 000 2
km?请设计一个程序,并画出程序框图.
一、输入、输出和赋值语句
【例1】 设计一个可以输入圆柱的底面半径r和高h,再计算出圆柱的体积和表面积的算法,画出程序框图,并写出程序.(π取3.14)
方法提炼
1.输入、 输出、赋值语句是任何一个算法中必不可少的语句.一个输出语句可以输出多个表达式的值.在赋值语句中,变量的值始终等于最近一次赋给它的值,先前的值将被替换.
2.一个赋值语句只给一个变量赋值,但一个语句行可以写多个赋值语句. 3.不能利用赋值语句进行代数式的演算(如化简、分解因式、解方程等).
4.编写程序的关键在于搞清问题的算法,特别是算法的结构,然后确定采取哪一种算法语句.
5.编写程序时,要注意常见运算符号的书写方式如a^b(a);a*b(a×b);a/b();
bD.19
ab
sqrt(x)(x);a\\b(a除以b的整数商,如5\\2);amodb(a除以b的余数,如5mod2=1)等,还要明确它们的运算规则:先乘除、后加减;乘幂优于乘除;函数优于乘幂;同级运算从左向右按顺序进行;括号内最优先,多层括号则从内到外依次进行运算[注意表达式中的括号一律用小括号“()”].
请做演练巩固提升2 二、条件语句
2x-1,x>0,??
【例2】 已知函数y=?2x+1,x=0,
??-2x2+4x,x<0,
2
试输入x的值计算y的值,画出程序
框图,并写出程序.
方法提炼
1.条件语句一般用在需要对条件进行判断的算法设计中,如求分段函数的函数值往往用条件语句编写程序.
2.条件语句可以嵌套,即条件语句的then或else后面还可以跟条件语句. 请做演练巩固提升1,4 三、循环语句
【例3】已知如下图所示程序框图.
(1)指出该框图的算法功能; (2)试写出该框图对应的程序. 方法提炼
在解决一些需要反复执行的运算任务,如累加求和、累乘求积等问题时,应考虑利用循环语句来实现.
请做演练巩固提升3 四、秦九韶算法
532
【例4】用秦九韶算法计算多项式f(x)=x+3x-2x+1当x=2时的函数值. 方法提炼
用秦九韶算法计算多项式的值时,先将所给的多项式进行改写,再由内到外逐次计算.若多项式中有系数为0的项,则应把它补上.
请做演练巩固提升5
不理解算法语句的功能及格式易致误
【典例】 (2012湖南衡阳模拟)下面程序运行后输出的结果为( ).
a=0;j=1;
while j<=5
a=a+j mod 5; j=j+1;enda
A.0 B.1 C.2 D.4 解析:当j=1时,余数a=1;
当j=2时,余数a=3;当j=3时,余数a=1; 当j=4时,余数a=0;当j=5时,余数a=0; 当j=6时,不满足条件,此时退出循环. 答案:A
答题指导:1.在解答本题时,易错选D而导致错误,错误原因是:对循环过程不理解,误认为j=1时,余数a=0,即j=1时,没有执行第一次循环.其错误过程如下:当j=1时,余数a=0;当j=2时,余数a=2;当j=3时,余数a=0;当j=4时,余数a=4;当j=5时,余数a=4.
2.解决算法语句的有关问题时,还有以下几点易造成失误,备考时要高度关注: (1)对基本算法语句的功能及格式要求不熟悉.
(2)条件语句中的嵌套结构混乱,不能用分段函数的形式直观描述. (3)对循环结构的循环过程把握不准.
1.给出以下四个问题:①输入一个数x,输出它的绝对值;②求函数f(x)=
??x-1 ?2
?x+2x?
2
x≥0,x<0
的函数值;③求面积为6的正方形的周长;④求三个数a,b,c中
的最大数.其中不需要用条件语句来描述其算法的有( ).
A.1个 B.2个 C.3个 2.计算机执行下面的程序段后,输出的结果是( ).
a=1;b=3;a=a+b; b=a-b;
print%io2,a,b;
A.1,3 B.4,1 D.6,0
3.读下面的甲、乙两个程序:
D.4个
C.0,0
i=1;
i=1 000;
S=0;
S=0;
while i<=1 000
for i=1 000:-1:1
S=S+i;
S=S+i;
i=i+1;
end
end
甲 乙
对甲、乙两个程序和输出的结果判断正确的是( ). A.程序不同,结果不同 B.程序不同,结果相同 C.程序相同,结果不同
D.程序相同,结果相同
4.执行下列程序,变量y的值为( ). x=20;if x>=30y=5 x;
else
y=4 x;end
A.100 B.80 C.90 D.40
763
5.用秦九韶算法计算多项式f(x)=2x+x-3x+2x当x=2时的函数值,需要做加法和乘法的次数分别为( ).
A.7,4 B.4,7 C.6,7 D.4,4