算法与程序4.3语句(3课时)

文档属性

名称 算法与程序4.3语句(3课时)
格式 zip
文件大小 1.8MB
资源类型 教案
版本资源 教科版
科目 信息技术(信息科技)
更新时间 2009-05-13 10:49:00

文档简介

实践六 求解一元二次方程的实数根
1、实践目标
(1)掌握赋值、选择语句的使用方法。
(2)学会用顺序、选择结构编写程序。
2、任务描述
编写程序要求:输入一元二次方程的三个系数,输出求解结果。
3、操作提示
(1)分析问题。计算一元二次方程的实数根,根据方程系数的变化,利用可判断实数根的情况:有两个相同的实数根、有两个不同的实数根或者无实数根。设,则方程的实数根情况如表6-1。
表6-1
d的情况 有无实数根 实数根为多少
情况1 d>0 有两个不同的实数根 X1=(-b+sqr(d)/(2*a)X2=(-b-sqr(d)/(2*a)
情况2 d=0 有两个不同的实数根 X1=X2=(-b)/(2*a)
情况3 d<0 无实数根 -
(2)设计算法。根据分析结果将以下流程图补充完整:
(3)程序实现。
①新建工程,创建窗体。界面设计参照图6-1,属性设置参照表6-2。
表6-2 窗体中主要控件属性设置
对象 属性名称 属性值
From1 Caption 求一元二次方程的实数根
Label1 Caption 系数a
Label2 Caption 系数b
Label3 Caption 系数c
Label4 Caption X1=
Label5 Caption X2=
Label6 Caption (空白)
Text1 Text (空白)
BackColor &H0000FFFF&(黄色)
Text2 Text (空白)
BackColor &H0000FFFF&(黄色)
Text3 Text (空白)
BackColor &H0000FFFF&(黄色)
Text4 Text (空白)
BackColor &H0000FFFF&(黄色)
Text5 Text (空白)
BackColor &H0000FFFF&(黄色)
Command1 Caption 计算开始
②完善下列程序代码,并将其输入计算按钮的代码窗口中。
Private Sub Command1 Click( )
Dim a As Double, b As Double, c As Double, d As Double, X1 As Double, X2 As Double
a=Val(Text1. Text)
b=Val(Text2.Text)
c=Val(Text3.Text)
d=
If d>0 Then
X1=
X2=
Text4.Text=Str(X1)
Text5.Text=Str(X2)
Label6.Caption=“有两个不同的实数根”
Else
If Then
X1=(-b)/(2*a)
X2=X1
Text4.Text=Str(X1)
Text5.Text=Str(X2)
Label6.Caption=“有两个不同的实数根”
Else
Text4.Text=“”
Text5.Text=“”
Label6.Caption=“ ”
End If
End If
End Sub
[扩展与提高]
(4)当输入的系数a=0时,上述程序将产生溢出错误,且方程不再是一元二次方程。请修改上述程序,增加判断方程是否是一元二次方程,解决溢出错误。
Y
Y
N
N
计算d←b^2—4*a*c
开始
输入系数a、b、c
d>0
X1=(-b+sqr(d))/(2*a)
X2=(-b-sqr(d))/(2*a)
无实数根
结束
3
2(共45张PPT)
顺序分支结构
复习:
程序有那三种结构?
顺序结构
分支结构
循环结构
开始、结束框
处理框
判断框
输入、输出框
流程线
流程图的几种符号
看流程写答案
a=4
b=5
a=a+b
c=3
a=a+c
b=a-c
开始
输出a
输出
开始
输入y
Y<0
输出”y是非负数”
输出”y是负数”
结束
Y
N
Y
N
开始
结束
输出”y”
赋值语句:
变量名 (对象.属性)=表达式
a=4
b=5
a=a+b
c=3
b=a-c
a=a+c
求a=
赋值的过程是一个给予的过程,右边给左边的过程
例:要给一元二次方程的三个系数赋值,可以用三个赋值语句
a = 3
b = 2
c = 4
或写成: a = 3:b = 2: c = 4
VB程序中,可以一行写一个语句,也可以在一行上写几个语句,但多个语句之间必须用冒号(:)分隔。
变量名 = 表达式
对象名.属性名 = 表达式
R = Val(Text1.Text)
Text2.Text = Str(3.1416*r*r)
文本框的名称,用户自己命名的
文本框的一个属性
赋值语句中的赋值符号与条件表达式中等号的区别 :
在语句
if (x=8) then ……
中的等号与语句
x=(-b-sqr(d))/2*a
中的等号的作用有什么区别?
分支结构(选择结构)
1.行If语句 (形式1)
If 条件表达式 Then 语句1 Else 语句2
开始
表达式为true
N
Y
执行语句1
执行语句2
结束
If 条件表达式 Then 语句
开始
表达式为true
N
Y
执行语句1
结束
1.行If语句 (形式2)
例:
If a>=b then s=1 else s=-1
如果输入a=3,b=5,则s?
If d>=10 and d<=100 then count=count+1
如果count的初始值为0,当输入4次d的值分别是10,25,30,0后,则count的值为?
2、多行分支语句
If 条件表达式 then
语句块
endif
if 条件表达式 then
语句块1
else
语句块2
endif
2、问题思考:
期末考试结束了,老师们都忙着为同学们统计考试成绩。为了区分成绩的优异,现在规定考试分在60分以下的评为“不合格”,60分及60以上的评为“合格”。请你为老师设计一个程序,每次输入一个分数值x(0=流程和代码
开始
分数X
X <60
输出”合格”
输出”不合格”
结束
Y
N
Dim x as integer x=val(text1.text) if x<60 then msgbox(“不合格”) else msgbox(“合格”)
开始
分数X
X <60
输出”合格”
输出”不合格”
结束
Y
N
X >=90
输出” 优秀”
N
Y
Dim x as integer Dim s as string x=val(text1.text) if x<60 then s=“不合格” elseif x>=90 then s=“优秀” else s=“合格” endif msgbox(s)
3.多层嵌套if语句
If 条件表达式1 then
语句块1
ElseIf 条件表达式2 then
语句块2
……
ElseIf 条件表达式n then
语句块n
Else
语句块0
EndIf
练习: 实践六
问题分析: 实数根分析
d的情况 有无实数根 实数根值
情况1 d>0 有两个不同的实根 X1=(-b+sqr(d))/(2*a)
X2=(-b-sqr(d))/(2*a)
情况2 d=0 有两个相同的实根 X1=x2=(-b)/(2*a)
情况3 d<0 无实数根 _
设 d=b^2-4*a*c得出以下实数根情况
练习:
完成活动手册实践六
将其中的流程图和代码补充完整。
提高题:输入三个系数后,要先判断if a>0 then ……实践七 国际象棋棋盘上的麦粒
1、实践目标
(1)理解循环语句的作用,能根据实际情况正确使用For语句与Do语句。
(2)学会使用VB循环控制结构编写程序,实现简单的算法。
2、任务描述
在印度有一个古老的传说:舍
罕王打算奖赏国际象棋的发明
人——宰相西萨·班·达依尔。
国王问他想要什么。他对国王
说:陛下,请您在这张棋盘
(图7-1)的第1个小格里,
赏给我1粒麦子,在第2个小
格里给2粒,第3小格给4粒,
以后每一小格都比前一小格加
1倍。请您像这样摆满棋盘上所有64格的麦粒,都赏给您的仆人吧!国王觉得这个要求太容易满足了就命令给他这些麦粒。当人们把一袋一袋的麦子搬来开始计数时,国王才发现:就是把全印度甚至全世界的麦粒全拿来,也满足不了那位宰相的要求。
那么,宰相要求得到的麦粒到底有多少呢?尝试设计一个程序来计算。
3、操作提示
(1)问题分析
本问题可用累加的方法来求解,即最后得到的麦粒数由每一格赏赐的麦粒数相加得到,而且相邻的格子要求得到赏赐的麦粒数也是有一定规律的,即后一格是前一覆盖麦粒数的2倍。若用i表示当前所处的格子,p表示此格子中应该赏赐的麦粒数,s表示累加得到的麦粒数,分析过程见表7-1。
表7-1
格(i) 每格存放麦粒数(p) 累加和(s)
1 1 1
2 2 1+2
3 4 1+2+4
4 8 1+2+4+8
5 16 1+2+4+8+16
6 32 1+2+4+8+16+32
…… …… ……
64
由表7-1的分析可得i= ,p= ,s= 。
(2)设计算法。
根据上面的分析,可画出算法流程图如下:
(3)程序实现。
①将下列根据上面算法编写的代码填写完整。
Private Sub Command1_Click( )
Dim n As Integer, i As Integer, p As Double, s As Double
n=Val(Text1.Text)
s=0
p=1
For i= To n
s=
p=
Next i
Text2.Text=Str(s)
End Sub
②新建工程,创建窗体。界面设计参照图7-2,属性设置参照表7-2。
表7-2 窗体中主要控件属性设置
对象 属性名称 属性值
Form1 Caption 国际象棋棋盘上的麦粒
Label1 Caption 请输入当前所处的棋盘格数(n=)
Label2 Caption 赏赐的麦粒总数(s=)
Text1 Text (空白)
Back Color &H00FFC0C0&(蓝色)
Text2 Text (空白)
Back Color &H00FFC0C0&(蓝色)
Command1 Caption 计算
③将上面完成的代码段输入到计算按钮的代码窗口中。
④调试运行程序。
[扩展与提高]
(4)请将以下用Do语句编写的程序填写完整,并注意对比两种循环语句的使用。
Private Sub Command1_Click( )
Dim n As Integer, i As Integer, p As Double, s As Double
n=Val(Text1. Text)
s=0
p=1
Do While i<=n
s=
p=
i=
Loop
Text2.Text=Str(s)
End Sub
(5)假如每颗麦粒的重量为0.2克,每人每天消耗0.5千克,算一算上面棋盘上的麦粒能供全球60亿人吃多少年?(先写出VB表达式再计算)
Y
N
开始
输入棋盘上的格子数n
累加得到的麦粒数置初值s←0
当前格子的麦粒数置初值p←0
置初值:i←1
i≤n
s←s+p
p←p*2
i←i+1
输出麦粒数s
结束
PAGE
5请在Command1的Click事件中添加如下代码:
Dim a, b, c, d, x1, x2 As Double
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
d = b ^ 2 - 4 * a * c
If d > 0 Then
x1 = (-b + Sqr(d)) / (2 * a)
x2 = (-b - Sqr(d)) / (2 * a)
Text4.Text = Str(x1)
Text5.Text = Str(x2)
Label6.Caption = "有两个不同的实数根"
Else
If d = 0 Then
x1 = (-b) / (2 * a)
x2 = x1
Text4.Text = Str(x1)
Text5.Text = Str(x2)
Label6.Caption = "有两个相同的实数根"
Else
text4.text=""
text5.text=""
Label6.Caption = "没有实数根"
End If
end if(共13张PPT)
复习:分支结构语法
IF 条件 THEN
语句
END IF
IF 条件 THEN
语句一
ELSE
语句二
END IF
IF 条件 THEN
语句一
ELSE IF 条件 THEN
语句二
ELSE
语句三
END IF
复习:
设a,b,c和n都是整数类型的变量
请完成下面的处理:
若n除以3的余数为0,那么a的值增加1
若n除以3的余数为1,那么b的值增加1
若n除以3的余数为2,那么c的值增加1
Dim a,b,c,n As Integer
If n mod 3=0 Then
a=a+1
ElseIf n mod 3=1 Then
b=b+1
ElseIf n mod 3=2 Then
c=c+1
End If
一个古老的问题
如果你是国王,你要给宰相多少麦粒呢?
宰相西萨·班·达依尔
问题分析
格(i) 每格存放粒数(P) 累加和(S)
1 1 1
2 2 1+2
3 4 1+2+4
4 8 1+2+4+8
…. ….. …..
64
设计算法
For语句
For 循环变量=初值 TO 终值 Step 步长
语句块
Next 循环变量
步长可以是正数,也可以是负数,但不能为0,如果步长为1,step 1可以不写
执行next语句时循环变量的值增加一个步长的值
代码实现
Dim n As Integer, i As Integer
Dim p As Double, s As Double
n=Val(Text1.Text)
s=0
p=1
For i= To n
s=
p=
Next i
Text2.Text=Str(s)
Dim n As Integer, i As Integer
Dim p As Double, s As Double
n=Val(Text1.Text)
s=0
p=1
For i= 1 To n
s=s+p
p=p*2
Next i
Text2.Text=Str(s)
界面设计
Text1
Text2
command1
扩展与提高: Do语句
Do While 条件表达式
语句块
Loop
思考
能否把国际象棋盘上的麦粒中FOR语改写成DO语句?
for i=1 to n
s = s + p
p = p * 2
next i
i=1
Do While i<=n
s = s + p
p = p * 2
i = i+ 1
loop
思考:
假如每颗麦粒的重量为0.2克,每人每天消耗0.5千克,算一算上面棋盘上的麦粒能供全球60亿人吃多少年?(先写出VB表达式再计算)
S*0.2/(6000000000*365*1000*0.5)
大约可以吃3665年
活动:
完成活动手册P17页
实践七 国际象棋棋盘上的麦粒1、在计算按钮的click事件中的代码:
Private Sub Command1_Click( )
Dim n As Integer, i As Integer, p As Double, s As Double
n=Val(Text1.Text)
s=0
p=1
For i=1 To n
s=s+p
p=2*p
Next i
Text2.Text=Str(s)
End Sub
2、提高题中的代码:
Private Sub Command1_Click( )
Dim n As Integer, i As Integer, p As Double, s As Double
n=Val(Text1. Text)
s=0
p=1
i=1
Do While i<=n
s=s+p
p=p*2
i=i+1
Loop
Text2.Text=Str(s)
End Sub
3、s*0.2/(6000000000*365*1000*0.5) 大约可以吃3365年循环语句(实践7国际象棋棋盘上的麦粒)(1课时)
教学目标:
1、让学生学会循环结构的语法规则
2、让学生通过对实际问题的解决来体验循环结构解决问题的方法
3、进一步的感受与体验解决问题的全过程,并比较二种程序设计结构区别,运用到实际解决问题中
教学重点难点
循环语句的语法结构
教材分析:
本课内容为4.3.3循环语句,是介绍程序设计的基本结构中的循环结构,主要讲解for语句和do语句的使用。具体例题参照学生活动手册实践7国际象棋盘上的麦粒。
如果讲解循环语句的语法格式,会比较枯燥乏味(从前节课的if语句教学中可以发现),所以这节课先让学生对for和do语句有个简单的认识,下次课中再深入学习循环语句的语法格式和一些使用注意点。
本节课中采用《实践7 国际象棋棋盘上的麦粒》为例子来分析for语句和do语句。
循环语句是第四章的难点,也是重点之一。
学生分析:
学生对语法格式不感兴趣,对循环语句的循环次数,以及每次循环中的变量的值比较模糊不清晰,这些可以放到下次课中具体的讲解。对于结构的判断,比如选择、循环结构的判断,这些可以通过练习来加强,也可以放到下次课中。
学生对国际象棋比较感兴趣,可以引起学生的兴趣,这样对循环语句的简单使用可以形成一定的认识。
教学过程
教学过程
一、分支结构的复习
分支结构的语法
IF 条件 THEN
语句
END IF
IF 条件 THEN
语句一
ELSE
语句二
END IF
IF 条件 THEN
语句一
ELSE IF 条件 THEN
语句二
ELSE
语句三
END IF
2、练习:课本P81页中的习题4。
设a,b,c和n都是整数类型的变量
请完成下面的处理:
若n除以3的余数为0,那么a的值增加1
若n除以3的余数为1,那么b的值增加1
若n除以3的余数为2,那么c的值增加1
答案:
Dim a,b,c,n As Integer
If n mod 3=0 Then
a=a+1
ElseIf n mod 3=1 Then
b=b+1
ElseIf n mod 3=2 Then
c=c+1
End If
二、情景引入
1、在印度有一个古老的传说:舍罕王打算奖赏国际象棋的发明人——宰相西萨·班·达依尔。国王问他想要什么。他对国王说:陛下,请您在这张棋盘的第1个小格里,赏给我1粒麦子,在第2个小格里给2粒,第3小格给4粒,以后每一小格都比前一小格加1倍。请您像这样摆满棋盘上所有64格的麦粒,都赏给您的仆人吧!
那么,宰相要求得到的麦粒到底有多少呢?尝试设计一个程序来计算。
(提问多个学生,让学生产生疑问)
三、问题分析
本问题可用累加的方法来求解,即最后得到的麦粒数由每一格赏赐的麦粒数相加得到,而且相邻的格子要求得到赏赐的麦粒数也是有一定规律的,即后一格是前一覆盖麦粒数的2倍。若用i表示当前所处的格子,p表示此格子中应该赏赐的麦粒数,s表示累加得到的麦粒数。
四、设计算法
五、代码的实现
1、先讲解for语句的语法格式
For 循环变量=初值 TO 终值 Step 步长
语句块
Next 循环变量
2、使用注意点
步长可以是正数,也可以是负数,但不能为0,如果步长为1,step 1可以不写
执行next语句时循环变量的值增加一个步长的值
3、以填空方式的将代码补充完整。(先让学生思考,根据刚才的语法,应该如何做,然后出示完整的代码,再结合流程图来讲解分析。)
s=0
p=1
For i= To n
s=
p=
Next i
六、界面设计
提示学生按照“界面图+属性表”来设计窗体(这个前面学生已经做过4个实践了,不需要再演示,但必须要给学生压力,下课前必须要完成。)
七、扩展与提高
1、do语句语法格式:
Do While 条件表达式
语句块
Loop
2、能否把国际象棋盘上的麦粒中FOR语改写成DO语句?
i=1
Do While i<=n
s = s + p
p = p * 2
i =i + 1
loop
(用for语句在前面做对比,然后再结合流程图做分析)
八、学生练习
1、完成实践七 国际象棋棋盘上的麦粒
(教师要给学生指导,并且下课前要检查完成情况)
教学反思:
先讲解知识点,再分析例子,学生就算很简单的东西,他不感兴趣,不愿意听,讲得再简单,知识点再简单,他也不愿意听进去,坐着讲闲话。我想让学生至少先听,听不懂再做解析。
想试着改变讲课的顺序,从学生感兴趣的例子入手,然后在例子中把知识点渗透进去,这样的做法,知识点讲述不是很系统,但学生至少能听点进去。
尽量的让知识点简单化,这样可以保持学生的兴趣,不至于觉得太难,不想学习了。
这样讲解do语句,觉得太简单的带过了。
教学中,先提示学生根据活动手册的流程图将for语句和do语句先补充完整,培养学生程序填空的能力,然后将实践7做一下修改,增加一个按钮用于do语句的执行,然后要求学生进行调试。通过填空和调试达到对循环语句的初步认识。
Y
N
开始
输入棋盘上的格子数n
累加得到的麦粒数置初值s←0
当前格子的麦粒数置初值p←0
置初值:i←1
i≤n
s←s+p
p←p*2
i←i+1
输出麦粒数s
结束4.3语句——第1课时(顺序分支语句)
教学目标:
1、熟练掌握赋值语句和选择语句的语法及使用。
2、学会使用VB编写顺序、选择两种种控制结构
3、通过具体实例的讲解,使学生初步学会使用顺序分支的语法编写简单的程序代码
重点:
掌握对赋值语句的理解,及变量在程序中的变换状态
掌握分支结构中,条件的选取及if语句的使用。
难点:多重分支结构的条件选取及语法的编写
教材分析:
教科书分析:本课内容是介绍程序设计的基本结构中的顺序和分支结构。可参考浙教版算法与程序设计4.3.1-4.3.2,赋值语句和选择语句。具体例题参照学生活动手册实践六求解一元二次方程的实数根。
教学过程中通过一些具体的(简单、有针对性的)实例,以流程图和具体代码相结合分析的方法,以掌握和应用这些基本语句为教学目标开展教学。教学中,采用讲授法为主,适当让学生展开讨论与实践体验。
教学流程:
一、复习引入
(先回顾一下第一章的流程图知识和程序的三种基本控制结构,为本章做好知识铺垫)
1、程序有那三种结构?顺序结构、分支结构、循环结构
2、流程图的几种符号?
3、以三个实际例子来简单的说明三种基本控制结构:顺序结构求a的值;根据输入的数判断正负;求1加到999的和。
二、赋值结构:
1、赋值语句格式: 变量名 (对象.属性)=表达式
2、赋值的过程是一个给予的过程,右边给左边的过程。(跟数学中的区别,以及跟关系表达式中的符号的区别)
3、做练习:(通过练习强化,同时让学生理解顺序结构的值的转变过程)
a=4:b=5:a=a+b:c=3:b=a-c:a=a+c
求a=
4、变量名 = 表达式
例:要给一元二次方程的三个系数赋值,可以用三个赋值语句
a = 3
b = 2
c = 4
或写成: a = 3:b = 2: c = 4
5、VB程序中,可以一行写一个语句,也可以在一行上写几个语句,但多个语句之间必须用冒号(:)分隔。
6、对象名.属性名 = 表达式
R = Val(Text1.Text)
Text2.Text = Str(3.1416*r*r) (要分析对象名和属性名)
7、赋值语句中的赋值符号与条件表达式中等号的区别 :(通过讨论思考形成区别的认识)
在语句
if (x=8) then ……
中的等号与语句
x=(-b-sqr(d))/2*a
中的等号的作用有什么区别?
三、分支结构
1、行If语句:If 条件表达式 Then 语句1 Else 语句2
(分析流程图,帮助学生理解)
2、行If语句:If 条件表达式 Then 语句
(分析流程图,帮助学生理解)
3、(设计实际例子帮助学生理解if语句)例:
If a>=b then s=1 else s=-1
如果输入a=3,b=5,则s?
If d>=10 and d<=100 then count=count+1
如果count的初始值为0,当输入4次d的值分别是10,25,30,0后,则count的值为?
4、多行分支语句
If 条件表达式 then
语句块
endif
或者
if 条件表达式 then
语句块1
else
语句块2
Endif
5、问题思考:(设计一个实际的例子让学生了解if语句的语法格式)
期末考试结束了,老师们都忙着为同学们统计考试成绩。为了区分成绩的优异,现在规定考试分在60分以下的评为“不合格”,60分及60以上的评为“合格”。请你为老师设计一个程序,每次输入一个分数值x(0=流程和代码
Dim x as integer
x=val(text1.text)
if x<60 then msgbox(“不合格”) else msgbox(“合格”)
6、问题深入:(这样刚好可以引出,多重if语句形式,要结合流程图去描述)
为了更好的区分成绩的层次,老师又将决定将考试成绩是90分以及90分以上的评为“优秀”。请你写出表达式。
Dim x as integer
Dim s as string
x=val(text1.text)
if x<60 then
s=“不合格”
elseif x>=90 then
s=“优秀”
else
s=“合格”
endif
msgbox(s)
7、多层嵌套if语句
If 条件表达式1 then
语句块1
ElseIf 条件表达式2 then
语句块2
……
ElseIf 条件表达式n then
语句块n
Else
语句块0
EndIf
四、学生实践
1、完成活动手册实践六
将其中的流程图和代码补充完整。
提高题:输入三个系数后,要先判断if a>0 then ……
五、小结
今天我们主要学习了顺序语句和分支语句,大家能掌握赋值语句、if分之语句就可以了。
教学反思:
对多重if语句,学生不容易理解,应该加一个流程图(P77页)帮助理解,本教案中利用判断90分以上为优秀的例子,很好的说明了。
分析实践六的流程图和代码,以降低难度。
课堂中应该多提问、多让学生讨论,尽量的让学生参与到课堂中。循环语句阅读 (1课时)
教学目标:
1、掌握循环基本语句的使用方法。
2、掌握程序注释的方法。
3、了解一些常见的输入输出语句的使用方法
教学重点:掌握循环基本语句的使用方法
教学难点:循环语句
教材、学生分析:
第4.3节,本节内容介绍了VB的主要命令语句——循环语句和注释语句的概念和使用。教学中,采用讲授法为主,适当让学生展开讨论。
循环语句学生难以理解;累加、累乘在数学中无法理解;程序注释,要让学生养成良好的编程习惯,因为编程容易看程序难。
学生对语法格式不感兴趣,比如对循环语句的循环次数,以及每次循环中的变量的值比较模糊不清晰,但这些又是要求掌握的。在上次课的实践7国际象棋的实践中对for和do语句的简单认识,学生对循环语句已经有一定的了解,这时候再对学生讲述语句的具体的语法是符合认知规律的。
对于结构的判断,比如选择、循环结构的判断;以及程序运行后的值等。这些可以通过习题的形式来加强。
由于本章教材的作用是引领学生“入门”,学生还处于VB学习的初级阶段,简化语法描述的主要目的是为了在保证语句使用效果的前提下,降低学习难度,提高学习效率。
教学过程
(一)、循环语句的深入分析
1、循环语句描述了一种重复计算的过程,由于计算机的计算速度极快,因此,用计算机来处理重复性的计算是十分合适的。
常用的循环语句有如下两种形式:
(1)for语句:通过次数控制循环的计算过程。
(2)do语句:通过条件控制循环的
(强调for次数,do条件,在后面的例子中一定要强调他们功能的区别)
2、 For 语句语法格式
For 循环变量 = 初值 To 终值 Step 步长
  语句块
 Next 循环变量
步长是循环变量的增量,其值可以是正数(递增循环)或负数(递减循环),但不能是0。如果步长为1,则可以连同保留字Step略去不写。
除了步长知识点的讲解,还要讲解初值、终值、步长都必须是整数。
执行next之后,循环变量的值都会增加一个步长的值。
3、结合流程图和运行表格分析以下三道习题,巩固学生对for语句的语法格式的理解,通过步长的正负来构成递增或递减循环。
1+2+3+4…..+n=
5*4*3*2*1=
1+3+5…..99=
4、(用课本上的ph值引出)在某些情况下,循环的次数无法预先知道,但已知在什么条件下应该循环。这时,使用Do语句来描述这样的循环比较合适。(同时应该强化他们的区别,for次数,do条件)Do语句的一般格式如下:
Do While 条件表达式
    语句块
  Loop
5、练习来强化结构,读出s的值,结合流程图和运行表格
s = 0
Do While s<5
s=s+2
Loop
(二)注释:
1、注释是以(‘)开头的一串文字,可以出现在程序中需要进行说明的位置上。
2、注释的作用仅仅是为了增加程序的可读性,对程序执行的效果没有任何影响。
3、然后举例说明
(三)输入、输出语句的补充:
1、 利用文本框输入的方式
如:r=val(text1.text)
2. 利用弹出对话框的方式输入
如:R=Inputbox(“输入圆的半径”)
3. 利用改变对象属性的方法
如: Text1.text=str(x*3.1416*r)
label1.caption=“春节快乐”
4. 利用消息对话框的方法
如:Msgbox(“Hello”)
5、利用打印方法
Print p
(五)、练习补充部分,看时间去讲解。
6、用找碴儿,引出死循环。读出s的值,结合流程图和运行表格
S=0:i=1
Do While s<>13
S=S+i : i=i+1
Loop
7、将for语句改写成do语句,形成一个区分对比。
K=d(1)
For i=2 to 100
if d(i)>k then k=d(i)
Next i
k = d(1)
i = 2
Do While i <= 100
If d(i) > k Then k = d(i)
I=i+1
Loop
8、练习:
x=1:y=4
Do While y>4
x=x*y
y=y+1
Loop
x=1:y=5
Do While y<7
x=x*y
y=y+1
Loop
求他们的x的值是多少。
(五)、小结
今天我们主要学习了for语句和do语句,以及他们的使用方法。
教学反思:
如何多用提问的方式,来让学生参与进来,而不至于听睡着,以及如何设计本节课的实践练习,都是一个值得思考的问题。
读出s的值,结合流程图和运行表格,培养学生阅读程序的一种思维。
讲解for语句时,先讲讲语句语法格式,马上切入实际的例子讲解,这样可以把初值、终值、步长、循环变量,以及next的作用,以提问的形式来巩固,然后再回过来看for语法格式,这样可以让学生初步的掌握for语法格式。接着用两个实际例子让学生去阅读程序读出i的值和s的值,结合流程图和程序,让学生初步掌握循环语句的运行过程。
讲解例子的时候,最好用vb环境来运行调试,新建一个窗体,把代码放到按钮的单击事件中,结合输入输出语句(inputbox和msgbox)来讲解,可以调动学生的一个积极性。
修改for语句为do语句的时候,一定要讲清楚要在loop前加一个语句i=i+1之类的,相当于next i的功能。
一节课下来,时间还是有10分钟多。(共15张PPT)
4.3.3 循环语句
循环语句描述了一种重复计算的过程,由于计算机的计算速度极快,因此,用计算机来处理重复性的计算是十分合适的。
常用的循环语句有如下两种形式:
(1)for语句:通过次数控制循环
(2)do 语句:通过条件控制循环
1.For 语句
For 循环变量 = 初值 To 终值 Step 步长
语句块
Next 循环变量
步长是循环变量的增量,其值可以是正数(递增循环)或负数(递减循环),但不能是0。如果步长为1,则可以连同保留字Step略去不写。
初值、终值、步长都必须是整数。
执行next之后,循环变量的值都会增加一个步长的值。
1+2+3+4…..+n=

s = 0
for i = 1 to 100 (step 1)
s = s+ i
next i
S的值为?
i s
1 1
2 3
3 6
4 10
…… ……

s = 1
for i = 5 to 1 step -1
s = s* i
next i
S的值为?
5*4*3*2*1=
i s
5 5
4 20
3 60
2 120
1 120
0
1+3+5…..99=

s = 0
for i = 1 to 100 step 2
s = s+ i
next i
S的值为?
i s
1 1
3 4
5 9
7 16
…… ……
练习:使用for语句
例:为了使溶液的pH值小于或等于4(设该溶液原来的pH值大于4),就需要向该溶液中加入一滴硫酸,如果溶液的pH值仍大于4,将继续向该溶液中加入一滴硫酸。
不能预先知道循环应该执行的次数,但我们知道什么条件下应该循环。
(1)for语句:通过次数控制循环
(2)do 语句:通过条件控制循环
Do语句:格式
开始
结束
条件表达式为True
Y
N
语句块
Do While 条件表达式
语句块
Loop
Do While 溶液的PH值大于7
向该溶液中加入一滴硫酸
Loop
例:
s = 0
Do While s<5
s=s+2
Loop
S的值为?
开始
结束
条件表达式为True
Y
N
语句块
s
2
4
4.3.4 注释
注释是以(‘)开头的一串文字,可以出现在程序中需要进行说明的位置上。
注释的作用仅仅是为了增加程序的可读性,对程序执行的效果没有任何影响。
Text2.text = str(pi*r*2) ‘求出圆周长
Text3.text = str(pi*r*r) ‘求出圆面积
输入数据的两种方式
1. 利用文本框输入的方式
如:r=val(text1.text)
2. 利用弹出对话框的方式输入
如:R=Inputbox(“输入圆的半径”)
输出数据的两种主要方式
1. 利用改变对象属性的方法
如: Text1.text=str(x*3.1416*r)
label1.caption=“春节快乐”
2. 利用消息对话框的方法
如:Msgbox(“Hello”)
找碴儿
S=0:i=1
Do While s<>13
S=S+i : i=i+1
Loop
在使用Do语句时,必须要注意表达式中的变量值至少有一次结果为假,否则将会出现无限循环的情况。(死循环)
开始
结束
条件表达式为True
Y
N
语句块
s i
1 2
3 3
6 4
10 5
15 6
…… ……
练习:
x=1:y=4
Do While y>4
x=x*y
y=y+1
Loop
x的值是多少
X=1
x=1:y=5
Do While y<7
x=x*y
y=y+1
Loop
x的值是多少
X=30
x y
5 6
30 7
将下面的for语句改写成do语句
设已有100个整数存储到数组d中,求他们的最大值。
K=d(1)
For i=2 to 100
if d(i)>k then k=d(i)
Next i
k = d(1)
i = 2
Do While i <= 100
If d(i) > k Then k = d(i)
Loop
i=i+1
同课章节目录