3--几种基本语句解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【解法三】算法语句描述:
输入年分数y a=y Mod 4 b=y Mod 100 c=y Mod 400 If c=0 Then
输出“ y是闰年”
Else
If a=0 And b<>0 Then 输出“ y是闰年”
Else
输出“ y不是闰年”
End If End If
开始
输入年份y 否 4整除y 是
语句3
语句2
【规律总结】
语句1
语句2 Else
语句3 End If End If
若问题中出现几次条件判断, 则在框图中会有几个判断框, 同样 的在程序语句中, 也会有几重语句 的嵌套; 出口“End If”不能缺省, 否则将会出现无法执行的错误.
练习3.试用复合If 语句表示闰年问题的算法.
解:输入y
例2.如何寻找满足条件 1 2 2 2 3 2 . .n .2 100
的最大整数n?
开始
解: s=0 n=1 Do s=s+n^2 n=n+1 Loop While s <= 1000
输出 n-2
S=0
n=1
S=S+n^2
n=n+1 是
S<=1000
否 输出n-2
结束
题型二 Do Loop 语句的应用
解 算法框图如图所示:
规律方法 由I除以2的余数为零时,输出I,可判断输出的 I是偶数,否则不输出;I>100时结束,且I的初始值为1, 故可判断1≤I≤100.
【训练2】根据下面的算法语句,绘制算法框图,指出输出的最 后结果是什么?并将它改为另一种循环,画出相应的算法
框图.
算法:(如左下图)
S=0 For i=3 To 99
―→ 画算法框图 ―→ 用 For 语句描述算法

For 语句描述算法为:
S=0 For i=1 to 999 Step 2
S=S+i*i Next 输出S
算法框图如下:
规律方法 (1)For 语句是表达循环结构最常见的语句之一, 它适用于预先知道循环次数的循环结构,有些循环中如果 不能直接看出循环次数,则可通过题目中的规律先求出循 环次数再写循环语句. (2)使用 For 语句设计程序的一般思路:①确定循环次数; ②把反复要做的工作,作为循环体放在 For 与 Next 之 间.
Else y=x2-x
End If 输出y
例2、某居民区的物业管理部门每月按以下方法收取卫生费: 3 人和3人以下的住户, 每户收取5元; 超过3人的住户, 每户超出1 人加收1.2元. 试设计算法, 根据输入的人数应收取的卫生费.
分析: 若用c(单位:元)表示应收取的费用, n表示住户的人数, 则
开始
1.输入a;
2.对a进行判断:
输入a
(1)若a<5, 则C=25a;


a<5
(2)若5≤a<10, 则C=22.5a; (3)若a ≥ 10, 则C=21.25a;


