(共56张PPT)
初二VB教学研讨
广州市教育局教学研究室编写的
初中《信息技术》第二册第二章
《程序设计初步》
一、问题的提出
提高学生的学习兴趣至关重要。学生学习的好坏很大程度上取决于学生积极学习时间的多少,我们应该关注怎样最大限度地增加学生积极学习时间。
因此要从学生感兴趣的程序内容开始教学。
在初二VB教学中,有比较多老师在教学中觉得很难处理,主要在于两个方面:
1、学生的学习兴趣问题。
程序设计的学习内容非常广泛,要学得好是比较难的,关键是如何把一些难懂的知识点让学生理解、掌握。
程序设计难度上要求不高,教参在这方面讲得很清楚,明确要求学生学会读懂简单的程序,让学生初步掌握顺序、条件、循环三种基本程序结构,了解程序设计的基本思想和方法,而不用编写出程序。
下面主要通过一些例子让大家总结出对一些知识点的处理方法,从而进一步提高对VB的认识和教学的灵活性。
2、如何把教学中的一些知识点处理好
二、组织好相关的例程,解决学生感觉
难学的知识点
1、 VB程序设计环境的熟悉,通过简单而有趣的例子实现。
Private Sub Form_KeyPress(KeyAscii As Integer)
Print "我知道你按的是:";
Print Chr$(KeyAscii),
Print "它在电脑里的值是:"; KeyAscii
End Sub
① 启动VB,输入程序:
检测所按键盘字符,弹出对应的ASC码值程序:
Private Sub Command1_Click()
R = 2000
For K = 1 To 360 Step 1
X = 5000 + R * Cos(K * 3.14 / 180)
Y = 4000 + R * Sin(K * 3.14 / 180)
Circle (X, Y), R
Next
End Sub
②画圆程序的实现:程序用于画一个这样的圆
然后对程序进行修改:
(1)将程序中的 R = 2000
改为 R = 1000
再运行;
(2)将程序中的For K= 1 To 360 Step 1
改为 For K= 1 To 360 Step 10
再运行;
(3)研究、理解一下该程序的作用。
学生经过这样的练习,就会觉得:程序很有意思,很容易变化,最主要的是错了的可以改,改了可以再改!对VB的界面也在不知不觉中有点印象了。特别是(1)和(2)的修改,较多学生很快就发现可以任意更改,兴趣很高。如果课堂上经常出现这种状态,就会逐步使学生在这方面的情感、态度发生重大变化。
Dim R, X, Y, K As Integer
R = 2000
For K = 1 To 360 Step 1
X = 5000 + R * Sin(K * 3.1415926 / 180)
Y = 4000 + R * Cos(K * 3.1415926 / 180)
PSet (X, Y), 255
Rem 延时
For H = 1 To 50000
H = H + 1 - 1
Next
Next
也可使用画点成圆的程序进行:
(X,Y)
R
X=圆心5000+R*cos(K)
Y=圆心4000+R*sin(K)
K
(5000,4000)
③ shape形状的设置,用于让学生熟悉属性
新建工程
选择工具箱中的Shape
在窗体上拖动鼠标放置一个Shape
设定属性窗口的Shape值为square
重复以上动作选不同形状
设置bordercolor 、 borderstyle、
fillcolor 和 fillstyle属性产生不同效果
④ 分四人一组将上面表格讨论后填好。
如何讨论?
每人将自己平时的处理方法讲出,其他人记录。(五分钟内完成)
数据类型对程序设计来说是非常重要,而且越丰富越好!但对我们的学生来说,越简单就越好。所以对数据类型的处理要把它简单化,强调“表示数值就使用integer或single,表示姓名等字符串内容就用string,表示真假就用boolean”,然后在后面的讲课中遇到再重复这些类型的表示,来加强学生的记忆。
①引入对数据类型的理解可以用表示一个人的资料信息有哪些,哪些用数值表示、哪些用文字(字符串)表示,哪些用“是”、“否”表示来引导学生。
数值:身高、体重…… integer或single
文字:姓名、住址…… string
是否:团员、性别…… boolean
2、对数据类型的理解:
程序: PRINT 3>5
PRINT 2<5
② 判断 X>Y 有多少种可能的结果?
改为 3>5
如何表示这种结果?
引出true 和 false
Dim a, b, c As Integer
Rem Dim c As Single
a = 5
b = 10
c = a ^ b
Print c
运行该段程序,思考运行结果。区分四种数值类型,分别将B的取值2、10、100和1000。
③可结合变量及后续内容进行讲解。
3、对变量的理解:
① “姓名”的值
指向“张三”,姓名的值是“张三”
指向“李四”,姓名的值是“李四”
②存贮空间的表示:
2
6
A
B
A=2
A=A+1
B=6
A=A+B
……
DIM A,B AS INTEGER
3
9
③ 变量名的确定
使用有相同意思(义)的单词作变量名:
NAME、ADDRESS
使用一、两个字母加数字简单表示:
A1 、AA 、B2
错误例子:
3F SUB END A-B X/Y
4、数算术表达式写成VB表达式
①分式形式
②指数形式
③多层括号的形式
(1)练习题型的确定:
(a*b-c)/(c+d)
X^(1/3)+y^(1/5)
(d/(1+1/a))^2 + (1/(1-b))^2
乘号没有写 a*b ab
除以与整除混淆 / \
分数没有写成一行 1/3
括号没有全用小括号 [ ( ) ]
括号左右不对称(漏写)
(2)常见错误:
(3)处理方法:
将表达式切实地写多两遍,一般均能掌握。
5、输出语句的错误情况分析:
②写结果时分不清“分区”格式与“紧凑”格式的表示
①写结果时多写逗号:
A=10 : B=5 : C=3
PRINT A, B, C 10 , 5 , 3
A=10 : B=5 : C=3
PRINT A, B, C
PRINT C; B;A
A=10 : B=5 : C=3
PRINT A, B, C
PRINT “A+B=”;
PRINT A+B
④少写或多写了 “A= ” “M=”等
③不知道何时换行
*⑤tab(n)的使用
PRINT A 时结果写成 A=10
PRINT “B=”;B 时结果写成 5
6、条件语句的使用
① 强调条件语句的执行过程。
四个单词:IF 如果 THEN就 ELSE否则 用ENDIF结束
结合例子:(课本省去了格式1)
格式1:每天上学,如果,就带雨衣才,上学;如果不下雨呢?
IF 下雨 THEN
带雨衣
ENDIF
上学
格式2:上体育课,体育老师宣布,若喜欢打蓝球的就打蓝球,否则去踢足球。
IF 喜欢打蓝球 THEN
打蓝球
ELSE
踢足球
ENDIF
继续上课
IF语句的格式2 :
IF <条件> THEN
<语句块1>
ELSE
<语句块2>
ENDIF
…后继语句…
IF语句的格式1 :
IF <条件> THEN
<语句块>
ENDIF
…后继语句…
DIM X AS INTEGER
X=INPUTBOX(“X的值是:“)
IF X MOD 2=0 THEN
PRINT X;“是偶数”
ELSE
PRINT X;“是奇数”
ENDIF
X/2 =X\2
X/2 =INT(X/2)
②以下程序,输入一个整数X,若是偶数,则显示“偶数”两个字,否则显示“奇数”两个字。
DIM X AS INTEGER
X=INPUTBOX(“X的值是:“)
IF X=1 THEN
PRINT “蓝球”
ELSE
IF ______________ THEN
PRINT “足球”
ELSE
_____________________
ENDIF
ENDIF
PRINT “其他”
X=2
③以下程序用于判断:输入1时,显示“蓝球”,输入2时,显示“足球”,否则显示“其他”。请填写完整。
④以下程序使用inputbox()输入一个数,若该数小于100,则画一个红色圆,否则画一蓝色的圆。
DIM R AS SINGLE
R=INPUTBOX(“R的值是:“)
IF R<100 THEN
CIRCLE(4000,4000),2000, RGB(255,0,0)
ELSE
CIRCLE(8000,4000),2000, RGB(0,0,255)
ENDIF
7、循环语句的解决
① 强调理解其执行过程。
Dim X, Y, S As Integer
Y = 0
S = 0
For X = 1 To 20 Step 4
Y = Y + 1
S = S + X
Next
Print "X="; X
Print "次数="; Y
Print "和="; S
学习循环语句的关键在于理解语句的执行过程,简单说就是它控制电脑做了什么事情!
② 强调循环变量的作用和自动增加步长
透彻理解右边这个程序的运行过程!“退出循环时循环变量的值、循环了多少次,累加得到的和是多少?”都有了。
FOR—NEXT语句 的执行过程
遇到FOR语句,做三件事情:
初值100赋给循环变量I ,记录终值2000、记录步长值100
判断:循环变量I的值否超过终值
I >2000
执行循环体中的语句一次
遇到NEXT,做两件事情:循环变量I的的值增加一个步长值I ←I+100,返回判断处
结束循环,执行Next语句的后继语句
TRUE
FALSE
③以画同心圆的程序为例,详细分析程序的执行过程来帮助学生掌握:
For I=100 to 2000 step 100
R=I
Circle(3000,3000),R,RGB(255,60,60)
Next I
R=1500
FOR I=5 TO 255 STEP 10
Circle(I*20,3000),R,RGB(I,60,60)
NEXT
修改画圆程序,使画出彩色渐变的圆(控制X轴方向的圆心及颜色中的红色随着循环变量由变化)。
<1>打印五个“*”号
<2>打印五行,每行五个“*”号
<3>打印五行,每第n行打印n个“*”号
<4>利用TAB()打印成等腰三角形
FOR K=1 TO 5
PRINT “*” ;
NEXT
PRINT
④ 多举例子,回顾前面的知识点,如:
解释这个PRINT的作用
第十天:X10=1只
第九天:X9/2-1=X10
X9 =2*(X10+1)
第八天:X8 =2*(X9+1)
……
第I 天:Xi =2*(Xi+1+1)
……
⑤较难的题目:
猴子吃桃问题:猴子摘了一批桃子,第一天,吃了一半,觉得不过瘾,又吃了一只;以后每天也是如此,到第十天一看,只剩下一只桃子。编一程序求出第一天猴子摘了多少只桃子。
DIM X , I AS INTEGER
X=1
FOR I=9 TO 1 STEP -1
X=2*(X+1)
NEXT
PRINT “第一天有:”;X;“只”
程序:
对VB的函数的学习比较难,这部分不是初二学生学习的重点,若有时间,也可让学生进一步掌握。
8、对函数的学习
①让学生重点先掌握几个来逐步熟悉。
ABS() SQR() INT()
RND() RGB()
②随机抽号程序。随机产生一个学生的学号,发表意见。
RANDOMIZE
A=INT(RND()*50+1)
PRINT A
Private Sub Command1_Click()
Dim X, Y, R, N1, N2, N3 As Integer
X = 5000
Y = 4000
R = Int(Rnd() * 3000) + 200
Circle (X, Y), R
End Sub
从学生熟悉的课本中的画圆程序入手:
半径随机
只是半径发生随机变化。
③几个常用函数中以随机函数和取整函数为最难,用以下例子让学生学习:
Private Sub Command1_Click()
Dim X, Y, R, N1, N2, N3 As Integer
X = Int(Rnd() * 8000)
Y = Int(Rnd() * 7000)
R = Int(Rnd() * 3000) + 200
Circle (X, Y), R
End Sub
然后再把圆心也改为随机:
圆心随机
圆心和半径都发生随机变化。
Private Sub Command1_Click()
Dim X, Y, R, N1, N2, N3 As Integer
X = Int(Rnd() * 8000)
Y = Int(Rnd() * 7000)
R = Int(Rnd() * 3000) + 200
N1 = Int(Rnd() * 256)
N2 = Int(Rnd() * 256)
N3 = Int(Rnd() * 256)
Circle (X, Y), R, RGB(N1, N2, N3)
End Sub
最后把圆的颜色也改为随机:
在不知不觉中学生对随机函数已经使用了多次。
颜色随机
9、控件的学习,进一步提高学生学习的兴趣
如果课时允许的话,增加两节有关VB控件的学习,对提高学生学习程序设计的热情很有帮助。
例如:时钟与图像控件这一节:
1、准备五张JPG图片放在D盘指定文件夹PIC,文件名指定改为P1.JPG —— P5.JPG;
2、命令按钮的图形设置:
添加两个按钮 设置按钮Font属性 设置按钮Style属性 设置按钮Backcolor属性 设置另一按钮Picture属性 选定一个背景图片
3、添加一个图像框(image1)或图片框(picture1);
4、双击命令按钮1添加程序:
(1)在第一行前加全局变量说明:public m
(2)按钮程序:每单击一次换一张图片,程序为:
m = m + 1
If m > 5 Then m = 1
pn = “D:\PIC\P" + Trim(Str(m)) + ".JPG"
Rem Form1.Picture1.Picture = LoadPicture(pn)
Form1.Image1.Picture = LoadPicture(pn)
5、运行程序,多次单击按钮。
6、添加时钟控件,设置interval属性值为1000 双击时钟控件添加以上程序;
7、试运行;
8、解释与更改interval属性,再运行。
9、选择不同的图片,注意图片(格式)扩展名的不同。
这节课虽然有几个知识点学生没有接触过,如trim()等,但学生做起来一点也没有困难,特别是时钟控件,学生更感兴趣。
对VB这一章的教学上,可以围绕VB中画圆、画线(矩形)、画点这些简单的画图语句,再结合个别数学计算处理的例子进行教学,使内容上有一定的重复,加深学生的熟悉程度。
主要围绕某条主线进行教学的方式,对于其他章节的教学可能更为适用,如“网页制作”等。
三、其他
1、教学过程可以围绕一条主线进行
2、课堂上多提供可递进变化的例程
另一方面,课堂上要照顾全体学生,因此设计一些简单的可以递进更改的例子给学生进行练习,既可照顾后进学生,也可让学得快的学生有思考的余地。
这样的例子很多。如讲第六节循环结构,都讲到画同心圆的程序:
教学中最有力的模型互动模型,教学本身就是促使学习者参与学习的过程。
递进性练习能提高学生学习的参与性,创设学生参与学习的环境。因此,递进性练习的使用有着非常重要的作用。
练习时就可以把同心圆程序加以变化,来让学生思考和修改:
For I=100 to 2000 step 100
R=I
Circle(3000,3000),R
Next I
R=1500
FOR X=500 TO 2000 STEP 50
Circle(X,3000), R
NEXT
修改画圆程序,使用执行结果如下:
提示:画同心圆时,是半径在变化,这里什么在变化?
X轴方向的值在变;
500 → 2000 步长 50
Y轴方向固定(3000)。
X
Y
圆心
课堂上有些学生做得很快,我就让他们把同心圆改变为画对角线上的圆、颜色渐变的圆等,他们(部分学生)也能做出来。
修改画圆程序,使画出彩色渐变的圆(控制X轴方向的圆心及颜色中的红色(或其他颜色)随着循环变量而变化)。
渐变颜色
Dim X, Y, R As Integer
R = 1500
For X = 2000 To 9000 Step 100
Circle (X, 3000), R, RGB(X / 30, 60, 60)
Next
这样做练习,学生的注意力都能吸引过来,效果是很好的。但在反馈调查时,有些学生这样说:“老师你在讲的时候,我听得很明白,但到我自己要写程序或修改时,却总觉得不知道怎样做。”
我认为,可能是学生对这方面接触的时间太短而致,不知道大家是否有同感。所以我有意把VB这一章书放到初二的第一个学期学习,到第二学期的时候再作复习,让学生有一个适应的时间。而把第二册的第一章放在第二学期来学习。
3、加强一些常规手段和方法
学生总体上对学习成绩还是比较注重的。课堂上多些提问,然后给学生打个回答问题分,给学生予肯定,我觉得,类似的方法还是很有效的。
如上述一些例子的递进修改,能做出来的学生,我都作个记号,或给个分数,学生也很有成功感。
一些好的传统方法,我们应在课堂教学上多使用。
4、VB的内容非常多,哪些内容是要学生掌握的,学完后将书本知识进行归纳总结,让学生对所学VB有一个较为全面的认识。
一、基本数据类型
字符串: 使用双引号括住,注意字符串的长度。空串长度为0。string
数值:
(1)整数:integer (2)长整型:long
(3)单精度型single (4)双精度型:double
(3)、(4) 两种又称为浮点数。
其他:Boolean布尔型(逻辑值) true 或 false (真或假)
常量:分为数值常量、字符串常量(和符号常量)
5、变量 :在程序运行中所代表的值是可变的量,必须有一个名字来代表,称为变量名。
变量名起名的五个约定:P33。
变量的定义说明使用DIM: DIM 变量名 AS 数据类型
二、运算符与表达式
1、算术运算:+-*/整除\ 指数:^ X^Y 取模(取余) X MOD Y
2、字符串连接运算 +
3、关系运算: = <> 或 >< < > <= >=
4、逻辑运算: not and or结果为FALSE,否则为TRUE。
5、这几种运算的优先次序:
算术运算→ 关系(比较)运算→逻辑运算
三、语句 同一行有多个语句用冒号分隔“:”
1、赋值语句: 变量名=表达式
2、变量的定义说明使用DIM: DIM 变量名 AS 数据类型
3、结束语句:END
4、输入(函数)语句: INPUTBOX()
input “提示”,变量1,变量2,变量2.……
变量名=INPUTBOX(“提示”)
变量名=INPUTBOX(提示,标题,默认值,左边界,上边界,帮助文件名,帮助主题)
5、输出语句:PRINT
PRINT 表达式,[;][表达式][,|;]
使用 ;分隔表示紧凑显示,使用 ,分隔表示分区显示,一区占14个英文字符位
与之使用的函数:
TAB(N)以该行第一个位置开始计,光标移N个位。
SPC(N)跳过N个空格。 SPACE(N)返回N个空格。
6、画圆命令 CIRCLE(X , Y),R,C
7、信息提示:MSGBOX(“提示内容”,类别选项,标题,帮助文件名,帮助主题)
8、注释: REM注释的内容
9、条件语句: 允许嵌套
IF 〈条件〉THEN
〈成立时执行的部分〉
[ ELSE
〈 不成立时执行的部分〉]
ENDIF
重点:一定要十分清楚条件语句的执行过程!!!
10、FOR循环:
FOR 循环变量=初值 TO 终值 [ STEP 步长值 ]
[ 循环体 ]
[ EXIT FOR ]
NEXT [ 循环变量 ]
重点:一定要十分清楚循环语句的执行过程!!!
11、DO 循环语句
DO WHILE 条件
重复执行的部分
[ EXIT DO ]
LOOP
四、函数 N表示数值表达式,C表示字符串
1、数学函数:
SQR(N)平方根
INT(N)取不大于N的最大整数
Abs(N)求绝对值
sin(N)求正弦函数值(角度数要转换为弧度数)
cos(N)求余弦函数值(角度数要转换为弧度数)
2、字符串处理函数:
3、类型转换函数
VAL(C)将字符串左边的数字转换为数值
CHR(C)取得字符串中第一个字符的ASCII码值
4、其他函数
RND() 随机产生0至1之间的随机数(重置随机数RANDOMIZE )
RGB(R,G,B) 得到一个表示颜色值的数,RGB值为红、绿、蓝分量,
可取值0至255。
五、程序的三种基本结构与程序设计的基本思想与步骤
1、顺序、分支(选择)、循环(重复)结构
2、自顶向下与自底向上
3、程序设计的步骤
4、算法的理解
五、教案展示与评价(略)
(钟老师)
四、课程与教法讨论与记录
分组讨论并作记录形成文档作为以后的参考。
程序设计本身就如浩瀚的大海,无边无际,再加上是教学,所谓“教无定法”,因人而异,随机而变。因此,把握住要学习的内容,然后根据学生的情况、自己的情况来开展教学才是最实际的。以上一些看法,希望能对大家有一些启发!
谢谢大家!
广州市第一中学
陆桂华
2007年1月
(X,Y)
R
X=圆心X1+R*cos(q)
Y=圆心Y1+R*sin(q)
q
(X1,Y1)
(X,Y)
R
X=原点X1+I
Y=原点Y1+R*sin(I)
(X1,Y1)
Private Sub Command1_Click()
Dim R, X, Y, X1, Y1, K As Integer
R = 2000
X1 = 5000: Y1 = 4000: PSet (X1, Y1)
Line (100, Y1)-(9000, Y1): Line (X1, 100)-(X1, 8000)
For K = 1 To 360
X = X1 + R * Cos(K * 3.14 / 180)
Y = Y1 + R * Sin(K * 3.14 / 180)
PSet (X, Y)
Rem 延时
For H = 1 To 50000
H = H + 1 - 1
Next
Next
End Sub
Private Sub Command1_Click()
Dim R, X, Y, X1, Y1, K As Integer
R = 2000
X1 = 1000: Y1 = 4000: PSet (X1, Y1)
Line (100, Y1)-(9000, Y1): Line (X1, 100)-(X1, 8000)
For K = 1 To 360 Step 1
X = X1 + K * 20
Y = Y1 + R * Sin(K * 3.14 / 180)
PSet (X, Y), 255
Rem 延时
For H = 1 To 50000
H = H + 1 - 1
Next
Next
End Sub