正文

 VB基础之一 基本概念和函数, 突破,需要的是基础2005-10-03 09:42:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/iamben250/5616.html

分享到:

一.常用术语:

工程(Project): 是指用于创建一个应用程序的文件的集合。
对象(Object): 可控制的某个东西,VB中主要有两类对象:窗体和控件。
窗体(Form): 应用程序的用户界面,即windows。
控件(Control): 指的是各种按钮、标签、文本框等。
属性(Property):是指对象的特征,如大小、标题或颜色。
事件(Event):对象被激活时所发生的动作,如控件被点击,窗体被加载.卸载等
事件的调用形式:Private Sub对象名_事件名
方法 (Method):控制对象动作行为的方式,如加载窗体后显示,卸载后从内存中清除
方法的调用形式:对象名.方法名
代码 '工程窗体中的数据,如窗体中被激活的控件对象所运行的数据
过程 '指数据运行的步骤和经过
变量 '过程中的未知数的代号
常量 '过程中已知数的实际值
声明 '指定参与运算的数据的形式

形参:声明Sub 和Function过程参数表中变量的类型和形态以及在过程中的角色
实参:调用Sub 和Function过程时,传送给相应过程的变量名、数组名、常数或
表达式,形参表和实参表中对应的变量名可以不必相同,但位置必须对应起来
形参与实参的关系:形参如同公式中的符号,实参就是符号具体的值

二.VB程序的设计步骤:====================================

1、新建工程,出现默认窗口;
2、添加窗体和控件;
3、分别设置窗体和控件的属性;
4、为对象编写事件过程;
5、保存工作(可随时);
6、运行和调试工程(多次、反复);
7、编译工程,生成可执行文件。
三.常用语句:---------------------------------------------

1、简单分支--------------------------------------------
A) if 条件表达式 then 单语句 '如果条件成立就执行单语句
cool.gif If 条件表达式 then '如果条件不成立就跳到END结束IF语句
语句块 '条件成立时执行语句块
End if '闪人88

2、选择分支 ---------
A) 简单的选择分支语句:
If 条件表达式 then '条件成立执行语句1后跳到END IF结束
语句块1
else '条件不成立执行语句2跳到END IF结束
语句块2
End if

cool.gif 多重选择分支语句:
If 条件1 then '如果条件1成立执行语句块1跳到END IF结束
语句块1
[elseif 条件2 ] '如果条件1不成立判断条件2,如果不成立跳到END IF结束
语句2 '条件2成立时执行语句2跳到END IF结束
End if '闪人88

3、多重分支语句 -------------------------
Select case 测试表达式1 '计算出测试1的值
case 表达式值1 '计算出值1与测试1的值比较,如果匹配执行语句块1跳到End Select
语句块1
[case 表达式值2 '如果值1不等于测试1的值计算值2与测试1的值比较
语句块2 '如果值2与测试1的值匹配执行语句2继续执行下一句
。。。 '这里有N条分支,正要急着去泡妞没空写出来,慢慢体会吧!
case else '如果以上表达式的值都不与测试值匹配执行下一句语句块跳到End Select
语句块]
End select '打完收工88

4、循环控制
A)For next 循环 ----------------------------------------------
For 变量=开始值 to 结束值 [步长] '设置初值和终值,步长值默认为1
[语句块1]
[exit for ] '无条件跳出循环体结束FOR
[语句块2]
next [变量] '如果变量+步长值<=终值跳到FOR重新执行,否则结束循环

B)While Wend循环 -----------------------------
while 条件表达式 '如果表达式成立重复执行语句块
[语句块]
wend '如果表达式不成立结束while语句


5、do loop 循环 --------------------------------------------------------
A)do '如果(until 表达式)成立返回或设置一个值为True,重复执行DO...LOOP语句
[语句块1]
[exit do]
[语句块2]
loop{while |until}条件表达式

B)do {while |until}条件表达式
[语句块1]
[exit do] '无条件跳到LOOP之后的语句执行
[语句块2]
loop
当条件表达式的值为True,或直到条件变成true时,重复执行一个语句块
-----------------------------数值数据类型---------------------

