Presentation is loading. Please wait.

Presentation is loading. Please wait.

广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》

Similar presentations


Presentation on theme: "广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》"— Presentation transcript:

1 广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
初二VB教学研讨 广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》

2 一、问题的提出 在初二VB教学中,有比较多老师在教学中觉得很难处理,主要在于两个方面: 1、学生的学习兴趣问题。
提高学生的学习兴趣至关重要。学生学习的好坏很大程度上取决于学生积极学习时间的多少,我们应该关注怎样最大限度地增加学生积极学习时间。 因此要从学生感兴趣的程序内容开始教学。

3 2、如何把教学中的一些知识点处理好 程序设计的学习内容非常广泛,要学得好是比较难的,关键是如何把一些难懂的知识点让学生理解、掌握。 程序设计难度上要求不高,教参在这方面讲得很清楚,明确要求学生学会读懂简单的程序,让学生初步掌握顺序、条件、循环三种基本程序结构,了解程序设计的基本思想和方法,而不用编写出程序。 下面主要通过一些例子让大家总结出对一些知识点的处理方法,从而进一步提高对VB的认识和教学的灵活性。

4 二、组织好相关的例程,解决学生感觉 难学的知识点
二、组织好相关的例程,解决学生感觉 难学的知识点 1、 VB程序设计环境的熟悉,通过简单而有趣的例子实现。 ① 启动VB,输入程序: 检测所按键盘字符,弹出对应的ASC码值程序: Private Sub Form_KeyPress(KeyAscii As Integer) Print "我知道你按的是:"; Print Chr$(KeyAscii), Print "它在电脑里的值是:"; KeyAscii End Sub

5 ②画圆程序的实现:程序用于画一个这样的圆
Private Sub Command1_Click() R = 2000 For K = 1 To Step 1   X = R * Cos(K * 3.14 / 180)   Y = R * Sin(K * 3.14 / 180) Circle (X, Y), R Next End Sub

6 然后对程序进行修改: (1)将程序中的 R = 2000 改为 R = 1000 再运行;
   再运行; (2)将程序中的For K= 1 To Step 1  改为   For K= 1 To Step 10 (3)研究、理解一下该程序的作用。 学生经过这样的练习,就会觉得:程序很有意思,很容易变化,最主要的是错了的可以改,改了可以再改!对VB的界面也在不知不觉中有点印象了。特别是(1)和(2)的修改,较多学生很快就发现可以任意更改,兴趣很高。如果课堂上经常出现这种状态,就会逐步使学生在这方面的情感、态度发生重大变化。

7 也可使用画点成圆的程序进行: Dim R, X, Y, K As Integer R = 2000
For K = 1 To 360 Step 1 X = R * Sin(K * / 180) Y = R * Cos(K * / 180) PSet (X, Y), 255 Rem 延时 For H = 1 To 50000 H = H Next

8 Y=圆心4000+R*sin(K) (X,Y) K R (5000,4000) X=圆心5000+R*cos(K)

9 ③ shape形状的设置,用于让学生熟悉属性
新建工程 选择工具箱中的Shape 在窗体上拖动鼠标放置一个Shape 设定属性窗口的Shape值为square 重复以上动作选不同形状 设置bordercolor 、 borderstyle、 fillcolor 和 fillstyle属性产生不同效果

10 ④ 分四人一组将上面表格讨论后填好。 如何讨论? 每人将自己平时的处理方法讲出,其他人记录。(五分钟内完成)

11 2、对数据类型的理解: 数据类型对程序设计来说是非常重要,而且越丰富越好!但对我们的学生来说,越简单就越好。所以对数据类型的处理要把它简单化,强调“表示数值就使用integer或single,表示姓名等字符串内容就用string,表示真假就用boolean”,然后在后面的讲课中遇到再重复这些类型的表示,来加强学生的记忆。 ①引入对数据类型的理解可以用表示一个人的资料信息有哪些,哪些用数值表示、哪些用文字(字符串)表示,哪些用“是”、“否”表示来引导学生。 数值:身高、体重…… integer或single 文字:姓名、住址…… string 是否:团员、性别…… boolean

