vb 比较大小

vb 比较大小,第1张

在窗体上放7个文本框控件,3个按钮控件
在窗体模块通用声明中写下:
Option Explicit: Dim x As Long, y As Long, z As Long, k As Long
Private Sub btnMax_Click()
x = Text1Text
y = Text2Text
z = Text3Text
k = Text4Text
If x > y And x > z And x > k Then Text5Text = x
If y > x And y > z And y > k Then Text5Text = y
If z > x And z > y And z > k Then Text5Text = z
If k > x And k > y And k > z Then Text5Text = k
End Sub
Private Sub btnMin_Click()
x = Text1Text
y = Text2Text
z = Text3Text
k = Text4Text
If x < y And x < z And x < k Then Text6Text = x
If y < x And y < z And y < k Then Text6Text = y
If z < x And z < y And z < k Then Text6Text = z
If k < x And k < y And k < z Then Text6Text = k
End Sub
Private Sub btnRange_Click()
Text7 = Text5Text - Text6Text
End Sub
Private Sub Form_Load()
btnMaxCaption = "最大数"
btnMinCaption = "最小数"
btnRangeCaption = "最大与最小数字间的相差值"
Text5ForeColor = &H8000&
Text6ForeColor = &HFF&
End Sub

text1-4用来输入数字,text5-8用来显示排序,command用来执行排序 代码如下: Private Sub Command1_Click() Dim a(1 To 4) As Integer a(1) = Val(Text1Text) a(2) = Val(Text2Text) a(3) = Val(Text3Text) a(4) = Val(Text4Text) For i = 4 To 2 Step -1 For j = 1 To i - 1 If a(j) < a(j + 1) Then temp = a(j + 1) a(j + 1) = a(j) a(j) = temp End If Next j Next i Text5Text = a(1) Text6Text = a(2) Text7Text = a(3) Text8Text = a(4) End Sub

新建一个工程
上面建成一个text1再复制三个,生成了个控件数据
再搞一按钮,复制下面的代码就可以了,测试没有问题,
Dim a(4) ‘定义数组
Private Sub Command1_Click()
For j = 1 To 4
a(j) = Text1(j - 1)Text ’这里为了简单我就用数组控件了
Min = a(1)
flag = 1
For i = 2 To 4
a(i) = Text1(i - 1)Text
If Min > a(i) Then
If Min = 0 Then
Min = a(i)
End If
If a(i) = 0 Then
Min = Min
End If
Min = a(i)
flag = i
End If
Next i
Next j
MsgBox Min
End Sub
测试没有问题哦……
如果不想用控件数组的请,建四个文本框,写上a(1) = Text1Text
a(2)=text2text…………

dim a$ 或dim a AS String
dim b% 或dim b AS Integer
dim c& 或dim c AS Long
dim d! 或dim d AS Single
dim e# 或dim e AS Double
dim f@ 或dim f AS Currency
dim g as object
数据类型 储存大小 范围
String(字符串型) $ 10 长度从 0 到 大约 20 亿
Integer(整数型) % 2 -32,768 ~ 32767
Long(长整数型) & 4 -2,147,483,648 ~ 2,147,483,647
Single(单精度型) ! 4 负数-3402823E38 ~ -1401298E-45
正数1401298E-45 ~ 3402823E38
Double(双精度型) # 8 负数 -1797,693,134,862,32E308 ~-4940,656,458,412,47E-324
正数 4940,656,458,412,47E-324 ~1797,693,134,862,32E308
Currency(货币型) @ 8 -922,337,203,685,4775808 ~922337203685477
Object 4 任何 Object 引用

Dim A(1 To 4) As Integer
Private Sub Command1_Click()
For I = 1 To 4
A(I) = InputBox("")
Next I
'开始冒泡排序
For I = 1 To 3
For J = I + 1 To 4
'冒泡原理(大的数下沉,小的数上浮)即(如果前面的大于后面的数,两者交换)
If A(I) > A(J) Then temp = A(I): A(I) = A(J): A(J) = temp
Next J
Next I
For I = 1 To 4
Print A(I)
Next
Print "max:" & A(4)
Print "min:" & A(1)
End Sub