1、Byte(Byt) 字节型 占1字节 0-255 可表示无符号整数
2、Interger(Int) 整型% 占2字节 -32768—32767
3、Long(Lng) 长整型& 占4字节 -2,147,483,648 到 2,147,483,647
4、Single(Sng) 单精度浮点数! 占4字节
5、Double(Dbl) 双精度浮点数# 占8字节
6、Currency(Cur) 货币型@ 占8字节
-----------------------------------------------------
逻辑型(Bln) Boolean 占2字节 True<>0 或 False=0
日期型(Dtm) Date 占8字节 100 年1月 1日 到 9999 年 12 月 31 日
对象型(Obj) Object 占4字节 Dim objfrm as object,set object=form1
用户自定义型 Type
变长字符型$(Str) String 占10字节加字符串长度 0 到大约 20 亿
定长字符型$(Str) String dim A as *7 '定长7位(不足用空格补) 1 到大约 65,400
变体数字型(Vnt) Variant 占16个字节 任何数字值,最大可达 Double 的范围
变体字符型(Vnt) Variant 占22个字节加字符串长度 与变长 String 有相同的范围


-----------------------------常量和变量 ----------------------

1、常量 :
A 数值常量 15,19.66
B 字符串常量 “小学生”,“FGHY”,“67”
C 布尔常量 false ,true
D 日期常量 # 11/22/1999#
E 符号常量 Const pi=3.1415 ,S=pi*R*R

2.常量声明:
A) 直接常量 八进制&O A=&O123 十六进制&H A=&H123
cool.gif 符号常量 Const 符号常量名 [As 类型] = 表达式
Const PI=3.14159 '声明了常量PI,代表3.14159,单精度型
Const MAX As Integer=&O144 '声明了常量MAX,代表八进制数144,整型
Const COUNT#=45.67 '声明了常量COUNT,代表45.67,双精度型
C) 系统常量 Form1.WindowsState=vbMaximized '表示将窗口极大化

3、变量:
A)变量的定义 : |dim|static|public 变量名 as 变量类型
局部变量:dim 全局变量:public 静态变量:static (程序执行完毕后系统不会释放其值)
cool.gif变量的作用域 :过程级(过程内部):Dim
模块级: (模块或窗口内部使用局部变量Private);(供所有过程使用全局变量Public)

4.变量的声明 :
显式声明 Dim 变量名 [As 类型] Dim A% ,B As Int,C As integer
隐式声明 不用声明默认为变体型直接使用,不过容易会出现未知的错误
-----------------------------运算符----------------------------------
Mod 取余数 10 Mod 3(=1)
& 将前后两个值转换成字符拼起来 "ABC" & 55(="ABC55") ,111 & 55(="11155")
+ 两个值为数值型用+法算,两为字符型用&法算 "11" +11(=22) ,"1"+"2"(="12")
?——表示任何单一合法字符
* ——表示0个或多个任何合法字符
# ——表示任何一个数字(0 - 9)
[字符列表]——表示字符列表中的任何单一字符
[!字符列表]—— 表示不在字符列表中的任何单一字符
&O 八进制常数 &O000 : &O777 : &010(=8)
&H 十六进制常数 &H000 : &H999 :&HFFF : &H10(=16)

Not 取反 1 当操作数为假时,结果为真
And 与 2 两个操作数均为真时,结果才为真
Or 或 3 两个操作数中有一个为真时,结果为真
Xor 异或 3 两个操作数不相同,结果才为真,否则为假
Eqv 等价 4 两个操作数相同时,结果才为真
Imp 蕴含 5 第一个操作数为真,第二个操作数为假时,结果才为假,其余都为真

函数名
Sqr(x) 求平方根
Log(x) 求自然对数,x>0
Exp(x) 求以e为底的幂值,即求ex
Abs(x) 求x的绝对值
Hex[$](x) 求x的十六进制数,返回的是字符型值
Oct[$](x) 求x的八进制数,返回的是字符型值
Sgn(x) 求x的符号, 当x>0, 返回1 ;x=0, 返回0; x<0, 返回-1
Rnd(x) 产生一个0到1之间的随机数 ;若x=0,则给出的是上一次本函数产生的随机数
randomize(x) 初始化随机数产生器
Sin(x) 求x的正弦值,x的单位是弧度
Cos(x) 求x的余弦值,x的单位是弧度
Tan(x) 求x的正切值,x的单位是弧度
Atn(x) 求x的反正切值,x的单位是弧度,函数返回的是弧度值