a<10
3.输出C.
算法框图如右:
C=25a
C=22.5a
C=21.25a
输出C
结束
解 假如用变量a表示顾客购买的唱片数量, 用变量C表示顾客要缴纳的金
是 100整除y 否 否 400整除y 是
输出y非闰年
输出y是闰年
结束
【想想】请试着用复合If语句描述“闰年问题”的算法。
符合以下条件之一的年份即为闰年
【解法四】算法语句描述:
1.能被4整除而不能被100整除; 2.能被400整除.
输入年分数y a=Βιβλιοθήκη Baidu Mod 4
开始
b=y Mod 100 c=y Mod 400
输入年份y
If (a=0 And b<>0 ) or c=0 Then 否 输出“ y是闰年”
4整除y 是
Else
输出“ y不是闰年”
是 100整除y 否
End If
否 400整除y 是
输出y非闰年
输出y是闰年
结束
四、课堂小结
1.条件语句用来实现算法做的选择结构, 在一些需要按给定条件 进行比较、判断的问题中, 如判断一个数的正负, 比较两个数的 大小, 求分段函数的函数值, 二分法求方程的根等, 常用条件语句 设计程序, 有时要用到复合If语句来表示;
含两个“分支”的条件结构 写成条件语句为
满足条件? 否 是
语句1
语句2
IF 条件 THEN 语句体1
ELSE 语句体2
END IF
当计算机执行上述语句时,首先对IF后的 条件进行判断,如果条件符合,就执行THEN后 的语句体1,否则执行ELSE后的语句体2.
例1 设计算法,根据输入的x值,计算y的值,写出计算程 序,y与x关系如下:
【例3】以下给出的是用循环语句编写的一个算法,根据该算法 写出此题的算法功能,并画出相应的算法框图. I=1 Do a=I Mod 2 If a=0 Then 输出 I End If I=I+1 Loop While I<=100
[思路探索] 该算法表示的功能是:找出并输出1至100的正 整数中的所有偶数.
End If End If
否 400整除y 是
Else 输出“y不是闰年”
输出“y不是闰年”
输出“y是闰年”
End If
End
结束
【想想】请试着用复合If语句描述“闰年问题”的算法。
【解法二】算法语句描述: 符合以下条件之一的年份即为闰年
输入年分数y
1.能被4整除而不能被100整除;
If yMod 4=0 Then
例3.在音乐唱片超市里, 每张唱片售价25元. 顾客如果购买5张以上(含5张)唱片, 则按照九折收费; 如果顾客购买10张以上(含10张)唱片, 则按照八五折收费. 请 用语句描述完成计费工作的算法, 画出算法框图.
解 假如用变量a表示顾客购买的唱片数量, 用变量C表示顾客要缴纳的金
额. 则这个算法可以表示为:
1.For语句 (1)适用范围:For语句适用于_预__先__知__道__循__环__次__数__的循环结 构. (2)一般形式: For循环变量=_初__始__值__T_o_终__值____ 循__环__体___ _N_e_x_t_
题型一 For语句的应用
【例1】编写一个计算12+32+52+…+9992的算法,画出算法 框图,并用 For 语句描述这个算法. [思路探索] 由题意(已知) ―→ 先设计算法步骤
{ x+1,x≥1;
y= x2-x,x<1.
【分析】这是一个分段函数的求值问题,计算之前,要先对 变量进行判断,因此,应选择If—Then语句来编写计算程序. 【解析】程序如下:
(1)输入x; (2)如果x≥1,则y=x+1 (3)如果x<1,则y=x2-x (4)输出y. 算法: 输入x
If x≥1 Then y = x+1
C=25a
C=25a
C=22.5a
C=21.25a
Else If a<10 Then
C=22.5 a
Else
C=21.25a
输出C 结束
End If
End If
输出C.
抽象概括
对于形如有图中所示的框图的算法, 都可以用复合If语句来表示:
If 条件1 Then 语句1


条件1


条件2
Else If 条件2 Then
c 5 5,1.2(n3)0 ,n n 3 3,.
算法步骤:
算法框图: 开始
1.输入n; 2.若n≤3, 则c=5,
输入n
Y
N
n≤3
否则c=5+1.2(n-3); c=5
c=5+1.2(n-3)
算法语句: 输入 n If n≤3 Then
c=5 Else
c=5+1.2(n-3)
3.输出c.
输出c
End If 输出c.
(3)Do Loop语句对应的基本框图: 循环体
是 满足条件?

2.Do Loop 应用举例 问题:设计一个求满足:2+4+6+8+…+n>10 000的最小正整数 n(n是偶数)的算法框图,并写出相应的算法语句.框图如下:
n=0 P=0 Do
n=n+2 P=P+n Loop While S≤10000 输出 n
2.能被400整除.
If yMod 100<>0 Then
开始
输出“ y是闰年”
Else
输入年份y
If yMod 400=0 Then 输出“ y是闰年”
否 4整除y 是
Else
输出“ y不是闰年”
End If End If
是 100整除y 否 否 400整除y 是
Else
输出“ y不是闰年”
End If
【训练1】 请阅读下列用For语句给出的算法,画出算 法框图并说明该算法的处理功能.
S=0 For i=1 To 20 Step 2
S=S+i Next 输出 S
解 算法的框图如图所示,因此,这个算法实际上处理的 是求和S=1+3+5+7+9+11+13+15+17+19.
复习回顾
1.For语句的一般格式是:
2.条件语句的一般形式: If- Then - Else-End If 如下图所示:
If 条件 语句1
Else
语句2 End If
Then
真 语句1
条件
假 语句2
3.复合If语句 对于形如有图中所示的框图的算法, 都可以用复合If语句来表示:
If 条件1 Then
语句1
Else If 条件2 Then
输出y非闰年
输出y是闰年
End
结束
【想想】请试着用复合If语句描述“闰年问题”的算法。
【解法三】算法语句描述: 符合以下条件之一的年份即为闰年
输入年分数y
1.能被4整除而不能被100整除;
a=y Mod 4
2.能被400整除.
b=y Mod 100
开始
c=y Mod 400 If c=0 Then
§3 几种基本语句--------循环语句(2)
1.Do Loop循环语句
(1)Do Loop循环语句的一般格式是:
Do 循环体
开始执行
Loop While 条件为真 当条件为真时,执行循环体
(2)Do Loop语句表述的循环结构适用于预先不知道循环次 数, 要根据其他形式的终止条件停止循环.
计算机执行Do Loop语句时, 先执行Do和Loop While之间 的循环体, 然后判断条件是否成立, 若成立, 执行循环体, 直到 条件不成立为止, 跳出循环体, 执行Loop While后面的语句.
语句2 Else
语句3 End If End If


条件1


条件2
语句3
语句2 语句1
【规律总结】 若问题中出现几次条件判断, 则在
框图中会有几个判断框, 同样的在程序 语句中, 也会有几重语句的嵌套; 出口 “End If”不能缺省, 否则将会出现无 法执行的错误.
§ 3 循环语句 1
自学导引
输入年份y
输出“ y是闰年”
Else
否 4整除y 是
If a=0 And b<>0 Then
输出“ y是闰年”
Else
输出“ y不是闰年”
是 100整除y 否 否 400整除y 是
End If
End If
输出y非闰年
输出y是闰年
结束
【想想】请试着用复合If语句描述“闰年问题”的算法。
符合以下条件之一的年份即为闰年 1.能被4整除而不能被100整除; 2.能被400整除.
额. 则这个算法可以表示为:
1.输入a;
算法框图如右:
开始
2.对a进行判断: (1)若a<5, 则C=25a; (2)若5≤a<10, 则C=22.5a;
输入a


a<5
(3)若a ≥ 10, 则C=21.25a. 3.输出C.
下面用复合If语句描述这个算法算法:


a<10
输入a;
If a<5 Then
S=S+i^3 i=i+2 Next 输出S
S=0 i=3 Do
S=S+i^3 i=i+2 Loop While i<=99
§3 几种基本语句
——条件语句
算法中的条件结构是由条件语句来表达的, 条件语句是处理条件分支逻辑结构的算法语句 .
条件语句的一般格式 只含一个“分支”的条件结构 写成条件语句为
满足条件?

是 语句
If 条件 Then 语句体
End If
当计算机执行这种形式的条件语句时,首先对 IF后的条件进行判断,如果条件符合,就执行 THEN后的语句体,否则执行END IF之后的语句.
符1.能合被以4下整条除件而开之不始一能的被年10份0整即除为;闰年
If yMod 4=0 Then If yMod 100< >0 Then
2.能被400整除输. 入y
输出“y是闰年”
Else If yMod 400=0 Then 输出“y是闰年”


4整除y
是 100整除y 否
Else 输出“y不是闰年”
循环体
For 循环变量=初始值 To 终值 Step k 循环体

i>终值
Next

2.For语句表述的循环结构适用于_预__先__知__道__循__环__次__数__的__循__环__结__构__.
问题 如何寻找满足2+4+6+8+…+n>10 000条件的最小 整数?
在一些循环结构中,预先不知道循环的次数的循环结构,要根据 其它形式的终止条件停止循环,在这种情况下一般用Do Loop语 句
相关文档
最新文档