正文

 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 单语句 '如果条件成立就执行单语句 If 条件表达式 then '如果条件不成立就跳到END结束IF语句语句块 '条件成立时执行语句块End if '闪人882、选择分支 ---------A) 简单的选择分支语句: If 条件表达式 then '条件成立执行语句1后跳到END IF结束语句块1 else '条件不成立执行语句2跳到END IF结束语句块2 End if 多重选择分支语句: If 条件1 then '如果条件1成立执行语句块1跳到END IF结束语句块1 [elseif 条件2 ] '如果条件1不成立判断条件2,如果不成立跳到END IF结束语句2 '条件2成立时执行语句2跳到END IF结束End if '闪人883、多重分支语句 -------------------------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 '打完收工884、循环控制 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,6474、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 符号常量 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 (程序执行完毕后系统不会释放其值) 变量的作用域 :过程级(过程内部):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>0Exp(x) 求以e为底的幂值,即求exAbs(x) 求x的绝对值Hex[$](x) 求x的十六进制数,返回的是字符型值Oct[$](x) 求x的八进制数,返回的是字符型值Sgn(x) 求x的符号, 当x>0, 返回1 ;x=0, 返回0; x<0, 返回-1Rnd(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-17Time() 返回系统时间 上午 05:08:43Now 返回系统时间和日期 2005-5-17 上午 05:10:11Month© 返回月份代号(1-12) Month("02,03,19") 3Year© 返回年代号(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") 23Chr(x) 返回以x为ASCII码的字符 Chr(65) "A"Asc(x) 给出字符x的ASCII码值,十进制数 Asc("a") 97Cint(x) 将数值型数据x的小数部分四舍五入取整 Cint(3.6) 4Int(x) 取小于等于x的最大整数 Int(-3.5) -4 Fix(x) 将数值型数据x的小数部分舍去 Fix(-3.5) - 3CBool(x) 将任何有效的数字字符串或数值转换成逻辑型 CBool(2) TrueCByte(x) 将0-255之间的数值转换成字节型 CByte(6) 6CDate(x) 将有效的日期字符串转换成日期 CDate(#1990,2,23#) 1990-2-23CCur(x) 将数值数据x转换成货币型 CCur(25.6) 25.6Round(x,N) 在保留N位小数的情况下四舍五入取整 Round(2.86,1) 2.9CStr(x) 将x转换成字符串型 CStr(12) "12"CVar(x) 将数值型数据x转换成变体型 CVar("23")+"A" "23A"CSng(x) 将数值数据x转换成单精度型 CSng(23.5125468) 23.51255CDbl(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 33For y = 0 To 50For z = 0 To 100 '小鸡不可以超过100只If 3 * x + 2 * y + 0.5 * z = 100 And x + y + z = 100 ThenPrint x, y, zEnd IfNext zNext yNext xt2 = Timer '计时结束Print "方法一用了"; t2 - t1; "秒时间"; "很闪"End SubPrivate Sub Command2_Click()Form1.ClsForm1.Print "母鸡", "公鸡", "小鸡"t1 = TimerFor x = 0 To 33For y = 0 To 50If 3 * x + 2 * y + 0.5 * (100 - x - y) = 100 ThenPrint x, y, 100 - x - yEnd IfNext yNext xt2 = TimerPrint "方法二用了"; t2 - t1; "秒时间"; "不闪"End Sub

阅读(5620) | 评论(0)


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

评论

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