12 ② 判断 X>Y 有多少种可能的结果? 改为 3>5 如何表示这种结果? 引出true 和 false 程序: PRINT 3>5 PRINT 2<5

13 运行该段程序,思考运行结果。区分四种数值类型,分别将B的取值2、10、100和1000。
③可结合变量及后续内容进行讲解。 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。

14 A=2 9 3 A B=6 A=A+1 A=A+B B 3、对变量的理解: 2 6 ②存贮空间的表示: DIM A,B AS INTEGER
指向“张三”,姓名的值是“张三” ① “姓名”的值 指向“李四”,姓名的值是“李四” ②存贮空间的表示: DIM A,B AS INTEGER …… A=2 9 3 2 A B=6 A=A+1 A=A+B 6 B

15 ③ 变量名的确定 使用有相同意思(义)的单词作变量名: NAME、ADDRESS 使用一、两个字母加数字简单表示: A1 、AA 、B2
错误例子: 3F SUB END A-B X/Y

16 4、数算术表达式写成VB表达式 (1)练习题型的确定: ①分式形式 (a*b-c)/(c+d) ②指数形式 X^(1/3)+y^(1/5)
③多层括号的形式 (d/(1+1/a))^2 + (1/(1-b))^2

17 (2)常见错误: 乘号没有写 a*b  ab 除以与整除混淆 / \ 分数没有写成一行 1/3  括号没有全用小括号 [ ( ) ] 括号左右不对称(漏写) (3)处理方法: 将表达式切实地写多两遍,一般均能掌握。

18 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

19 ③不知道何时换行 A=10 : B=5 : C=3 PRINT A, B, C PRINT “A+B=”; PRINT A+B ④少写或多写了 “A= ” “M=”等 PRINT A 时结果写成  A=10 PRINT “B=”;B 时结果写成  5 *⑤tab(n)的使用

20 6、条件语句的使用 ① 强调条件语句的执行过程。 四个单词:IF 如果 THEN就 ELSE否则 用ENDIF结束
结合例子:(课本省去了格式1) 格式1:每天上学,如果,就带雨衣才,上学;如果不下雨呢? IF 下雨 THEN 带雨衣 ENDIF 上学 格式2:上体育课,体育老师宣布,若喜欢打蓝球的就打蓝球,否则去踢足球。 IF 喜欢打蓝球 THEN 打蓝球 ELSE 踢足球 继续上课

21 IF <条件> THEN <语句块> ENDIF …后继语句… IF <条件> THEN
<语句块1> ELSE <语句块2> ENDIF …后继语句…

22 X/2 =X\2 X/2 =INT(X/2) ②以下程序,输入一个整数X,若是偶数,则显示“偶数”两个字,否则显示“奇数”两个字。
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)

23 IF ______________ THEN PRINT “足球” _____________________ ENDIF X=2
③以下程序用于判断:输入1时,显示“蓝球”,输入2时,显示“足球”,否则显示“其他”。请填写完整。 DIM X AS INTEGER X=INPUTBOX(“X的值是:“) IF X=1 THEN PRINT “蓝球” ELSE IF ______________ THEN PRINT “足球” _____________________ ENDIF X=2 PRINT “其他”

24 ④以下程序使用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

25 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

26 FOR—NEXT语句 的执行过程 遇到FOR语句,做三件事情: 初值100赋给循环变量I ,记录终值2000、记录步长值100 TRUE
FALSE 执行循环体中的语句一次 遇到NEXT,做两件事情:循环变量I的的值增加一个步长值I ←I+100,返回判断处 结束循环,执行Next语句的后继语句

27 ③以画同心圆的程序为例,详细分析程序的执行过程来帮助学生掌握:
For I=100 to step 100 R=I Circle(3000,3000),R,RGB(255,60,60) Next I

