必修3-基本的算法语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本的算法语句
教学目标:1.理解学习基本算法语句的意义;
2.理解算法步骤、程序框图和算法语句的关系,学会算法语句的写法;
3.学会输入语句、输出语句和赋值语句的基本用法;
4.学会条件语句的基本用法;
5.学会循环语句的基本用法
重点:输入语句、输出语句和赋值语句的基本用法
难点:算法语句的写法;程序中条件语句的写法
(一)输入语句、输出语句和赋值语句
1.输入语句
(1)格式:INPUT “提示内容”;变量
(2)功能:可以一次为一个变量或多个变量赋值,实现算法中的输入功能.
(3)说明:①又称“键盘输入语句”,在程序运行过程中,停机等候用户由键盘输入数据,而
不需要在写程序时指定;
②“提示内容”是提示用户输入什么样的信息,“提示内容”和它后面的“;”
可以省略;
③程序框图中的输入框转化为算法语句就是输入语句;
④一个语句可以给多个变量赋值,中间用“,”分隔;
⑤无计算功能;
⑥用户由键盘输入的数据必须时常量,输入多个数据时,用“,”分隔,且个数要
与变量的个数相同.
2.输出语句
(1)格式:PRINT “提示内容”;表达式
(2)功能:先计算表达式的值,然后输出结果,实现了算法中的输出功能.显示在计算机屏幕
上,也就输出信息,可以是常量、变量的值或系统信息.
(3)说明:①又称“打印语句”,将表达式的值在屏幕上显示出来;
②“提示内容”是提示用户想输出什么样的信息,“提示内容”和它后面的
“;”可以省略;
③程序框图中的输出框转化为算法语句就是输出语句;
④表达式可以是变量、计算公式或系统信息;
⑤一个语句可以输出多个表达式,不同的表达式之间用“,”分隔;
⑥有计算功能,能直接输出计算公式.
3.赋值语句
(1)格式:LET 变量=表达式
(2)功能:先计算表达式的值,然后吧结果赋值给“=”左边的变量,此步完成后, “=”右
边变量的值就改变了.
(3)说明:①在程序运行过程中给变量赋值;
②赋值语句中“=”叫做赋值号,它和数学中的等号不一样.计算机执行赋值语句
时,先计算“=”右边表达式的值,然后把这个值给“=”左边的变量;
③“LET”可以省略,“=”的右侧必须是表达式,左侧必须是变量;
④一个语句只能给一个变量赋值;
⑤有计算功能;
⑥将一个变量赋值给另一个变量,前一个变量的值保持不变,可先后给一个变量赋多个不同的值,但变量的去职总是最后被赋予的值.
3.赋值语句
(1)格式:LET 变量=表达式
(2)功能:先计算表达式的值,然后吧结果赋值给“=”左边的变量,此步完成后, “=”右
边变量的值就改变了.
(3)说明:①在程序运行过程中给变量赋值;
②赋值语句中“=”叫做赋值号,它和数学中的等号不一样.计算机执行赋值语句时,先计算“=”右边表达式的值,然后把这个值给“=”左边的变量; ③“LET ”可以省略,“=”的右侧必须是表达式,左侧必须是变量; ④一个语句只能给一个变量赋值; ⑤有计算功能;
⑥将一个变量赋值给另一个变量,前一个变量的值保持不变,可先后给一个变量赋多个不同的值,但变量的去职总是最后被赋予的值.
4.用BASIC 语言编写计算机程序是由若干语句组成,计算机按语句行排列的顺序一次执行程序中的语句,每个完整的程序最后一行是END
束. (二)条件语句
1.格式1 (1)框 (2)格式
(3)功能:当计算机执行上述语句时,首先对IF 后面的条件进行判断,如果满足条件P,那么
执行语句
A,否则执行END IF 2.格式2 (1)框图
(2)格式
(3)功能:当计算机执行上述语句时,首先对IF 那
么执行语句体1,在执行END IF 之后的语句,即结束条件语句;如果不满足条件P,那么执行语句体2,再执行END IF 之后的语句,即结束条件语句.
3.两种格式的比较
(1)相同点:首先对IF 后的条件进行判断,如果复合条件就执行THEN 后面的语句.
(2)不同点:对于“IF —THEN —ELSE ”语句,若不符合条件,则执行ELSE 后面的“语句体2”;
对于“IF--THEN ”语句,若不符合条件则直接结束该条件语句,转而执行其他后面的语句.
4.程序中的条件语句与程序框图的条件结构存在一一对应的关系.
(三)循环语句
1.当型(WHILE 型)循环语句 (1)框图
(2)格式
(3)功能:
WHILE 语句,先判断条件是否成立,如果成立,则执行
WHILE 和WEND 直接的循环体;然后返回到WHILE 语句再判断上述条件是否成立,如果成立,再执行循环体
,这个过程反复执行,
直到一次返回到WHILE 语句判断上述条件不成立为止,这时不再执行循环体,而是跳到WEND 语句后,执行WEND 后面的语句.因此当型循环又称“前测试型”循环,也就是我们经常讲的“先测试后执行”、“先判断后循环”.
2.直到型(UNTIL 型)循环语句 (1)框图
(2)格式
(3)功能:计算机执行UNTIL 语句时,先执行DO 和LOOP UNTIL 之间的循环体,然后判断LOOP
UNTIL 后面的条件是否成立,如果条件不成立,返回DO 语句重新执行循环体.这个过程反复执行,知道一次判断LOOP UNTIL 后面的条件成立为止,这时不再返回执行循环体,而是跳出循环体执行LOOP UNTIL 条件下面的语句.因此直到型循环又称“后测试型”循环,也就是我们经常讲的“先执行后测试”、“先循环后判断”.
3.两种格式的比较
(1)都是反复执行循环体的语句.
(2)当型循环语句时先判断后循环,直到型循环语句时先循环后判断. 4.程序中的循环语句与程序框图中的循环结构存在一一对应的关系 二、例题分析
例1 变换两个变量A 和B 的值,并输出交换前后的值. 解:程序:
INPUT A,B PRINT A,B
PRINT A,B
END
例2写出求三个数c
a,
,的方差的程序.
b
解:程序:
INPUT a,b,c
d=(a+b+c)/3
s=((a-d)^2+(b-d)^2+(c-d)^2)/3
PRINT s
END
例3分析下面的程序,当输入x的值为3时,程序的输出结果为________. INPUT x
IF x<-1 THEN
y=x^2
ELSE
IF x<=1 THEN
y=0
ELSE
y=(-2)^x
END IF
END IF
PRINT y
END
答案:8
-
例4 给出下列程序,如果输入8,
-,那么输出的是________.
10-
26
,
INPUT a,b,c
IF a>b THEN
a=b
END IF
IF a>c THEN
a=c
END IF
PRINT a
END
-
答案:26
例5 编写一个程序,求实数x的绝对值.
解:程序1:
INPUT x
IF x>=0 THEN
PRINT x
ELSE
END IF END 程序1: INPUT x IF <0 THEN x=-x END IF PRINT x END
例6: 给计算机编写一个算法,输入一个自变量x 的值,
求分段函数⎩⎨
⎧<≥+=0
02)(2
x x
x x x f 的函数值
解:该算法用自然语言表述为
Step1:输入x 的值.
Step2:进行判断,如果0≥x ,则2)(+=x x f ,
否则2)(x x f =.
Step3:输出)(x f 的值. 程序框图为 程序: INPUT x IF x>=0 THEN y=x+2 ELSE y=x^2 END IF
PRINT “f(x)=”;y END
例7: 函数⎪⎩
⎪
⎨⎧<-=>=0
100
1x x x y ,编写一个算法,输入x 的值,输出y 的值. 解:该算法用自然语言表述为
Step1:输入x 的值.
Step2:进行判断,如果0>x ,则输出1=y ,结束;否则进入Step3. Step3:进行判断,如果0=x ,则输出0=y ,结束;否则输出1-=y ,结束.
程序框图为: 程序1: INPUT x IF x>0 THEN y=1 ELSE
IF x=0 THEN y=0 ELSE y=-1 END IF END IF
PRINT “y=”;y END 程序1: INPUT x IF x>0 THEN y=1 END IF IF x=0 THEN y=0 END IF IF x<0 THEN y=-1 END IF
PRINT “y=”;y END
例8乘坐火车时,可以托运货物,从甲地到乙地,规定每张火车客票托运费计算方法是:行李
质量不超过kg 50时按25.0元kg /;超过kg 50而不超过kg 100时,其超过部分按
35.0元kg /;超过kg 100时,其超过部分按45.0元kg /.编写程序,输入行李的质
量,计算出托运的费用.
解:算法分析:数学模型实际上为:y 关于x 的分段函数.关系式
为:⎪⎩
⎪
⎨⎧>-+⨯+⨯≤<-+⨯≤<=100
)100(45.05035.05025.010050)
50(35.05025.050025.0x x x x x x y , 算法步骤:
第一步 输入行李质量x .
第二步 当50≤x 时,计算x y 25.0=,否则,执行下一步.
第三步 当100≤x 时,计算535.0-=x y ,否则,计算1545.0-=x y .
程序为: INPUT x IF x<=50 THEN y=0.25*x ELSE
IF x<=100 THEN y=0.35*x-5 ELSE
y=0.45*x-15 END IF END IF
PRINT “y=”;y END
例9判断一元二次函数)0(02≠=++a c bx ax 是否有根. 分析:ac b 42-=∆,当0≥∆时,方程有实根;
当0<∆时,方程无实根. 解:该算法用自然语言表述为
Step1:输入三个系数c b a ,,. Step2:计算ac b 42-=∆.
Step3:判断0≥∆是否成立.若是,则输出“方程有实根”;
否则输出“方程无实根”,结束算法.
程序框图为: 程序为:
INPUT “a,b,c=”;a,b,c d=b^2-4*a*c IF d>=0 THEN
PRINT “Have real root ” ELSE
PRINT “No real root ” END IF
END
例10: 设计一个求解一元二次方程)0(02
≠=++a c bx ax 的算法,
并画出程序框图表示.
解:算法:
第一步:输入三个系数c b a ,,.
第二步:计算ac b 42
-=∆.
第三步:判断0≥∆是否成立.若是,则计算;2,2a
q a b p ∆=
-
=
否则,输出“方程无实根”,结束算法.
第四步:判断0=∆是否成立,若是,则输出p x x ==21;
否则,计算q p x q p x -=+=21,,
程序框图:略 程序为:
INPUT “a,b,c=”;a,b,c d=b^2-4*a*c IF d>=0 THEN p=-b/(2*a) q=SQR(d)/(2*a) IF d=0 THEN
PRINT “x1=x2=”;p ELSE
PRINT “x1=,x2=”;p+q,p-q END IF ELSE
PRINT “No real root ” END IF
END
例11: 设计算法,找出输入的三个不等实数c b a ,,的最大值,并画出流程图. 解:算法:
第一步:输入c b a ,,的值.
第二步:判断b a >是否成立,若成立,则执行第三步;否则执行第四步. 第三步:判断c a >是否成立.若成立,则输出a ,并结束;否则输出c ,并结束. 第四步:判断c b >是否成立,若成立,则输出b ,并结束;否则输出c 并结束. 程序框图:略 程序为: INPUT a,b,c IF a<b THEN a=b END IF
IF a<c THEN a=c END IF PRINT
例12 下列程序执行后输出结果为________. i=11 S=1 DO S=S*i i=i-1 LOOP UNTIL i<9 PRINT S END 答案:990
例13下列程序输出的结果是( ) i=1 S=0 WHILE i<=4 S=S*2+1 i=i+1 WEND PRINT S END
A.3
B.7
C.15
D.19 答案: C
例14: 已知有一列数1
,,43,32,
21+n n
,设计一个算法实现该列数的前20项和. 解:算法如下:第一步:输入n (这里20=n ).
第二步:0=sum ,1=i . 第三步:1
++
=i i sum sum ,1+=i i .
第四步:如果i 不大于n ,返回第三步;否则,算法结束.
最后得到的sum 值就是该列数的前20项和.
例15: 设计一个算法计算100642++++ . 解:算法如下:第一步:输入n (这里100=n ).
第二步:0=sum ,2=i .
第三步:i sum sum +=,2+=i i .
第四步:如果i 不大于n ,返回第三步;否则,算法结束.
最后得到的sum 值就是100642++++ 的值.
2、设计一个算法计算63
+
+
1+
+ .
2
4
2
3、下面是一个算法的流程图,当输入的值为3时,输出的结果为。
4、阅读下列流程图:
则此流程图表示__________________________算法.
5、描述算法的方法通常有:
(1)自然语言;(2);(3)伪代码.
输入两个数,输出这两个数差的绝对值. (1) ;(2)
7、下面的程序输出的结果S =
8、下面是一个算法的伪代码,如果输入的x 值是20,则输出的y 值是 ( ) A 、100 B 、50 C 、25 D 、150
9、计算135791113⨯⨯⨯⨯⨯⨯算法,图中给出了程序的一部分,则在横线上能填入的数是
A 、13.5
B 、12.5
C 、12
D 、11.5 ( )
10、对于所给的算法中,执行循环的次数是 ( )
A .1 000
B .999
C .1001
D .998 11、为了在运行下面的程序之后得到输出y =16,键盘输入x 应该是 ( )
A 、3或-3
B 、 -5
C 、-5或5
D 、 5或-3
12.已知有上面程序,如果程序执行后输出的结果是11880,那么在程序的“条件”应为( )
A 、i > 9
B 、i >= 9
C 、i <= 8
D 、i < 8。