3-5条件选择语句和循环语句
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3-5条件选择语句和循环语句
A、理论部分
在日常生活中,我们经常遇到各种各样的判断,然后根据判断情况去做相应的事情。例如,小朋友坐公共汽车,身高超过1.1米需要买车票,否则,就不需要买票。它的判断条件为身高是否大于1.1米。可见,要进行判断,首先要确定判断条件。
在数学计算中也需要根据不同的判断条件去选择不同的公式,如符号函数就要根据自变量取值条件去选择不同的计算公式,这些公式成为符号函数的计算分支。当我们使用LOGO编程解决类似以上问题时,考虑到整个程序的执行顺序不再是唯一的,所以掌握程序的条件选择语句成为编程的必备知识。在学习具体条件选择语句之前,因为判断条件成为条件选择的根源,所以我们先来了解一下LOGO条件选择的表达式。
一、条件选择的表达式
2、关系表达式的值
在LOGO语言中如果语法正确,关系表达式的值是唯一确定的。如果关系表达式成立时,其值为真(TRUE),不成立是,其值为假(FALSE)3、逻辑运算符
(1)AND(逻辑与)
[格式]AND 关系表达式1 关系表达式2
[功能]当表达式中存在任一个关系表达式为假时,整个表达式的值为假;只有当所有关系表达式都为真时,整个表达式的值才为真。如果AND后面存在两个以上的关系表达式,LOGO语言要求要用小括号括起来。(2)OR(逻辑或)
[格式]OR关系表达式1 关系表达式2
[功能] 当表达式中存在任一个关系表达式为真时,整个表达式的值为真;只有当所有关系表达式都为假时,整个表达式的值才为假。如果OR后面存在两个以上的关系表达式,LOGO语言要求要用小括号括起来。
(3)NOT(逻辑非)
[格式]NOT 关系表达式
[功能]其逻辑值为NOT后面关系表达式的逻辑取反,如关系表达式为真时,整个表达式为假,相反,如关系表达为假时,整个表达式为真。NOT与AND和OR在格式上有很大区别,AND和OR可以带多个关系表达式,而NOT后面只能带一个关系表达式。
二、条件选择语句
[命令]IF条件表达式THEN命令组ELSE命令组
[功能]当IF后面的条件表达为真时,执行THEN后面的命令组,否则执行ELSE后面的命令组。这个语句有几种省略格式的用法,举例如下:
[举例]
①IF :A>2 THEN FD 80 RT 90 ELSE REPEAT 5[FD 80 RT 72]
②TO ABC :A :B
IF :A=:B THEN REPEAT 4[FD :B RT 90]
STAMPRECT :A :B
END
①中如果:A>2,那么执行FD 80 RT 90,如果:A不等于2,画一个边长是80的正五边形。②中如果:A=:B,就执行“REPEAT 4[FD :B RT 90]”,否则,将结束“IF :A=:B THEN REPEAT 4[FD :B RT 90]”这条命令,去执行下一条语句,也就是画出一个长是:A,宽是:B的长方形。
三、循环语句
[命令1] FOR “变量初值终值[命令组]
[命令2](FOR “变量初值终值[命令组] 循环步长)
[功能]以变量的初值开始计数,每执行一次命令组中命令,变量的值都要增加一次循环步长计数,如此循环,直到变量大于终值,结束循环过程。上面的命令1中省略了循环步长,此时循环步长值为1。
[举例]FOR “X 1 4 [PR :X]
在这个循环之中,变量:X的值从1变到4,每次都执行在屏幕上打印:X 这个变量,所以运行的结果为:
1
2
3
4
思考:(FOR “X 1 10 [PR :X] 2)的运行结果是什么?
(FOR "A 1 7[(TYPE :A [ ])] 2) 的运行结果是什么?
LOGO语言除了FOR循环以外,还有WHILE型等循环语句,这些内容我们在以后的学习中会进一步学习。
四、赋值语句
[命令]MAKE “变量名赋值表达式
[功能]可对一个变量进行赋值。在作用中,要注意赋值表达式与变量类型的统一。[举例]MAKE “A 10
将10赋给变量:A,相当于数学表达式中的“A=10”
例3-5-1,编程序,求1+2+3+4+….+100=?
解:TO HE
MAKE “S 0
FOR “I 1 100 [MAKE “S :S+:I]
PR :S
END
例3-5-2,(百鸡百钱问题)用100钱买100只鸡。其中母鸡5钱一只,公鸡3钱一只,小鸡1钱三只,试编程求可买母鸡、公鸡、小鸡各多少只?
TO B
FOR "X 0 20[FOR "Y 0 33[FOR "Z 0 100 [
IF AND :X+:Y+:Z=100 5*:X+3*:Y+:Z/3=100 THEN (PR :X :Y :Z)]] ] END
B、实践部分
1、编一个程序求123*321=?和456*654=?
2、编写一个程序求计算5个成绩的平均数。
3、商店里铅笔、小刀、钢笔、像皮的单价分别是:0.25元,1.40元,13.85元,2.6元;编程求买任意数量的铅笔、小刀、钢笔、像皮所需多少元?
4、三个工人(A、B、C)修一条路。第一天,A修25 米;B修19米;C 休息。第二天,A休息;B修15米;C修17米。假设修每米路需用沙子3吨。求A、B、C三人各用多少吨沙子?
5、A、B、C三位学生期末考试成绩如下:设X、Y、Z分别是A、B、C
6、编程求N!=?
参考答案见第二部分中LOGO语言自测题三1-6题