28 修改画圆程序,使画出彩色渐变的圆(控制X轴方向的圆心及颜色中的红色随着循环变量由变化)。
R=1500 FOR I=5 TO STEP 10 Circle(I*20,3000),R,RGB(I,60,60) NEXT

29 <2>打印五行,每行五个“*”号  <3>打印五行,每第n行打印n个“*”号 
④ 多举例子,回顾前面的知识点,如: <1>打印五个“*”号  <2>打印五行,每行五个“*”号  <3>打印五行,每第n行打印n个“*”号  <4>利用TAB()打印成等腰三角形 FOR K=1 TO 5 PRINT “*” ; NEXT PRINT 解释这个PRINT的作用

30 第十天:X10=1只 第九天:X9/2-1=X10  X9 =2*(X10+1) 第八天:X8 =2*(X9+1) ……
⑤较难的题目: 猴子吃桃问题:猴子摘了一批桃子,第一天,吃了一半,觉得不过瘾,又吃了一只;以后每天也是如此,到第十天一看,只剩下一只桃子。编一程序求出第一天猴子摘了多少只桃子。 第十天:X10=1只    第九天:X9/2-1=X10      X9 =2*(X10+1)    第八天:X8 =2*(X9+1) …… 第I 天:Xi =2*(Xi+1+1)

31 程序: DIM X , I AS INTEGER X=1 FOR I=9 TO 1 STEP -1 X=2*(X+1) NEXT
PRINT “第一天有:”;X;“只”

32 8、对函数的学习 对VB的函数的学习比较难,这部分不是初二学生学习的重点,若有时间,也可让学生进一步掌握。
①让学生重点先掌握几个来逐步熟悉。 ABS() SQR() INT() RND() RGB() ②随机抽号程序。随机产生一个学生的学号,发表意见。 RANDOMIZE A=INT(RND()*50+1) PRINT A

33 从学生熟悉的课本中的画圆程序入手: 只是半径发生随机变化。 ③几个常用函数中以随机函数和取整函数为最难,用以下例子让学生学习:
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 半径随机 只是半径发生随机变化。

34 然后再把圆心也改为随机: 圆心和半径都发生随机变化。 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 圆心和半径都发生随机变化。 圆心随机

35 在不知不觉中学生对随机函数已经使用了多次。
最后把圆的颜色也改为随机: 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 在不知不觉中学生对随机函数已经使用了多次。 颜色随机

36 9、控件的学习,进一步提高学生学习的兴趣 例如:时钟与图像控件这一节:
如果课时允许的话,增加两节有关VB控件的学习,对提高学生学习程序设计的热情很有帮助。 例如:时钟与图像控件这一节: 1、准备五张JPG图片放在D盘指定文件夹PIC,文件名指定改为P1.JPG —— P5.JPG; 2、命令按钮的图形设置: 添加两个按钮设置按钮Font属性设置按钮Style属性设置按钮Backcolor属性设置另一按钮Picture属性选定一个背景图片 3、添加一个图像框(image1)或图片框(picture1);

37 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、选择不同的图片,注意图片(格式)扩展名的不同。

38 这节课虽然有几个知识点学生没有接触过,如trim()等,但学生做起来一点也没有困难,特别是时钟控件,学生更感兴趣。

39 三、其他 1、教学过程可以围绕一条主线进行 对VB这一章的教学上,可以围绕VB中画圆、画线(矩形)、画点这些简单的画图语句,再结合个别数学计算处理的例子进行教学,使内容上有一定的重复,加深学生的熟悉程度。 主要围绕某条主线进行教学的方式,对于其他章节的教学可能更为适用,如“网页制作”等。