字符函数
Len(x) 求x字符串的字符长度(个数)
LenB(x) 求x字符串的字节个数
Left(x,n) 从x字符串左边起截取n个字符
Right(x,n) 从x字符串右边起截取n个字符
Mid(x,n1,n2) 从x字符串左边第n1个位置开始向右截取n2个字符
Mid(待替换的字符串,替换的开始位置[,替换的字符个数])=要插入的字符串
Ucase(x) 将x字符串中所有小写字母改为大写
Lcase(x) 将x字符串中所有大写字母改为小写
Ltrim(x) 删除x左边的空格
Rtrim(x) 删除x右边的空格
Trim(x) 删除x两边的空格
Instr(x,"字符", M) 在x中查找给定的字符,返回该字符在x中的位置,M=1不区分大小写
,省略则区分
String(n,"字符") 得到由n个首字符组成的一个字符串
Space (n) 生成n个空格
Replace(C,C1,C2,N1,N2) 在C字符串中从N1开始将C2替代N2次C1,如果没有N1表示从1开始
StrReverse © 将字符串反序


日期与时间函数
Date () 返回系统以年月日的格式显示当前时间 2005-5-17
Time() 返回系统时间 上午 05:08:43
Now 返回系统时间和日期 2005-5-17 上午 05:10:11
Month© 返回月份代号(1-12) Month("02,03,19") 3
Year© 返回年代号(1752-2078) Year("02-03-19") (= 2002)
Day© 返回日期代号(1-31) Day("02,03,19") (=19)
MonthName(N) 返回月份名 MonthName(1) (=一月)
WeekDay() 返回星期代号(1-7),星期日为1 WeekDay("02,03,17") (=1)
WeekDayName(N) 根据N返回星期名称, 1为星期日 WeekDayName(4) (=星期三)
hour (日期、时间表达式):返回小时值
minute(日期、时间表达式):返回分钟值
second(日期、时间表达式):返回秒值

日期形式: 年yyyy 季q 月m 一年的天数y 日d 一周的天数w 星期ww 时h 分n 秒s

