VB知识点汇总.docx
- 文档编号:13792976
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:19
- 大小:23.23KB
VB知识点汇总.docx
《VB知识点汇总.docx》由会员分享,可在线阅读,更多相关《VB知识点汇总.docx(19页珍藏版)》请在冰点文库上搜索。
VB知识点汇总
一:
基础知识
对象的有关概念l
1.对象Object:
VB中常用的对象有:
窗体、控件等。
2.对象的三要素
(1)属性Property:
用来描述和反映对象外部特征的参数。
(2)方法Method:
允许其他对象与之交互的方式,表明一个对象所具有的能力。
(3)事件Event:
响应对象的动作称为事件,它发生在用户与应用程序交互时。
如单击控件、鼠标移动、键盘按下等。
事件驱动EventDriven:
VB为窗体和大多数控件都规定了一组事件,当应用程序被启动后,VB随时准备捕获各种事件。
一旦发生了某个事件,VB就会执行与该事件相联系的事件过程;执行完后,VB等待下一个事件的发生。
VB程序的执行步骤如下:
l
(1)启动应用程序,装载和显示窗体;
(2)窗体(或窗体上的控件)等待事件的发生;
(3)事件发生时,执行对应的事件过程;
(4)重复执行步骤
(2)和(3);
(5)直到遇到END结束语句结束程序的运行;或按“结束”强行停止程序的运行。
VB集成开发环境l
1.主窗口
应用程序窗口,由标题栏、菜单栏和工具栏组成。
2.窗体(form)窗口
设计VB程序的界面。
3.代码(code)窗口
编辑窗体、标准模块中的代码。
4.属性(properties)窗口
所有窗体或控件的属性设置。
5.工程资源管理器(projectexpror)窗口
保存一个应用程序所有的文件。
6.工具箱(toolbox)窗口
显示各种控件的制作工具,供用户在窗体上设计
建立VB程序的步骤l
1.建立用户界面的对象,并设置对象属性;
2.对象事件过程及编程;
3.程序运行和调试;
4.保存文件:
窗体frm格式和vb工程vbp格式
VB编码基础l
1.VB代码不区分字母的大小写
系统保留字自动转换每个单词的首字母大写;
用户自定义行以第一次为准。
2.语句书写自由
一行可书写几句语句,之间用冒号分隔;
一句语句可分若干行书写,用续行符_(空格+下画线)连接一行<=255个字符。
3.注释有利于程序的维护和调试
Rem开始或单撇号'
4.保留行号与标号
数据类型l
常量
在程序运行过程中,其值不能被改变的量称为常量。
1.整型常量
(1)整型(Integer):
表示-32768至32767之间的整数
例如:
1011020
(2)长整型(Long):
表示-2,147,483,648至2,147,483,647之间的整数
例如:
长整型常数的书写:
23&
通常我们说的整型常量指的是十进制整数,但VB中可以使用八进制和十六进制形式的整型常数,因此整型常数有如下三种形式:
1)十进制整数。
如125,0,-89。
20
2)八进制整数。
以&或&O(字母O)开头的整数是八进制整数,如&O25表示八进制整数25,即(25)8,等于十进制数21。
3)十六进制。
以&H开头的整数是十六进制整数,如&H25表示十六进制整数25,即(25)16,等于十进制数37。
VB中的颜色数据常常用十六进制整数表示。
2、实数
1)单精度实型(Single):
有效数为7位
表示-3.37E+38至3.37E+38之间的实数
2)双精度实型(Double):
有效数为15位
常量的表示:
1)十进制小数形式。
它是由正负号(+,-)、数字(0~9)和小数点(.)或类型符号(!
、#)组成,即±n.n,±n!
或±n#,其中n是0~9的数字。
例如0.123、.123、123.0、123!
、123#等都是十进制小数形式。
2)指数形式。
±nE±m或±n.nE±m,±nD±m或±n.nD±m
例:
1.25E+3和1.25D+3相当于1250.0或者1.25×103。
3、字符串常量
在VB中字符串常量是用双引号“"”括起的一串字符,例如"ABC","abcdefg","123","0","VB程序设计"等。
说明:
(1)字符串中的字符可以是所有西文字符和汉字、标点符号等;
(2)""表示空字符串,而""表示有一个空格的字符串;
算术运算符>字符运算符>关系运算符>逻辑运算
说明:
1.当一个表达式中出现多种运算符时,首先进行算术运算符,接着处理字符串连接运算符,然后处理比较运算符,最后处理逻辑运算符,在各类运算中再按照相应的优先次序进行。
2.可以用括号改变优先顺序,强令表达式的某些部分优先运行。
括号内的运算总是优先于括号外的运算。
对于多重括号,总是由内到外。
3.表达式的书写中需注意的问题
(1)运算符不能相邻。
例a+-b是错误的。
(2)乘号不能省略。
例x乘以y应写成:
x*y
(3)括号必须成对出现,均使用圆括号。
(4)表达式从左到右在同一基准并排书写,不能出现上下标
(5)要注意各种运算符的优先级别,为保持运算顺序,在写VB表达式时需要适当添加括号(),若用到库函数必须按库函要求书写。
4.不同数据类型的转换
运算结果的数据类型向精度高的数据类型靠。
Integer 1、数学函数 常用的数学函数 Abs(N)Cos(N)Sin(N)Exp(N) Log(N)Sqr(N)Rnd[(N)]Sgn(N) 说明: (1)在三角函数中的自变量是以弧度为单位。 如: sin300sin(3.14159/180*30) (2)Rnd函数返回0~1(包括0和不包括1)之间的双精度随机数。 若要产生1-100的随机整数: Int(Rnd*100)+1 提问: 怎样产生[N,M]区间的随机数? Int((M-N+1)*Rnd+N) 2、转换函数 常用的转换函数见表3-9所示 说明: (1)要区别两个取整函数int()和fix() Fix(N)为截断取整,即去掉小数后的数。 Int(N)不大于N的最大整数。 N>0与int(N)相同,当N<0时,int(N)与fix(N)-1相等。 例如: Fix(9.59)=9,Int(9.59)=9 Fix(-9.59)=-9,Int(-9.59)=-10 思考: 如何实现四舍五入取整? (2)Asc("Abcd")值为: 65(只取首字母的Ascii值) (3)Val("abc123")值为: 0,Val("1.2sa10")值为1.2 注意: Val()函数只将最前面的数字字符转换为数值 常用方法 方法是面向对象的,故使用的形式为: [对象.]方法 Print方法 形式: [对象.]Print[{Spc(n)|Tab(n)}][表达式列表][;|,] 作用: 在对象上输出信息 对象: 窗体、图形框或打印机(Printer),省略对象在窗体上输出。 Spc(n)函数: 插入n个空格,允许重复使用。 Tab(n)函数: 左端开始右移动n列,允许重复使用。 ;(分号): 光标定位上一个显示的字符后。 ,(逗号): 光标定位在下一个打印区的开始位置处。 无;,时换行。 开始打印的位置缺省为打印对象的左上角0,0。 注意: Print方法在Form_Load事件过程中起作用,必须设置窗体的 AutoRedraw为True。 二: 程序结构 •顺序结构 VB程序设计采用结构化程序设计的思想。 在VB中有3种基本的程序流程结构: 顺序结构、选择结构和循环结构。 所有的程序都可以看成是这三种结构或三种结构的组合。 ★顺序结构 所谓顺序结构,就是在程序运行过程中,按照语句的顺序逐条执行。 。 顺序结构中主要的语句是赋值语句、输入输出语句及End语句等。 赋值语句 赋值语句是最基本的语句之一,通过赋值语句,可以在程序中改变变量的值,或改变对象属性值。 其语法格式为: •变量名=表达式 •对象.属性=表达式 例如: A=Text1.Text B=0 Text1.Text=Text1.Text+Command1.Caption A=2=3'结果为false(表达式2=3的值) sb=Round(Sqr(delt)/(2*a),7) •选择结构 1.If…Then语句(单分支结构) If<表达式>Then 语句块 EndIf 或If<表达式>Then<语句> 例: 已知两个数x和y,比较它们的大小,将大的数存在x中 Ifx t=x x=y y=t EndIf 或Ifx x=y: y=t 例题: 求一元二次方程的根。 y=ax^2+bx+c的形式的一元二次方程,输入a,b,c的值,的到方程的根 DimaAsSingle DimbAsSingle DimcAsSingle Dimx1AsSingle Dimx2AsSingle PrivateSubCommand1_Click() a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) Ifb*b-4*a*c>0Then x1=(-b+Sqr(b*b-4*a*c))/(2*a) x2=(-b-Sqr(b*b-4*a*c))/(2*a) Label4.Caption="方程有两实根,分别为: "+Str(x1)+Str(x2) ElseIfb*b-4*a*c=0Then x2=(-b)/(2*a) Label4.Caption="方程有一根,为: "+Str(x2) Else Label4.Caption="方程没有实根" EndIf EndSub •循环结构 循环结构语句 1.For循环 FOR循环一般格式: For循环变量=初值to终值step步长 语句组(也被叫做循环体) next循环变量 例题: 累加器s=1+3+5+7+9+…+19 s=0 fori=1to20step2 s=s+i nexti prints 答案: 100 注意1: 初值和终值即可是整数,也可是小数 s=0 fori=1.2to4.9step0.2 s=s+1 nexti prints 答案: 19 注意2: 步长=1时,可省略不写;步长值不能为0 例题: 累乘器: s=1 fori=1to5 s=s*i nexti prints 答案: 120 注意3: 初值和终值大小 s=1 fori=5to1step2 s=s*i nexti prints 答案: 1(因为循环条件不满足,循环语句没执行) 将步长改为-2,答案为______ 练习: 求1到100的和。 PrivateSubCommand1_Click() DimiAsInteger,sumAsInteger sum=0 Fori=1To100 sum=sum+i Nexti Printsum EndSub 累乘器: 乘=1*2*3*…*100 PrivateSubCommand2_Click() DimiAsInteger,chengAsSingle cheng=1 Fori=1To10 cheng=cheng*i Nexti Printcheng EndSub 累加、累乘 累加、累乘是较常见的数值问题。 累加(累乘)是将多个数 相加(乘),所以一般采用循环结构来实现。 在循环体中应有表 示累加(如sum=sum+x)或累乘(如t=t*i)的赋值语句。 需要注 意的是,累加中用于存放和的变量一般赋初值为0,而累乘中用于 存放积的变量赋初值为1。 例题: 阶乘求1! +2! +…+n! ,n由键盘输入。 【分析】该题先求阶乘,再将阶乘值累加。 循环次数由用户输入确定(即n的值)。 PrivateSubForm_Click() Dimsasdouble,tasdouble,nasinteger s=0 t=1 n=val(InputBox(“请输入n的值”)) Fori=1ton t=t*i’求i! s=s+t Nexti Print“1! +2! +…+”;n;”! =”;s EndSub 4037913 三: 静态数组及声明 数组不是一种数据类型,而是一组相同类型的变量的集合,数组必须先声明后使用。 两类数组: 静态(定长)数组、动态(可变长)数组 1.静态数组及声明 形式: Dim数组名(下标1[,下标2…])[As类型] 声明了数组的名、维数、大小、类型 维数: 几个下标为几维数组,最多60维。 下标: [下界To]上界省略下界为0,必须为常数。 每一维大小: 上界-下界+1 数组大小: 每一维大小的乘积 例: Dimmark(1to100)AsInteger 数组的基本操作 1.用循环数组元素进行赋值 Fori=1To10 iA(i)=0 Nexti 2.用循环输出数组元素 Fori=1To10 printiA(i) NextI 四: 穷举法 穷举法的基本思想是: 对要解决的问题的所有可能情况一一检查,从中找到符合要求的答案。 例题: 百元买百鸡问题。 假定公鸡每只5元,母鸡每只3元,小鸡1元钱3只。 现在有100元钱要求买100只鸡,而且每一种鸡都要有,请编程列出所有可能的购鸡方案。 设公鸡、母鸡、小鸡各为x、y、z只,根据题目要求,列出方程为: x+y+y=100 3x+5y+z/3=100 三个未知数,两个方程,此题有若干个解,采用“穷举法”,把每一种情况都考虑到。 最简单三个未知数利用三重循环来实现。 PrivateSubCommand1_Click() Dimx,y,zAsInteger DimaAsInteger Forx=1To20 Fory=1To33 Forz=1To100 If5*x+3*y+z/3=100Andx+y+z=100Then Print"x=";x; Print"y=";y; Print"z=";z EndIf Nextz Nexty Nextx Print EndSub 运行结果如下: 例题: 求100-999之间的所有“水仙花数”。 “水仙花数”是一个三位数,其各位数字的立方和等于该数本身。 例如: 153=1^3+5^3+3^3,153是一个水仙花数。 【分析】采用穷举法对指定范围内的每一个数进行判断它是否为水仙花数。 判断一个数是否为水仙花数的关键是如何将此数的各位数字分离出来。 如对于数据153,可采用下面的方法分离其各位数字 (1)int(153/100),得到百位数字1。 (2)int((153-1*100)/10),得到十位数字5。 (3)153-1*100-5*10,得到个位数字3。 程序代码如下: PrivateSubForm_Click() Dimi%,a%,b%,c% Fori=100to999 a=i\100 b=(i-a*100)\10 c=i-a*100-b*10 Ifi=a*a*a+b*b*b+c*c*cThenPrinti; Nexti EndSub 运行结果如下: 153370371407 选择结构 1.if…Then语句 语句格式: (1)If<表达式>Then<语句> (2)If<表达式>Then <语句块> EndIf 语句功能: 当<表达式>的值为True或非零时,执行Then 后面的语句(或语句块),否则不做任何操作,实现单分支 选择结构。 。 2.If…Then…Else语句 语句格式: (1)If<表达式>Then<语句1>Else<语句2> (2)If<表达式>Then <语句块1> Else <语句块2> EndIf 语句功能: 当<表达式>的值为True或非零时,执行Then后面的语句(语 句块),否则执行Else后面的语句(或语句块),实现双分支选择结构 例如: 输入一个整数,判断其奇偶性。 程序代码如下: PrivateSubForm_Click() Dimxasinteger x=InputBox(“请输入一个整数”) Ifxmod2=0Then Printx;”是偶数” Else Printx;”是奇数” Endif EndSub 3.If…Then…ElseIf语句 语句格式: If<表达式1>Then <语句块1> ElseIf<表达式2>Then <语句块2> … [Else <语句块n+1>] EndIf 语句功能: 根据不同的表达式值确定执行哪个语句块,实现多分支选择结构。 使用说明: 先计算<表达式1>的值,若为真,则执行<语句块1>,并跳过其他 分支语句执行If语句的后续语句(即EndIf后面的语句);若为假,则计算<表 达式2>的值,依此类推,直到找到一个为真的条件时,才执行相应的语句块,然 后执行EndIf后面的语句。 格式中的Else是可选项,表示若无任何表达式值为真 时,则执行<语句块n+1>; 若无Else选项,且所有条件表达式值都不为真,则不执 行If语句中的任何语句块。 【注意】 当If语句内有多个表达式的值为真时,只执行第一个为 真的表达式后的语句块。 例题: 求一元二次方程的根。 y=ax^2+bx+c的形式的一元二次方程,输入a,b,c的值,的到方程的根 DimaAsSingle DimbAsSingle DimcAsSingle Dimx1AsSingle Dimx2AsSingle PrivateSubCommand1_Click() a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) Ifb*b-4*a*c>0Then x1=(-b+Sqr(b*b-4*a*c))/(2*a) x2=(-b-Sqr(b*b-4*a*c))/(2*a) Label4.Caption="方程有两实根,分别为: "+Str(x1)+Str(x2) ElseIfb*b-4*a*c=0Then x2=(-b)/(2*a) Label4.Caption="方程有一根,为: "+Str(x2) Else Label4.Caption="方程没有实根" EndIf EndSub 三: 算法及程序 穷举法的基本思想是: 对要解决的问题的所有可能情况一一检查,从中找到符合要求的答案。 例题: 百钱买百鸡问题: 我国古代数学家张丘建在《算经》中提出了“百鸡问题”: “鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。 百钱买百鸡,问鸡翁、母、雏各几何? ”每种鸡至少有一只分析】设母鸡、公鸡、小鸡各为x,y,z只, 程序代码如下: PrivateSubCommand1_Click() Dimx,y,zAsInteger DimaAsInteger Forx=1To20 Fory=1To33 Forz=1To100 If5*x+3*y+z/3=100Andx+y+z=100Then Print"x=";x; Print"y=";y; Print"z=";z EndIf Nextz Nexty Nextx Print EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 知识点 汇总
![提示](https://static.bingdoc.com/images/bang_tan.gif)