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