data(4)=cbyte(a and &Hff)'低
data(5)=cbyte(a\256)'高
'如果API的话 有一个CopyMemory 可以转换任何类型当然这是你的以后扩展
如果用copyMemory 时 就是
CopyMemory data(4),a,2 '这里你要保证你的a 的类型为 integer
如果高低位反了,

VB中的字符一般用ASCII码表示。
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数(剩下的1位二进制为0)来表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。其中:
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共95个)是字符(32是空格),其中48~57为0到9十个阿拉伯数字。
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
同时还要注意,在标准ASCII中,其最高位(b7)用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中1的个数必须是奇数,若非奇数,则在最高位b7添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位b7添1。
后128个称为扩展ASCII码。许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展ASCII 码允许将每个字符的第8 位用于确定附加的128 个特殊符号字符、外来语字母和图形符号。
1)数字0~9比字母要小。如"7"<"F";
2)数字0比数字9要小,并按0到9顺序递增。如"3"<"8"
3)字母A比字母Z要小,并按A到Z顺序递增。如"A"<"Z"
4)同个字母的大写字母比小写字母要小。如"A"<"a"。
记住几个常见字母的ASCII码大小:
“换行LF”为0x0A;“回车CR”为0x0D;空格为0x20;"0"为0x30; "A"为0x41;"a"为0x61。
另外还有128-255的ASCII字符。
查询ASCII技巧,方便查询ASCII码对应的字符:新建一个文本文档,按住换档键+要查询的码值(注意,这里是十进制),松开即可显示出对应字符。例如:按住换档键+97,则会显示出'a'。
希望我能帮助你解疑释惑。

