版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机二级考试指导VB
电话:(651196)QQ:113958033第一讲:VB程序设计初步一、引例 二、VB集成开发环境三、几个重要概念四、建立简单的程序一、例1引入:(1)VB的启动;(2)VB的工作环境;(3)几个重要概念。三、几个概念1.对象对象:客观存在的一个实体。
VB中常用的对象有:窗体、控件等。
2.类
类是创建对象的模板,是对象的集合。3.对象的三要素(1)属性
用来描述和反映对象特征的参数。(属性有属性名和属性值),属性值可通过:属性窗口设置代码设置对象名.属性名=属性值如:Label1.Visible=True
(2)事件对象所能识别和响应的动作称为事件,它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。事件过程:事件触发时所执行的代码
(3)方法对象所能执行的动作,如窗体有Show、Hide方法等。
4.VB程序的执行步骤如下:1)启动应用程序,装载和显示窗体;2)等待事件的触发;3)事件触发时,执行对应的事件过程;4)重复执行步骤(2)和(3);5)直到遇到END结束语句结束程序的运行;或按“结束”强行停止程序的运行。至此可以总结出VB的特点:可视化、面向对象、事件驱动。例1拓展1例1拓展2四、建立简单的应用程序例21.效果:3.分析:(1)布局:一个标签控件、两个命令按钮、一个时钟控件。(2)控制逻辑:单击“开始”按钮,标签移动;单击“停止”按钮,标签静止;
2.引入:建立VB程序的步骤。一、掌握几个操作:
VB工作环境的设置、添加控件、设置属性、添加代码、运行、调试程序、保存文件;二、理解几个概念:对象、属性、事件、方法可视化、面向对象、事件驱动三、识别几个保留字:Form1Label1Command1CaptionVisibleLeftTopFontSizeClick回顾第二讲:窗体和基本控件一、窗体窗体是其它对象的容器,是程序运行时呈现给用户的界面。例31.效果:2.引入:窗体的属性、事件、方法3.分析:界面分析:略代码分析:略4.设计思考题11、窗体的基本属性:属性默认值含义(名称)NameFormN名称,是区分对象的标志,用以引用对象BackColor背景颜色BorderStyle2边框式样CaptionFormN标题ControlBoxTrue是否有控制图标Font字体:字体、字型、字号Height高度Icon控制图标MaxButtonTrue是否有最大化按钮MinButtonTrue是否有最小化按钮Picture图片StartUpPosition3开始位置Width宽度WindowState0状态二、标签标签主要用来在窗体某个固定位置上显示提示信息。例41.效果:2.引入:标签的属性、事件、方法、用途3.分析:(1)界面:略(2)代码:略4.设计:例4思考例4拓展1、标签的主要属性属性默认值含义Alignment0文本对齐方式AutosizeFalse是否自动改变大小Backstyle0是否透明BorderStyle0边框样式CaptionLabelN标题Font字体:字体、字型、字号ForeColor前景颜色Height高度Left左位置Top顶端位置VisibleTrue是否可见Width宽度2.事件3.方法
回顾主要介绍窗体、标签两个对象。重点把握对象的应用、属性、事件和方法1、窗体:
CaptionFont(FontName、FontSizeFontBold、FontItalic)ForeColorAutoRedrawPicture
LoadClickDbclickPrintClsShowHideUnload2、标签:
AlignmentAutoSizeCaptionBorderStyle
FontForeColorLeftTopVisible例61.效果:2.引入:文本框的属性和事件3.分析:(1)界面:略(2)代码:略4.设计:1、文本框的主要属性属性默认值含义Alignment0文本对齐方式BorderStyle0边框样式Font字体:字体、字型、字号ForeColor前景颜色LockedFalse是否可编辑MultilineFalse是否可接受多行文本MaxLength最大字符数Height高度PasswordChar掩码ScrollBars0是否有滚动条(Multiline为T)TextTextN显示的内容Width宽度VisibleTrue是否可见2.常用事件
Change:当改变文本框的Text属性时会引发该事件。
KeyPress(KeyAsciiAsInteger):按下并松开键时触发。可返回一个KeyAscii参数:即所按的键的Ascii值。
KeyAscii为13,回车键;为0禁止键入。
LostFocus:当控件失去焦点时发生。
GotFocus:当控件获得焦点时发生。3.常用方法
[对象.]SetFocus:获得焦点,即插入点光标移到该文本框中。21、命令按钮的主要属性属性默认值含义CaptionCommandN标题EnabledTrue是否有效Font字体:字体、字型、字号Height高度Style0外观Picture显示图形(Style为1)Width宽度VisibleTrue是否可见2、事件:Click3、方法:略五、工程的管理及环境的设置1、工程的组成
工程文件包含了一个应用程序的所有文件的信息:窗体文件(.frm):控件及属性、事件过程和自定义过程; 窗体的二进制数据文件(.frx),自动产生同名.frx文件;标准模块文件(.bas);类模块的文件(.cls); 资源文件(.res); ActiveX控件的文件(.ocx).2、创建、打开和保存工程3、添加、删除和保存文件(1)窗体名和窗体文件名概念窗体名:窗体的Name属性,在代码中用来引用该窗体,同一工程不能有相同的窗体名;窗体文件名:窗体存放在磁盘上的文件名,该文件包含了该窗体的所有控件属性和代码,同一文件夹不能有相同的文件名。(2)在工程中添加现存的窗体时,只是对该窗体文件的引用纳入工程。因此,如果更改窗体并保存它,会影响包含此窗体文件的任何工程。(3)在工程中删除窗体时,仅将此窗体从工程里删除掉,但是窗体文件仍存在于磁盘上。但是,如果在VB之外删除一个窗体文件,VB不能更新此工程文件,当打开此工程时,将显示一个文件丢失的错误信息。(4)对窗体文件改名方法“另存为…Form”实现文件的复制。窗体文件名窗体名七、程序调试1、错误类型
(1)编辑错误在编辑代码时,VB会对键入的代码直接进行语法检查。当发现代码存在打字错误,遗漏关键字或标点符等语法错误,VB在Form窗口中弹出一个子窗口,提示出错信息,出错的那一行变成红色。这时,用户必须单击“确定”按钮,关闭出错提示窗,然后对出错行进行修改。(2)编译错误
编译错误指按了“启动”按钮,VB开始运行程序前,先编译执行的程序段时,产生的错误。此类错误由于用户未定义变量、遗漏关键字等原因产生。这时,VisualBasic也弹出一个子窗口,提示出错信息,出错的那一行被高亮度显示。2、调试错误
(1)VB的三种模式
设计模式[设计]
进行程序的界面设计、属性设置、代码编写等。运行模式[运行]
执行“运行/启动”命令,可以查看程序代码,但不能修改。中断模式[中断]
当在运行模式,按了“中断”命令或当程序出现运行时错误时进入中断模式。可以查看代码、修改代码、检查数据。
(2)调试窗口
有三个调试窗口,它们是:“立即”窗口、“监视”窗口、和“本地”窗口。可单击视图菜单中的对应命令打开这些窗口。(3)设置断点和逐语句跟踪
断点是告诉VB挂起程序执行的一个标记,当程序执行到断点处即暂停程序的运行,进入中断模式。设置或删除断点的步骤:中断模式下,直接查看某个变量的值,只要把鼠标指向所关心的变量处,稍停一下,就在鼠标下方显示该变量的值。断点标记当前行八、常见错误1.使用中文标点符号
系统产生“无效字符”,以红色显示。2.字母和数字形状相似
小写字母“l”和数字“1”形式相同、小写字母“o”与数字“0”。3.对象名称(Name)写错4.对象的属性名、方法名、标准函数名写错
尽量使用自动列出成员功能。正确的系统按规定的大小写表示。5.无意形成控件数组
建立控件时小心使用“复制”、“粘贴”按钮。6.打开工程时找不到对应的文件
保存文件时先保存窗体.frm文件、再保存.vbp文件,注意路径。总结:(1)通过示例介绍VB的工作环境(IDE);(2)理解对象、类、属性、事件、方法、面向对象、事件驱动概念。(3)介绍窗体和标签、文本框、命令按钮的属性、事件、方法。(4)掌握简单VB程序的设计、文件的保存、打开。练习一、填空题(1)VB是一种面向()的可视化程序设计语言,采取了()的编程机制。(2)VB的对象主要有()、()两大类。(3)在VB中,用来描述一个对象外部特征的量称为对象的()。(4)在VB中,设置或修改一个对象的属性的方法有两种,它们是()、()。(5)在VB中每个对象响应事件的响应方式是通过执行一个与之对应的()来实现的。(6)在VB中事件过程的名字由()、()所构成。(7)若将窗体Form1隐藏起来,可调用其方法()来实现,(8)若用户单击了窗体Form1,此时被执行的事件过程的名字应为()(9)在VB集成开发环境中,运行应用程序的方法有两种,分别是()、()二、选择题(1)下列()项不能作为安装VB6.0所需的操作平台。A.DOS7.0B.Windows95C.Windows98D.WindowsNT(2)用代码改变Form1的“Caption”属性设置为“时钟”,正确的书写形式是()A.Form1.Caption“时钟”B.Form1.Caption=“时钟”C.Caption=“时钟”D.Form1.Caption(“时钟”)(3)VB的标准控件位于IDE中的()项窗口内。A.工具栏B.工具箱C.对象浏览器D.窗体设计器(4)保存文件时,窗体文件的扩展名是(),整个工程文件的扩展名是()A.*.PRGB.*.FrmC.*.VBPD.*.EXE(5)以下叙述中正确的是()A.窗体的Name属性指定窗体的名称,用来标识一个窗体。B.窗体的Name属性值是显示在标题栏中的文本。C.可以在运行期间改变对象的Name属性的值。D.对象的Name属性值可以为空。三、应用题设计如图所示界面,单击“确定”按钮,显示第二个标签,其标题是文本框中的姓名和“编写的程序”。第四讲VB语言基础
一、数据 二、运算符和表达式 三、常用函数 四、编码规则一、数据
能被计算机接收和处理的符号的集合。是程序的重要组成部分,也是程序处理的对象和处理的结果。
1、常见数据类型数据类型关键字类型符举例整型Integer%123,-123,123%长整型Long&123&,-1234567&单精度Single!1230.0!,1.23E3双精度Double#1230.0#,1.230D3字符型String$"VB","程序设计","12"逻辑型Boolean无True,False日期型Date无#03/02/2010#,#10:30#变体型Variant无2、变量与常量s=3.14*r^2变量:在程序运行中用来存储数据,且其值可以改变的量,其实质是在内存中开辟的临时存储单元。常量:在程序运行中其值不改变的量。a.
以字母或汉字开头,其后可跟汉字、字母、数字或下划线,长度不超过255个字符;
b.
不要使用VB中的关键字;
c.
变量名中的字母不区分大小写;(1)变量名的命名规则(2)变量声明:变量的名称、类型a、用Dim显式声明变量
形式:Dim变量名[AS类型]Dim变量名[类型符]
例DimiAsinteger,sAssingle
等价于Dimi%,s!注意:变量类型的确定,需一一说明变量的赋值变量名=表达式将值赋给已定义类型的变量时,系统会将数值转化成变量的类型未经定义类型的变量的数据类型是由赋给它的值的类型决定b、隐式声明
未进行上述的声明而直接使用,其类型为Variant类型。建议不使用。注意:
在通用声明处加OptionExplicit
语句可强制显式声明变量。(3)常量
a、直接常量
100,100%,True,#3:45#
,"
vb程序设计""""vb""程序设计"&o23,&H3Db、用户声明常量形式:
Const常量名[AS类型]=表达式省略[AS类型],常量的类型由表达式值的类型决定。 为使与变量名区分,一般常量名使用大写字母。例ConstMAX=100c、系统提供的常量系统定义常量位于对象库中,可通过“对象浏览器”查看。例:VbRed、VbCrLf等练习1、说明下列哪些量是VB合法的直接常量,分别属于什么类型。(1)100.0
(2)%100(3)1E1
(4)123D3
(5)123,46(6)"ASDF"
(7)‘1234’(8)#2000/10/7#(9)100#
(10)&O100(11)True(12)T(13)-123!(14)"VB"$(15)"姓名"(16)姓名
2、下列符号中,哪些是VB合法的变量名(1)A123
(2)A12_3
(3)123A(4)A123(5)Integer(6)XYZ
(7)False(8)SIN(X)(9)SINX
(10)变量名(11)abcd
3二、运算符和表达式1、算术运算符及算术表达式运算符含义优先级实例结果^乘方12^24-取负2-5-5*乘32*510/自然除39/33\整除410\33Mod取模510Mod31+加6-5+1+51-减65-502、字符串运算符及字符串表达式
&、+
字符串连接
"123"+"456"结果"123456""123"&"456"结果"123456"要注意两者的区别
"abcdef"&12345'结果为"abcdef12345""abcdef"+12345'出错“+”不仅是字符串运算符,还是算术运算符
"123"&456'结果为"123456""123"+456'结果为579"123"+True'结果为122True转换为数值-1,False转换为数值03、关系运算符及关系表达式
将两个操作数进行大小比较,结果为逻辑量。
西文字符串比较,实际是按字符的ASCII码值从左到右一一比较,先大为大。例:"ABCDE">"ABRA" 结果为False4、逻辑运算符及逻辑表达式
将操作数进行逻辑运算,结果是逻辑值:
表达式书写举例(1+xy)6(1+x*y)^6单位招聘员工:年龄小于40岁,法律专业,学历专科或本科
年龄<40And专业="法律"And(学历="专科"Or
学历="本科")
x是不大于100的正数
X>=0andx<=100
正确的VB表达式:3〈=xAndx<=7
错误的VB表达式:3<=x<=7或
3<=xOrx<=7
回顾1、识别下列保留字
IntegerLongSingleDoubleString
OptionExplicit
Const2、运算符和表达式注意把握运算规则、运算优先级别、数据类型转换?"123">"3"
?"123">3
?"12345"<>"12345"&"ABC"x为偶数:
VB函数是:能完成一定运算并将结果(有且只有一个)返回的程序,有标准函数和用户自定义函数两种。函数的构成:函数名(参数表)如:Abs(-3)Time()注意:函数不是语句,大部分函数调用的时候必须作为语句的组成部分,而不能直接出现。如:a=Abs(-3)?Abs(-3)Abs(-3)
第五讲VB语言基础
三、常用内部函数×√√1、数学函数函数名举例结果Abs(N)Abs(-4)4Int(N)Int(3.56)Int(-3.56)3-4Fix(N)Fix(3.56)Fix(-3.56)3-3Round(N1,[N2])Round(3.56)Round(-3.56)Round(3.56,1)4-43.6Sqr(N)Sqr(9)3Exp(N)Exp(1)2.71828Log(N)Log(2.71)1Sgn(N)Sgn(-3)-1Sin(N)Sin(90*3.14/180)1Rnd(N)Rnd()[0,1)注意:(1)Int(),Fix(),Round()的区别(2)Sin(N)、Cos(N)、Tan(N)、Atn(N)三角函数中参数N为弧度表示(3)Rnd()产生的是0到1(包括0,但不包括1)之间的随机小数.
若要每次运行程序产生的随机数序列不同,应在调用Rnd函数的语句前,执行Randomize语句若要产生[A,B]之间的随机数可用Int(Rnd()*(B-A+1))+A如:Int(Rnd()*31)+20产生的是[20,50]举例2、字符串函数函数名举例结果Left(C,N)Left("ABCD",2)“AB”Right(C,N)Right("ABCD”,2)“CD”Mid(C,N1,N2)Mid(“ABCD",2,2)Mid("ABCD",2)“BC”“BCD”Len(C)Len("ABCD")Len("学习VB")44Ltrim(C)Len(Ltrim("VB"))2Rtrim(C)Len(Rtrim("VB"))2Trim(C)Len(TRIM("VB"))2Space(N)Len(Space(3))3String(N,C)String(2,"VB")“VV”4注意:(1)Len(),返回的是字符串的字数,Lenb()返回的是字符串的字节数(2)Mid(C,N1,N2)省略N2表示从第N1位开始取,取到最后3、日期和时间函数函数名举例结果Date()Date()2010-03-31Time()Time()02:30:15Now()Now()2010-03-3102:30:15Year(D)Year(Date())20104、转换函数函数名举例结果Val(C)Val("23")+2Val("23A2")+2"23A2"+2Val("A23")+2"A23"+2Val("2e1")+22525出错2出错22Str(N)Str(123)+"123"Str(123)+123Str(123)&123“123123”246“123123”Asc(C)Asc("A")65Chr(N)Chr(65)AUcase(C)Ucase("Abcd")“ABCD”Lcase(C)Lcase("Abcd")“abcd”举例注意:(1)Val()只能将数字字符转换成数值,遇到非数字字符停止转换(2)Str()转换成字符时,最前面留有一位符号位5、测试函数函数名举例结果TypeName(X)TypeName(10)TypeName(10.0)IntegerDoubleIsNumeric(X)IsNumeric("23")TrueIsDate(X)IsDate("02/02/2004")True6、格式输出函数函数名举例结果FormatPrintFormat(12345.9,"0000.0")PrintFormat(123.78,"0000.0")PrintFormat(123.9,"0000.00")12345.90123.80123.90PrintFormat(123.9,"####.#")PrintFormat(123.78,"####.#")123.9123.8PrintFormat(Date,"yy-mm-dd")04-03-02PrintFormat("ABCD","<")abcd7、Shell函数Shell("Calc.exe")调用计算器Shell("Notepad.exe")调用记事本例题四、编码规则语句的一般形式:
<语句定义符>[语句体]
DimaAsIntegera=3Printa2.VB代码不区分字母的大小写
系统保留字自动转换每个单词的首字母为大写;用户自定义以第一次为准。3.语句书写自由
一行可书写几句语句,之间用冒号分隔;如:A=1:B=2:C=3一条语句可分若干行书写,用续行符(空格_)连接,一行<=255个字符。4.注释有利于程序的维护和调试
Rem开始或单撇号
'练习1、把下列算术表达式写成VB表达式(1)|x+y|+Z5(2)(1+xy)6(3)(4)(5)x1-|a|+ln10+sin(x2+2л)/cos(57o)2、根据条件写一个VB表达式(1)产生一个“C”~“L”范围内的大写字符(2)产生一个100~200之间的正整数(3)已知直角坐标系中任意一个点(X,Y),表示在第一或第三象限内(4)表示X是5或7的倍数(5)将任意一个两位数X的个位数与十位数对换(6)将变量X四舍五入到小数点后第2位小数(7)表示字符变量C是字母字符(8)取字符变量S中,第5个字符起的6个字符(9)表示10≤X<20的关系表达式(10)X,Y中有一个小于Z(11)X,Y都大于Z3、写出下列表达式的值(1)123+23MOD10\7+ASC("A")(2)100+"100"&100(3)INT(68.555*100+0.5)/100(4)已知A$="87654321",则表达式Val(Left$(A$,4)+Mid$(A$,4,2))的值(5)DateAdd("M",1,#1/30/2004#)(6)Len("VB程序设计")4、填空题(1)在VB中,1234,123456&,1.234E+5,1.234D+4四个常量分别表示()、()、()、()类型。(2)已知A=3.5,B=5.0,C=2.5,D=True则表达式A>=0ANDA+C>B+3OrNotD的值是()(3)Int(-3.5),Int(3.5),Fix(-3.5),Fix(3.5),Round(-3.5),Round(3.5)的值分别是:(4)表达式Ucase(Mid("ABcdefgh",3,4))的值是()(5)在VB中字符常量应使用()将其括起来,日期/时间型常量应使用()符号将其括起来(6)VB6.0中,字符是采用()编码形式来表达和存储的,在该编码方案下,一个汉字或一个英文字符均被看做()个字符,每个字符用()个字节编码(7)函数Int(10*Rnd)的结果是在()范围内的整数第六讲基本控制结构
语言元素组成语句,语句组成程序,语句需要按一定的顺序执行才能实现既定功能,而语句的执行顺序由控制结构控制,任何问题的解决只需三种结构:顺序结构分支结构(选择结构)循环结构(重复结构)理解控制结构是如何控制程序的执行顺序的,从而掌握如何根据功能需要用控制结构来组织所需要的语句。一、顺序结构顺序结构即按语句的先后,顺序执行程序。顺序结构没控制语句,主要涉及赋值语句、Print方法、InputBox和MsgBox函数(MsgBox过程)。例8输入半径,求圆面积和球体积。1、InputBox函数(输入数据)
注意:函数返回的数据是字符类型。函数形式:变量=InputBox(提示[,标题][,默认值])r=InputBox("请输入半径r:","输入数据",4)2、MsgBox函数和MsgBox过程(输出提示信息)函数形式:变量=MsgBox(提示[,图标+按钮][,标题])a=MsgBox("密码错误!",16+1,"登录")过程形式:CallMsgBox(提示[,图标+按钮][,标题])MsgBox提示[,图标+按钮][,标题]图标类型参数值红色Stop标志16询问信息?32警告信息!48信息I64按钮参数值012345按下的按钮返回值1234567
思考
例8输入半径,求圆面积和球体积。二、分支结构简单分支双分支多分支如果五一节放假,那么,我就去旅游。如果五一节放假,那么我就去旅游,否则,我到机房做vb作业。如果假期是清明节:去濮塘;五一节:去采石;
端午节:回老家;暑假:去上海。
1.If…Then语句(单分支结构)
If<表达式>Then
语句块
EndIf
或
If<表达式>Then<语句>
问题:输入两个数存放在x和y中,比较大小,保证大数放在x中,小的数放在Y中。2.If…Then…Else语句(双分支结构)
If<表达式>Then<语句块1>Else<语句块2>EndIf
If<表达式>Then<语句1>Else<语句2>
问题:判断一个整数的奇偶性注意:单分支和双分支如果写成块形式,If和EndIf必须成对出现,写成行形式就不能带EndIf例10帐号和密码(1)运行效果(2)目的:分支结构及分支结构的嵌套(3)分析:布局:两个标签,两个文本框和两个命令按钮控制逻辑:略(4)设计:5思考2:判断一个数是整数还是小数,如果是整数再判断其奇偶性。思考1:设计最多可输入3次校验密码的程序。1、赋值语句2、InputBox()3、MsgBox()、MsgBox过程4、Print方法注意:标点符号(分号、逗号)和Tab()、Space()函数的使用5、分支结构单分支、双分支、分支嵌套回顾Y=0.8x(x<=100元)0.7x(x<=200元)0.5x(x<=300元)0.3x(x>300元)第七讲基本控制结构问题:书店优惠售书(x:合计金额,y:实付金额)Ifx<=100Theny=0.8*x
Else
Ifx<=200Theny=0.7*x
Else
Ifx<=300Theny=0.5*x
Elsey=0.3*x
EndIfEndIfEndIf3.多分支语句(情况语句)
SelectCase
变量
Case
表达式列表1
语句块1
Case
表达式列表2
语句块2 … [CaseElse
语句块n+1]EndSelectCase后的表达式有四种形式:表达式一个数:2枚举表达式(用逗号分隔)多个数:2,4,6,8
表达式1To表达式2 一个范围60To100Is关系运算符表达式一个范围Is<60例11
书店优惠售书思考:设计一个计程车收费程序思考:
书店优惠售书Ifx<=100Theny=0.8*xIfx<=200Theny=0.7*xIfx<=300Theny=0.5*xIfx>300Theny=0.3*x
思考:设计一个测属相程序
1.For循环语句(用于循环次数已知)形式
For循环变量=初值to终值[Step步长]
循环体
Next循环变量思考:输入10个数,输出偶数之和。思考:输入10个数,输出偶数平均值。三、循环结构步长为正1时,步长可省略;若终值<初值,步长应为负值;问题:输入10个数,输出累加之和。例12求S=1+2+3+……+100
思考:求S=1+3+5+……+99
思考:求s=1+1/2+1/3+……+1/102.Do…Loop循环语句(用于控制循环次数未知)形式2:
Do
循环体
LoopWhile|Until<条件>注意:形式1是先判断后执行,形式2是先执行后判断,所以形式1中,循环体有可能1次都不执行,形式2中,循环体至少执行一次。While方式是条件成立的时候执行循环体,until是条件不成立的时候执行循环体。S=1+22+32+……+102,计算并输出s例13S=1+22+32+……+n2,问n为多少时,s的值大于100000?形式1:
DoWhile|Until<条件>
循环体
Loop要注意:
出了循环,循环控制变量值的问题。例程序段:
Fori=2To13Step3
Printi,
Nexti
Print"I=";i
25811I=14在循环体内对循环控制变量可多次引用;但最好不要对其赋值,否则影响原来的循环控制规律。例.
循环控制变量的改变对循环的影响。PrivateSubCommand1_Click()j=0Fori=1To10Step2
i=i+3j=j+1Print"第";j;"次循环i=";iNextiPrint"退出循环后i=";iEndSub第1次循环i=4第2次循环i=9退出循环后i=113.循环的嵌套
一个循环体内又包含了一个完整的循环结构称为循环的嵌套.对于循环的嵌套,要注意以下事项:内循环变量与外循环变量不能同名;外循环必须完全包含内循环,不能交叉;不能从循环体外转向循环体内,反之则可以。
Forii=1To10Forjj=1To20… Nextii Nextjj
Forii=1To10Forii=1To20… Nextii Nextii
Forii=1To10Forjj=1To20… NextjjNextii
Forii=1To10…NextiiForii=1To10…Nextii√√××四、其他辅助控制语句
1.GoTo语句形式:GoTo{标号|行号}
作用:无条件地转移到标号或行号指定的那行语句.
标号是一个字符序列,行号是一个数字序列.2.Exit语句多种形式:ExitFor、ExitDo、ExitSub、ExitFunction等。作用:退出某种控制结构的执行。
3.End语句多种形式:End、EndIf、EndSelect、EndWith、EndType、 EndSub、EndFunction、
作用:End结束一个程序的运行;其余表示某个结构的结束,与对应的结构语句配对出现。上讲回顾1、多分支语句SelectCase变量
Case情形1
语句块1Case情形2
语句块2……Case情形N
语句块N【CaseElse
语句块N+1】EndSelect2、计数循环For循环变量=初值To终值【Step步长】
循环体Next循环变量3、DoLoop循环Dowhile<条件式>
循环体LoopCase后的表达式有四种形式:表达式一个数:2枚举表达式(用逗号分隔)多个数:2,4,6,8
表达式1To表达式2 一个范围60To100Is关系运算符表达式一个范围Is<60第八讲程序举例(一)1、累加、连乘、连接
(1)S=1/2+1/4+1/6+1/8+1/10+…+1/20,求s并输出s的值。思考:s=1×2×3×……×10
求n!,n为[1~10]之间的随机整数。(2)已知一数列的前两项均为1,从第3项开始,每一项的值为其前面两项之和,求数列的前20项的和。思考:(3)S=1!+2!+3!+....+10!
思考:s=1+(1+2)+(1+2+3)+…+(1+2+…+10)思考:s=1-1/3!+1/5!-1/7!+…直到某一项的绝对值小于10^(-5)7考虑另一种算法(4)s=2+22+222+2222+22222+222222思考:S=a+aa+aaa+……+aaaa(N个a)其中a是一个[1,9]的随机整数,N是一个[5,10]的随机整数。思考:S=1+12+123+1234+12345+123456(5)将一字符串逆序输出2、数的判定(1)判断任给一大于3的整数是否是素数。(2)输出3~100之间的素数。
(3)输出100~999之间的水仙花数。思考:判断一整数是不是完数。
思考:输出1000之内的同构数。
第九讲:程序举例
(二)3.穷举法
“穷举法”也称为“枚举法”或“试凑法”,即将可能出现的各种情况一一测试,判断是否满足条件,一般采用循环来实现。8例题:陈婷的QQ密码是一个5位数。但因为有一段比较长的日子没上了,陈婷把这个密码给忘了。不过陈婷的生日是8月1日,她妈妈的生日是9月1日,她特别喜欢把同时是8l和9l的倍数用作密码。陈婷还记得这个密码的中间一位(百位数)是l。你能设计一个程序帮她找回这个密码吗?思考:百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在有100元钱要求买100只鸡(每种鸡至少一只),编程列出所有可能的购鸡方案。思考:鸡兔合笼共20只,脚46只问鸡几只?兔几只?思考:找出100之内的自然数对。(两数的和是某个自然数的平方,两数的差也是某数的平方)思考:找出1000-9999之间的玫瑰花数。4.递推法
“递推法”又称为“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。
例猴子吃桃子。小猴在某天摘桃若干个,当天吃掉一半多一个;第二天吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天要吃时只剩下一个,问小猴共摘下了多少个桃子?思考:瓜农有西瓜1020个,每天能卖掉前一天剩下的总数的一半还多两个,问多少天能卖完。思考:一球从10米高空落下,每次弹起高度为落下高度的40%,求第8次落下,小球经历的路程。5.最小、最大值在若干个数中求最大值,一般先假设一个较小的数为最大值的初值,(若无法估计较小的值,则取第一个数为最大值的初值)然后将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较。例随机产生10个100~200之间的数,求最大值。PrivateSubCommand1_Click()
Fori=1To10x=Printx;
Ifx>MaxThenEndIfNextiPrintPrint"最大值=";MaxEndSubMax=100Max=xInt(Rnd*101+100)思考题:输入十个数,输出其中的最大数和最小数思考题:7个裁判给选手打分,要求去掉最高分和最低分,求平均分。6、计数(1)统计1~100之间能被3整除和能被7整除的数各有多少个?(2)统计字符串中字母“A”出现的次数(不区分大小写)思考题:统计字符串中大写字母、小写字母、数字字符的个数分别是多少?7、简单图形输出思考题:求M,N的最大公约数和最小公倍数4.6常见错误1.不循环或死循环的问题
主要是循环条件、循环初值、循环终值、循环步长的设置有问题。2.循环结构中缺少配对的结束语句
For少配对的Next3.循环嵌套时,内外循环交叉4.累加、连乘时,存放累加、连乘结果的变量赋初值问题
(1)一重循环在一重循环中,存放累加、连乘结果的变量初值设置应在循环语句前。(2)多重循环这要视具体问题分别对待。第十讲数组
一、数组的引入 二、程序举例(三)
一、数组的引入1.引例例求10个学生某门课的平均成绩,统计高于平均分的人数。按以前简单变量的使用和循环结构相结合,求平均成绩程序段如下:
S=0Fori=1To10X=Val(InputBox("输入第"&i&"位学生的成绩"))
S=S+XNexti
aver=S/10请注意:x里存放的是最后一个同学的成绩!能不能给多个变量起相同的名字呢?2、什么是数组
数组是有相同名称的一组变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,这个编号叫下标。
4、数组的声明3、数组的分类
根据下标个数:1维,2维……
根据元素个数是否确定:静态数组,动态数组动态数组Dim数组名()as类型ReDim数组名(变量)静态数组格式:Dim数组名(常量)[as类型]如:Dimx(10)AsIntegerDimx(1to10)AsIntegerDimx(3,5)5、数组赋值数组赋值是指给数组元素赋值,不能给数组名赋值。
说明:(1)系统默认下标下限是0,也可以在通用声明段用optionbase1限制下标从1开始(2)和数组有关的函数:Array(),LBound(),UBound()67875678955674694566解决刚才的问题:第一步:定义一个数组:Dimx(1TO10)x(1)x(2)x(3)x(4)x(5)x(6)x(7)x(8)x(9)x(10)第二步:输入成绩存入数组,求总分,平均分S=0Fori=1to10x(i)=val(InputBox("请输入第"&I&"个同学成绩"))S=S+x(i)NextIaver=S/10第三步:求高于平均分的人数n=0Fori=1to10Ifx(i)>averthenn=n+1EndifNextiprint"成绩高于平均分的人有"&n&"个"Form1二、程序举例(三)例
输出一个5×5矩阵,该矩阵主对角线元素为1,其余元素为0。思考:输出一个5×5矩阵,该矩阵主对角线和辅对角线元素为1,其余元素为0。例:随机产生10个1~100之间的整数,并按从小到大顺序输出。例:求n×n矩阵每行元素之和(n值由键盘输入,矩阵元素随机产生,范围在[20-50]之间。思考:输入10个同学3门课成绩,求每个同学的总分,并按总分从高到低顺序输出。(每个同学名次)思考:输出一个5×5矩阵的每行最大元素,及最大元素的下标值。该矩阵每个元素为[1,100]之间的随机整数。第十一讲过程
一、通用过程 二、参数传递 三、变量作用范围引例求某个程序段在一个程序中需要反复执行但不好用循环控制,通常是把该程序段独立出来,需要的时候调用它,这个有独立功能的程序段叫通用过程。85C=8!/(3!*5!)一、通用过程通用过程和事件过程合称为过程事件过程是当事件触发时系统自动执行,而通用过程被其它程序调用时才执行。所以编写通用过程的程序,既要编写该过程,又要编写调用该过程的主程序(一般是事件过程,该事件过程包含调用通用过程的语句)。通用过程又可根据其是否返回值分为Sub过程和Function过程。Sub过程不返回值,而Function过程返回一个值。Sub过程和Function过程除了在返回值上有区别外,在结构和调用方式上也有点区别。Sub过程的结构
PrivateSub过程名(参数)……EndSubFunction过程的结构
PrivateFunction
过程名(参数)……EndFunction形式参数Sub过程的调用:
形式1:call过程名(参数)
形式2:过程名参数Function过程的调用形式:过程名(参数)注意:Sub过程第一种调用形式,参数必须括起来,第二种形式,参数不能括起来。Function过程通过过程名返回值,所以在过程体中要有给过程名赋值的语句。实在参数思考题:编写一个求三角形面积的Function过程Form1过程1过程2Sub过程和Function过程的创建均可采用两种方法:1、直接在代码窗口输入过程的结构语句和过程语句2、通过“工具”菜单中的添加“过程”二、参数传递在调用过程时,一般主调过程和被调过程之间有数据传递,即将主调过程的实参传递给被调的过程的形参。有两种方式:传址和传值。两种方式的区分标志是形参前的关键字,形参前加“ByVal”是传值,否则是传址,默认是传址。传址方式数据传递可以是双向的传值方式数据传递是单向的DimXAsInteger,YAsIntegerPrivateSubCommand1_Click()
X=4Y=4CallS2(X,Y)PrintX+YEndSubPrivateSubForm_Click()x=4Printx;Calltest(x)PrintxEndSubPublicSubtest(iAsInteger)i=i+1EndSubSubS2(AAsInteger,ByValBAsInteger)A=2*AB=B+2EndSub关键字名称定义位置作用域Public全局变量通用声明段整个应用程序Private窗体/模块级变量通用声明段本窗体/本模块Dim窗体/模块级变量通用声明段本窗体/本模块过程级变量过程本过程Static过程级静态变量过程本过程三、变量作用范围VB中变量的作用范围因定义的关键字的不同和位置的不同而不同例在窗体上添加一个命令按钮Command1和3个名称分别为Label1,Label2和Label3的标签,程序运行后,连续3次单击命令按钮后,3个标签中显示的内容分别是_______。PrivatexAsIntegerPrivateSubCommand1_Click()StaticyAsIntegerDimzAsIntegern=10z=n+zy=y+zx=x+zLabel1.Caption=xLabel2.Caption=yLabel3.Caption=zEndSub上讲回顾
VB过程分为事件过程和通用过程,通用过程又分为Sub过程和Function过程。Sub过程不返回值,Function过程返回一个值。Sub过程的调用有两种方式:
Call过程名(参数)
过程名参数Function过程只有一种调用方式:过程名(参数)
变量的作用范围因定义变量的关键字不同和定义语句的位置不同而不同。调用过程时,存在数据传递,有传值和传址两种形式。第十二讲常用控件一、单选按钮、复选框和框架二、列表框和组合框三、滚动条四、时钟一、单选按钮、复选框和框架单选按钮和复选按钮用于提供选项供用户选择,往往根据功能对其分组,分组用框架。例:在文本框中输入字符,通过单选按纽和复选框设置字体、字型1、运行效果:2、引入:单选按钮、复选框和框架3、分析:4、设计:1、重要属性属性默认值含义Caption单选Option1显示的文本(在字母的前面加&可创建热键)复选Check1Font字体:字体、字型、字号VisibleTrue是否可见Value单选False是否选中(True:选中;False:没选)复选0是否选中(0:没选中;1:选中;2:灰色)Style0(Standard)样式2、重要事件:Click单击事件3、重要方法:SetFocus获得焦点同一容器的一组单选按钮,某个时刻只能有一个被选中,默认第一个被选中。思考题1:思考题2思考题3二、组合框和列表框组合框和列表框也是提供选项供用户选择,主要用于选项比较多的情形。例:在组合框中选择字体,在列表框中选择字号、字型,示例中的文字按选择的字体、字号和字型设置其格式。1、运行效果:2、引入:组合框和列表框3、分析:布局分析:控制逻辑分析:4、设计:1、组合框和列表框的主要属性属性组合框列表框Text被选中项目的项目值被选中项目的项目值(属性窗口无)List(i)第I+1项的项目值(从0开始)第I+1项的项目值(从0开始)ListCount项目数项目数ListIndex当前选中项目的索引号当前选中项目的索引号(未选中为-1)Style0---下拉式组合框1---简单组合框2---下拉式列表框0---标准显示1---复选显示MultiSelect无0---不允许复选1---简单复选2---扩展复选Selectd(i)无选择状态Sorted是否自动按字母顺序排序是否自动按字母顺序排序组合框和列表框的Style属性的对比项目值:第一项:Combo1.List(0)
List1.List(0)最后一项:Combo1.List(Combo1.ListCount-1)
List1.List(List1.ListCount-1)第I项:Combo1.List(I-1)
List1.List(I-1)选中的项:Combo1.Text或
Combo1.List(Combo1.ListIndex)
List1.Text或
List1.List(List1.ListIndex)2、主要方法(1)AddItem"项目",[N]添加项目,须指明待添加的项目,N指示加入的位置,省略即加在最后。(2)ReMoveItemN删除项目,须指明代删项目的索引号。(3)Clear项目的清除3、主要事件:Click、Chang(组合框特有)例:在组合框中单击项目可将项目移动到列表框中;在列表框中双击项目可将项目移动到组合框中。1、运行效果:2、引入:组合框和列表框的方法3、分析:布局分析:控制逻辑分析:在组合框中选择项目用单击事件,删除项目须用RemoveItem方法,在列表框中添加项目用AddItem方法。4、设计:拓展练习思考题设计一程序如下图:1、窗体装载,在组合框中添加100个3~100之间的随机整数;2、单击“判定”可判断选中的数是不是素数,结果用Picture1显示,如果是,添加到List1中,不是则添加到List2中,并统计素数和非素数的个数,判断完后将组合框中该项目删除。上讲回顾单选按钮、复选框的Value属性值说明其状态:单选按钮的Value值是逻辑型数据,值为True表示选中,值为False表示未选中,复选框的Value值是数值型数据,值为1表示选中值,为0表示未选中。两个控件的主要事件是单击事件,主要方法是获得焦点方法(SetFocus)组合框和列表框的主要属性第i项的项目值Combo1.List(i-1)List1.List(i-1)被选中项目的索引号Combo1.ListIndexList1.ListIndex被选中项目的项目值Combo1.Text或Combo1.List(Combo1.ListIndex)List1.Text或List1.List(list1.ListIndex)组合框和列表框的主要是事件组合框:Click()、Chang()、KeyPress()列表框:Click()组合框和列表框的主要方法添加项目:AddItem项目值删除项目:ReMoveItem索引号三、滚动条
VB中,滚动条往往用来获取数据,有两种:水平滚动条和垂直滚动条。例:用滚动条设置文本框中文本的字号1、运行效果:2、引入:滚动条3、分析:布局分析控制逻辑4、设计第十三讲常用控件属性默认值含义Max
可变最大值Min可变最小值LargeChange
单击滚动条空白区域时改变的值SmallChange
单击两端按钮时改变的值Value当前值1、滚动条的主要属性:2、滚动条的主要事件:Change事件、Scroll事件Change事件是在值改变后触发(单击两端按钮、单击滚动区域、拖动划块结束),Scroll事件是在值改变过程中触发(拖动划块)思考题:用滚动条改变图片的高度和宽度四、时钟控件时钟控件往往用来实现每隔一个时间间隔重复做某件事。例:设计可显示系统时间的时钟。1、运行效果:2、引出:时钟控件3、分析:布局分析:控制逻辑分析:运行窗体,不显示系统时间,时钟控件为无效,单击“开始”显示系统时间,应该在单击事件中添加使时钟控件有效的代码;单击“停止”系统时间不再改变,应该在单击事件中添加使时钟控件无效的代码。4、设计:1、时钟控件的主要属性:
Enabled:是否有效;
Interval:间隔的时间(毫秒为单位)2、主要事件:Timer事件思考题1:设计一倒计时时钟思考题2:设计一个弹球程序五、图形有关的控件和图形有关的标准控件有4个:1、图片框控件(Picture)2、图像框控件(Image)3、画线控件(Line)4、形状控件(Shape)图片框控件和图像框控件相似,都可以装入图形文件,可以在设计时通过属性窗口设置Picture属性,也可以在运行程序时借助LoadPicture函数设置。两者的不同之处:
(1)图像框比图片框占用内存少;(2)图片框是容器控件;(3)图片框有Print方法可输出文本;(4)图片框有AutoSize属性,可调整其大小适应图片大小;而图像框有Stretch属性,可调整图形的大小适应图像框的大小。画线控件和形状控件可进行简单绘图。这两个控件不支持任何事件,只用于表面修饰。画线控件Line用来画一条直线,其BorderWidth、BorderStyle,分别决定所画线段的宽度和形状,另外两个坐标点(X1,Y1)和(X2,Y2)确定了两个端点的位置。形状控件Shape控件可以用来画几何形状,可以通
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年北京中考最近试卷及答案
- 2026年新疆银隆农业国际合作股份有限公司校园招聘笔试备考试题及答案解析
- 2026年温州平阳县专职社区工作者招聘47人考试参考题库及答案解析
- 2026上半年浙江省省属事业单位招聘664人-统考考试参考题库及答案解析
- 2025-2026学年人教版七年级历史下册中国古代史知识检测卷(含答案)
- 【期末高二下】浙江省金华十校2019-2020学年高二下学期期末调研考试英语试题(原卷版)
- 2026广西北海市第十三中学教师招聘1人考试参考试题及答案解析
- 2025-2026学年人教版七年级化学上册物质构成单元测试卷(含答案)
- 智能精准研修模式在艺术教育中的应用研究-基于大数据分析教学研究课题报告
- 2025-2026学年人教版七年级地理上册《我们的地球》单元测试卷(含答案)
- 2026大模型Seedance 2.0技术突破与核心应用场景-厦门大学
- 成人阻塞性睡眠呼吸暂停诊治指南(2025年)解读课件
- 2026重庆万州区人民法院公开招聘书记员3人考试参考试题及答案解析
- 2026年常州机电职业技术学院单招职业倾向性测试题库带答案详解(突破训练)
- 华为公司内部审计制度
- 春季除四害防病知识科普
- 道路绿化移植工程施工方案
- 2025年第4季度铁路工程建设主要材料价格信息
- 2026年家电以旧换新项目评估报告
- 2026年粤港澳大湾区建筑市场发展新机遇
- 中央2025年公安部部分直属事业单位招聘84人笔试历年参考题库附带答案详解
评论
0/150
提交评论