-----------------------转换函数------------------------------------
Str (x) 将数值数据x转换成字符串 Str (45.2) "45.2"
Val(x) 将字符串x中的数字转换成数值 Val("23ab") 23
Chr(x) 返回以x为ASCII码的字符 Chr(65) "A"
Asc(x) 给出字符x的ASCII码值,十进制数 Asc("a") 97
Cint(x) 将数值型数据x的小数部分四舍五入取整 Cint(3.6) 4
Int(x) 取小于等于x的最大整数 Int(-3.5) -4
Fix(x) 将数值型数据x的小数部分舍去 Fix(-3.5) - 3
CBool(x) 将任何有效的数字字符串或数值转换成逻辑型 CBool(2) True
CByte(x) 将0-255之间的数值转换成字节型 CByte(6) 6
CDate(x) 将有效的日期字符串转换成日期 CDate(#1990,2,23#) 1990-2-23
CCur(x) 将数值数据x转换成货币型 CCur(25.6) 25.6
Round(x,N) 在保留N位小数的情况下四舍五入取整 Round(2.86,1) 2.9
CStr(x) 将x转换成字符串型 CStr(12) "12"
CVar(x) 将数值型数据x转换成变体型 CVar("23")+"A" "23A"
CSng(x) 将数值数据x转换成单精度型 CSng(23.5125468) 23.51255
CDbl(x) 将数值数据x转换成双精度型 CDbl(23.5125468) 23.5125468

格式输出: Format函数用于制定字符串或数字的输出格式。
语法:x = Format (expression, fmt )
expression : 是所输出的内容。
fmt: 是指输出的格式,这一项若省略的话,那么Format函数将和Str函数的功能差不多如:
Format (2,"0.00")(=2.00),Format (.7, "0%")(=70%),Format (1140,"$#,##0")($1,140)

fmt字符的意义:----------------------
0 显示一数字,若此位置没有数字则补0
. 小数点
# 显示一数字,若此位置没有数字则不显示
, 千位的分隔符
% 数字乘以100并在右边加上”%”号
- + $ ( ) 这些字出现在fmt里将原样打出

Format函数fmt对时间进行输出时的意义------------------
m/d/yy (8/16/96), h:mm:ss a/p (10:41:29 p)
d-mmmm-yy (16-August-96), h:mm (22:41)
d-mmmm (16-August), h:mm:ss (22:41:29)
mmmm-yy (august-96), m/d/yy h:mm (8/16/96 22:41)
hh:mm AM/PM (10:41 PM)

InputBox函数----键盘输入对话框------------------------------------------------
  语法:x = InputBox (prompt, title, default, xpos, ypos, helpfile, context)
prompt 是提示的字符串,这个参数是必须的。
title 是对话框的标题,是可选的。
default 是文本框里的缺省值,也是可选的。
xpos,ypos决定输入框的位置。
helpfile,context用于显示与该框相关的帮助屏幕。
x 返回值 x 将是用户在文本框里输入的数据,是一个字符串类型的值。
如果用户按了Cancel钮,则 x 将为空字符串。

MsgBox函数------信息提示对话框---------------
 语法:Action = MsgBox (msg, type, title)
Action的值:返回的值说明了哪个按钮被按下了
1 选择 Ok 按钮 5 选择 Ignore 按钮
2 选择 Cancel 按钮 6 选择 Yes 按钮
3 选择 Abort 按钮 7 选择 No 按钮
4 选择 Retry 按钮  

type的值:代表对话窗需要显示的按钮
0 vbOKOnly 只显示 Ok 按钮
1 vbOKCancel 显示 Ok Cancel 按钮
2 vbAbortRetryIgnore 显示 Abor Retry Ignore 按钮
3 vbYesNoCancel 显示 Yes No Cancel 按钮
4 vbYesNo 显示 Yes No 按钮  
5 vbRetryCancel 显示 Retry Cancel 按钮
以上描述了对话框中显示的按钮的类型与数目
16 vbCritical Stop Sign对极其重要的问题提醒用户
32 vbQuestion Question Mark增亮没有危险的问题
48 vbExclamation Exclamation Mark强调警告用户必须知道的事情
64 vbInformation Information Mark可以使乏味的信息变得有趣
以上描述了要显示的图标的样式

0 vbDefaultButton1 第一个按钮缺省
256 vbDefaultButton2 第二个按钮缺省
512 vbDefaultButton3 第三个按钮缺省
以上说明哪一个按钮是缺省值
百元买百鸡问题。假定母鸡X每只3元,公鸡Y每只2元,小鸡Z每只5角。
'现在有100元钱要求买100只鸡
'最大数:X=100/3=33,Y=100/2=50,Z=100/0.5=200只
'X+Y+Z=100只,3 * x + 2 * y + 0.5 * z = 100元
Private Sub Command1_Click()
Form1.Cls '清除文本
Form1.Print "母鸡", "公鸡", "小鸡"
t1 = Timer '开始计时
For x = 0 To 33
For y = 0 To 50
For z = 0 To 100 '小鸡不可以超过100只
If 3 * x + 2 * y + 0.5 * z = 100 And x + y + z = 100 Then
Print x, y, z
End If
Next z
Next y
Next x
t2 = Timer '计时结束
Print "方法一用了"; t2 - t1; "秒时间"; "很闪"
End Sub


Private Sub Command2_Click()
Form1.Cls
Form1.Print "母鸡", "公鸡", "小鸡"
t1 = Timer
For x = 0 To 33
For y = 0 To 50
If 3 * x + 2 * y + 0.5 * (100 - x - y) = 100 Then
Print x, y, 100 - x - y
End If
Next y
Next x
t2 = Timer
Print "方法二用了"; t2 - t1; "秒时间"; "不闪"
End Sub

阅读(5567) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册