一、数据类型概述
数据:计算机能够处理数值、文字、声音、图形、图像等信息,均称为数据。
数据类型:根据数据描述信息的含义,将数据分为不同的种类,对数据种类的区分规定,称为数据类型。数据类型的不同,则在内存中的存储结构也不同,占用空间也不同
VB的基本数据类型:
数值型数据 (主要数据类型) 日期型 字节型
货币型 逻辑型 字符串型 对象型 变体型
二、 数值数据类型
数值类型分为整数型和实数型两大类。
1、整数型
整数型是指不带小数点和指数符号的数。
按表示范围整数型分为:整型、长整型
(1)整型(Integer,类型符%)
整型数在内存中占两个字节(16位)
十进制整型数的取值范围:-32768 ~ +32767
例如:15,-345,654%都是整数型。而45678%则会发生溢出错误。
(2)长整型(Long,类型符&)
长整数型在内存中占4个字节(32位)。
十进制长整型数的取值范围:
-2147483648 ~ +2147483647
例如:123456,45678&都是长整数型。
2、实数型(浮点数或实型数)
实数型数据是指带有小数部分的数。
注意:数12和数120对计算机来说是不同的,前者是整数(占2个字节),后者是浮点数(占4个字节)
实数型数据分为浮点数和定点数。
浮点数由三部分组成:符号,指数和尾数。
在VB中浮点数分为两种:
单精度浮点数( Single )
双精度浮点数( Double )
(1)单精度数(Single,类型符!)
在内存中占4个字节(32位),,有效数字:7位十进制数
取值范围:负数 -3402823E+38 ~ -1401298E-45
正数 1401298E-45 ~ 3402823E+38
在计算机程序里面不能有上标下标的写法,所以乘幂采用的是一种称为科学计数法的表达方法
这里用E或者e表示10的次方(E/e大小写都可以)
比如:1401298E-45表示1401298的10的负45次方
vb里面可以这样表示:896E-5
例:21e5(正号省略)表示:
21乘以10的5次方的一个单精度数
(2) 双精度数(Double,类型符#)
Double类型数据在内存中占用8个字节(64位)
Double型可以精确到15或16位十进制数,即15或16位有效数字。
取值范围:
负数: –1797693134862316D+308 ~ -494065D-324
正数: 494065D-324 ~ 1797693134862316D+308
比如1788D5,表示它是一个双精度数,表示1788乘以10的5次方
这里用D来表示10的次方
二、 货币型(Currency,类型符@)
主要用来表示货币值,在内存中占8个字节(64位);
整数部分为15位,可以精确到小数点后4位,第五位四舍五入;属于定点实数
货币型数据的取值范围:
-922337203685447 5808 ~ 922337203685447 5807
跟浮点数的区别:小数点后的位数是固定的,4位
例如:356@ 、 65123456@都是货币型。
三、 字节型(Byte,无类型符)
一般用于存储二进制数。
字节型数据在内存中占1个字节(8位)。
字节型数据的取值范围:0 ~ 255
四、 日期型(Date)
在内存中占用8个字节,以浮点数形式存储。
日期型数据的日期表示范围为:
100年1月1日~9999年12月31日
日期型数据的时间表示范围为:
00:00:00 ~ 23:59:59
用#括起来放置日期和时间,允许用各种表示日期和时间的格式。
日期可以用“/”、“,”、“-”分隔开,可以是年、月、日,也可以是月、日、年的顺序。时间必须用“:”分隔,顺序是:时、分、秒。
例:
#09/10/2000# 或 #2000-09-12#
#08:30:00 AM#
#09/10/2000 08:30:00 AM#
例:
Dim mylab As Date
mylab = #9/3/2001 11:35:00 AM#
Time = mylab
在VB中会自动转换成mm/dd/yy(月/日/年)的形式。
五、 逻辑型(Boolean)
逻辑型数据在内存中占2个字节。
逻辑型数据只有两个可能的值:
True(真) False(假)
若将逻辑型数据转换成数值型,则:
True(真)为 –1 False(假)为 0
当数值型数据转换为Boolean型数据时:
非0的数据转换为true,0为fasle。
六、字符串( String ,类型符$)
字符串是一个字符序列,必须用双引号括起来
说明:
双引号为分界符,输入和输出时并不显示。
字符串中包含字符的个数称为字符串长度。
长度为零的字符串称为空字符串,比如“”,引号里面没有任何内容
字符串中包含的字符区分大小写。
字符串可分为变长字符串和定长字符串两种。
(1)变长字符串(长度为字符串长度)
例:dim a as string
a="123" a="456789“
(2)定长字符串(长度为规定长度)
对于定长字符串,当字符长度低于规定长度,即用空格填满,当字符长度多于规定长度,则截去多余的字符。
例:dim a as string 10
七、对象数据类型(Object )
对象型数据在内存中占用4个字节。用以引用应用程序中的对象。
八、变体数据类型(Variant )
变体数据类型是一种特殊数据类型,具有很大的灵活性,可以表示多种数据类型,其最终的类型由赋予它的值来确定。
九、用户自定义类型
如果我想同时记录一个学生的学号、姓名、性别、总分,那么我可以用自定义类型。
用户自定义类型特点:这种类型的数据由若干个不同类型的基本数据组成。
自定义类型由Type语句来实现:
格式:Type 自定义类型名
元素名1 As 类型名
元素名2 As 类型名
……
元素名n As 类型名
End Type
Type是语句定义符,告诉VB现在要定义一个数据类型,是vb的关键字;其后的自定义类型名是要定义的该数据类型的名称,由用户确定;end type表示类型定义结束;自定义类型名是组成该数据类型的变量的名称
例:
Type Student
Num As Long ‘学号
Name As String10 ‘姓名,用长度为10的定长字符串来存储
Sex As String5 ‘性别,用长度为5的定长字符串来存储
Score As Single ‘得分,用单精度数来存储
End Type
一般在标准模块里面定义,如果只想在窗体里面定义,则前面必须加上Private,表示该类型只对本窗体有效,其他窗体无法定义该类型的变量。
定义了Student类型之后,我们就可以定义Student类型的变量了,比如: Dim Stu As Student


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12915729.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存