40 2、课堂上多提供可递进变化的例程 教学中最有力的模型互动模型,教学本身就是促使学习者参与学习的过程。
递进性练习能提高学生学习的参与性,创设学生参与学习的环境。因此,递进性练习的使用有着非常重要的作用。 另一方面,课堂上要照顾全体学生,因此设计一些简单的可以递进更改的例子给学生进行练习,既可照顾后进学生,也可让学得快的学生有思考的余地。 这样的例子很多。如讲第六节循环结构,都讲到画同心圆的程序:

41 For I=100 to 2000 step 100 R=I Circle(3000,3000),R Next I
练习时就可以把同心圆程序加以变化,来让学生思考和修改:

42 X Y 圆心 修改画圆程序,使用执行结果如下: 提示:画同心圆时,是半径在变化,这里什么在变化? Y轴方向固定(3000)。
500 → 步长 50 R=1500 FOR X=500 TO STEP 50 Circle(X,3000), R NEXT

43 课堂上有些学生做得很快,我就让他们把同心圆改变为画对角线上的圆、颜色渐变的圆等,他们(部分学生)也能做出来。
修改画圆程序,使画出彩色渐变的圆(控制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 渐变颜色

44 这样做练习,学生的注意力都能吸引过来,效果是很好的。但在反馈调查时,有些学生这样说:“老师你在讲的时候,我听得很明白,但到我自己要写程序或修改时,却总觉得不知道怎样做。”
我认为,可能是学生对这方面接触的时间太短而致,不知道大家是否有同感。所以我有意把VB这一章书放到初二的第一个学期学习,到第二学期的时候再作复习,让学生有一个适应的时间。而把第二册的第一章放在第二学期来学习。

45 学生总体上对学习成绩还是比较注重的。课堂上多些提问,然后给学生打个回答问题分,给学生予肯定,我觉得,类似的方法还是很有效的。
3、加强一些常规手段和方法 学生总体上对学习成绩还是比较注重的。课堂上多些提问,然后给学生打个回答问题分,给学生予肯定,我觉得,类似的方法还是很有效的。 如上述一些例子的递进修改,能做出来的学生,我都作个记号,或给个分数,学生也很有成功感。 一些好的传统方法,我们应在课堂教学上多使用。

46 4、VB的内容非常多,哪些内容是要学生掌握的,学完后将书本知识进行归纳总结,让学生对所学VB有一个较为全面的认识。
一、基本数据类型 字符串: 使用双引号括住,注意字符串的长度。空串长度为0。string 数值: (1)整数:integer (2)长整型:long (3)单精度型single (4)双精度型:double (3)、(4) 两种又称为浮点数。 其他:Boolean布尔型(逻辑值) true 或 false (真或假) 常量:分为数值常量、字符串常量(和符号常量)  5、变量 :在程序运行中所代表的值是可变的量,必须有一个名字来代表,称为变量名。 变量名起名的五个约定:P33。 变量的定义说明使用DIM:  DIM 变量名 AS 数据类型

47 二、运算符与表达式 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(提示,标题,默认值,左边界,上边界,帮助文件名,帮助主题)

48 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

49 五、程序的三种基本结构与程序设计的基本思想与步骤 1、顺序、分支(选择)、循环(重复)结构 2、自顶向下与自底向上 3、程序设计的步骤
四、函数 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、算法的理解

50 四、课程与教法讨论与记录 分组讨论并作记录形成文档作为以后的参考。 五、教案展示与评价(略) (钟老师)

51 程序设计本身就如浩瀚的大海,无边无际,再加上是教学,所谓“教无定法”,因人而异,随机而变。因此,把握住要学习的内容,然后根据学生的情况、自己的情况来开展教学才是最实际的。以上一些看法,希望能对大家有一些启发! 谢谢大家! 广州市第一中学 陆桂华 2007年1月

52 Y=圆心Y1+R*sin(q) (X,Y) q R (X1,Y1) X=圆心X1+R*cos(q)

53 (X,Y) R (X1,Y1) X=原点X1+I Y=原点Y1+R*sin(I)

54 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 Next End Sub

55 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 Next End Sub


Download ppt "广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》"

Similar presentations


Ads by Google