1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,讲 语 言 基 础,一、数据类型,二、变量与常量,第,4,讲 语 言 基 础,三、运算符,四、表达式,五、常用内部函数,六、输出函数介绍,3.3,运 算 符,包括,4,种运算符:算术运算符、关系运算符、逻辑运算符、字符串运算符,1,算术运算符,下表列出了,Visual Basic,中的算术运算符,其中“,-”,运算符在单目运算,(,单个操作数,),中作取负号运算,在双目运算,(,两个操作数,),中作算术减运算,其余都是双目运算符。运算优先级表示当表达式中含有多个操作符时,先执行哪个操作符。表中以优先
2、级为序列介绍了各算术运算符,(,设,ia,变量为整型,值为,3),。,表,3.4,算 术 运 算 符,注意:,和,mod,适合于整数,如果是小数则先四舍五入再计算,2,关系运算符,关系运算符是双目运算符,作用是将两个操作数进行大小比较,若关系成立,则返回,True,,,否则返回,False,。在,Visual Basic,中,,True,用,-1,表示,,False,用,0,表示。操作数可以是数值型、字符型。表,2.5,列出,Visual Basic,中的关系运算符。,在比较时注意以下规则:,(1),如果两个操作数是数值型,则按其大小比较。,(2),如果两个操作数是字符型,则按字符的,ASCI
3、I,码值从左到右一一比较,即首先比较两个字符串的第一个字符,其,ASCII,码值大的字符串大,如果第一个字符相同,则比较第二个字符,依此类推,直到出现不同的字符为止。,(3),关系运算符的优先级相同。,3,逻辑运算符,逻辑运算符除,Not,是单目运算符外,其余都是双目运算符。逻辑运算符的作用是将操作数进行逻辑运算,结果是逻辑值,True,或,False,。,表,2.6,列出 了,Visual Basic,中的逻辑运算符、运算优先级等,(,在表中假定,T,表示,True,,,F,表示,False),。,表,3.6 Visual Basic,逻辑运算符,2,字符串运算符,字符串运算符有两个:,字符
4、串连接“,&”,和“,+”,它们的作用都是将两个字符串拼接起来。在字符串变量后使用运算符“,&”,时应注意,变量与运算符“,&”,间应加一个空格。这是因为符号“,&”,还是长整型的类型定义符,当变量与符号“,&”,接在一起时,,Visual Basic,会先把它作为类型定义符处理,这样就会造成出错。例如:,计算机,+,与程序设计,结果为,计算机与程序设计,This is a&Visual Basic ,结果为,This is a Visual Basic,连接符“,&”,与“,+”,的区别是:“,+”,连接符两旁的操作数应均为字符型或均为数值型,若均为数值型则进行算术加运算;若一个为字符型,另
5、一个为数值型则出错。“,&”,连接符两旁的操作数无论是字符型还是数值型,进行连接操作前,系统都会先将操作数转换成字符型,然后再连接。,例如:,123+4,结果为,127,abcdef,+12345 ,出错,abcdef,&12345 ,结果为:,abcdef12345,3.4,表 达 式,1,表达式的类型,由变量、常量和运算符按一定的规则组成的一个字符序列就是表达式。表达式通过运算后有一个结果,运算结果的类型由数据和运算符共同决定。最常用的表达式有下面,5,类。,(1),算术表达式,主要是应用一些数学运算符。,(2),字符串表达式,用到字符串运算符“,&”,和“,+”,,两者不同的是“,+”,
6、只能连接字符串,而“,&”,可以将数字转换成字符串再进行连接。,(3),日期表达式,由算术运算符“,+”,、“,-”,、算术表达式、日期型常量、日期型变量和函数组成。日期型变量是一种特殊的数值型数据,两个日期型变量可以相互加减;日期型和天数可以相互加减,结果为日期型。,(4),关系表达式通常用于选择性结构或循环结构的语句中,用于判断分支和循环条件。,(5),布尔表达式,其运算结果为两种情况:真和假,运算符有“,And”“Or”“Not”,。,3,优先级,在运算符介绍过程中提到,算术运算符、逻辑运算符都有不同的优先级,关系运算符优先级相同。当一个表达式中出现了多种不同类型的运算符时,不同类型的运
7、算符优先级如下:,算术运算符,=,字符运算符,关系运算符,逻辑运算符,在一个表达式中,加、减算术运算符与字符运算符同级,为防止混 淆,,Visual Basic,系统自动加分隔符,表示不能同时存在,除非增加括号以改变优先级;其余算术运算符优先级高于字符运算符。,对于多种运算符并存的表达式,可增加圆括号改变优先级,使表达式更清晰。,例如,若选拔优秀生的条件为:年龄,(Age),小于,19,岁,三门课总分,(Total),高于,285,分,其中有一门为,100,分,其表达式为:,Age,19 And Tota1,285 And(Mark1=100 Or Mark2,100 Or Mark3,100
8、),3.5,常用内部函数,3.5.1,数学函数,数学函数与数学中的定义一致,表列出了常用的数学函数。,表,3.5,常用数学函数,3.5.2,转换函数,表,3.6,常用的转换函数,3.5.3,字符串函数,表,常用的字符串函数,3.5.4,日期函数,表,2.10,常用的日期函数表,如输入,4852,秒,则应输出,1,小时,20,分,52,秒,(1),创建应用程序的用户界面和设置对象属性,(2),编写程序代码,Private Sub Command1_Click(),Dim h As Integer,m As Integer,s As Integer,t As Integer,t=Val(Text1
9、Text),h=t 3600,t=t-h*3600,m=t 60,s=t-m*60,Text2.Text=h,Text3.Text=m,Text4.Text=s,End Sub,例,3.7,输入一个总秒数,化成小时、分钟和秒数,Private Sub Command2_Click(),End,End Sub,例,3.9,编写程序,实现两个文本框内容的交换,使用一个临时单元变量,(t),(1),在窗体上建立两个标签、两个文本框和一个命令按钮,(2),编写程序代码,Private Sub Command1_Click(),“,交换”按钮,t=Text1.Text,Text1.Text=Text2
10、Text,Text2.Text=t,End Sub,3.7,程序举例,在窗体上设置三个命令按钮,(,图,3.15),,程序进入运行状态后,当单击“窗体变大”命令按钮时,窗体变大,单击“窗体变小”按钮时,窗体变小。单击“退出”按钮时,则退出。,例,3.10,控制窗体“变大”和“变小”,(1),建立应用程序的用户界面和设置对象属性,(2),编写程序代码,Private Sub,Form_Load,(),Form1.Height=4000,Form1.Width=4000,Form1.Top=1000,Form1.Left=1000,End Sub,Private Sub Command1_Cli
11、ck(),“,窗体变大”按钮,Form1.Height=,Form1.Height,+200,每次增加,200,点,Form1.Width=,Form1.Width,+200,End Sub,Private Sub Command2_Click(),“,窗体变小”按钮,Form1.Height=,Form1.Height,-200,每次减少,200,点,Form1.Width=,Form1.Width,-200,End Sub,在第一个文本框中输入文字时,在另外两个文本框中显示同样相同的内容,但显示的字号和字体不同。单击“清除”按钮时则清除三个文本框中的内容,例,3.11,在三个文本框中显示不
12、同的文字效果,(1),建立应用程序的用户界面和设置对象属性,(2),编写程序代码,Private Sub,Form_Load,(),Text2.FontName=,隶书,Text2.FontSize=16,Text3.FontName=,楷体,_GB2312,Text3.FontSize=20,End Sub,Private Sub Text1_Change(),Text2.Text=Text1.Text,Text3.Text=Text1.Text,End Sub,Private Sub Command1_Click(),“,清除”按钮,Text1.Text=“”,清除文本框,Text1,的内
13、容,Text2.Text=,清除文本框,Text2,的内容,Text3.Text=,清除文本框,Text3,的内容,Text1.SetFocus,设置焦点,End Sub,(1),在窗体上建立一个标签(,Label1,)和三个命令按钮,(Command1,、,Command2,和,Command3),三个命令按钮分别使用访问键,Alt+C,、,Alt+H,和,Alt+D,例,3.12,实现标签的显示和隐藏,以及改变文字的颜色,(2),编写程序代码,Private Sub,Form_Load,(),Randomize,Label1.BackColor=QBColor(15),背景色,Label1
14、ForeColor=QBColor(0),文字颜色,Label1.FontSize=18,字体大小,End Sub,Private Sub Command1_Click(),“,改变文字颜色”按钮,Clr,=Int(15*,Rnd,),产生随机颜色码,Label1.ForeColor=,QBColor(Clr,),End Sub,Private Sub Command2_Click(),“,隐藏标签”按钮,Label1.Visible=False,隐藏标签,End Sub,Private Sub Command3_Click(),“,显示标签”按钮,Label1.Visible=True,显
15、示标签,End Sub,3.5.5,格式输出函数,用格式输出函数,Format,可以使数值、日期或字符串按指定的格式输出,一般用于,Print,方法中。其形式如下:,Format(,表达式,,格式字符串,),说明,:,表达式是指要格式化的数值、日期和字符串类型表达式。格式字符串表示输出表达式值时所采用的输出格式。格式字符串有三类:数值格式、日期格式和字符串格式。格式字符串要加引号。,1,数值格式化,数值格式化是将数值表达式的值按“格式字符串”指定的格式输出。有关格式及举例见表,2.11,。,表,2.11,数值格式化列表,2,日期和时间格式化,日期和时间格式化是将日期类型表达式的值或数值表达式的
16、值转换为日期、时间的序数值,按“格式字符串”指定的格式输出。有关格式如表,2.12,所示。,表,2.12,常用日期和时间格式符表,【,例,2-1】,利用,Format,函数显示有关的日期和时间。显示结果如图,2.1,所示。,图,2.1 Format,函数示例,程序设计如下:,Private Sub Form_Click(),FontSize,=12,MyTime,=#9:21:30 PM#,MyDate,=#7/21/1997#,Print Tab(2);,Format(MyDate,m/d/yy,),Print Tab(2);,Format(MyDate,mmmm-yy,),Print Ta
17、b(2);,Format(MyTime,h-m-s AM/PM),Print Tab(2);,Format(MyTime,hh:mm:ss,A/P),显示系统当前日期和时间,Print Tab(2);Format(Now,yyyy,年,m,月,dd,日,hh:mm,),以系统预定义的格式显示系统当前时间,Print Tab(2);Format(Date,dddd,mmmm,dd,yyyy,),End Sub,3,字符串格式化,字符串格式化是将字符串按指定的格式进行诸如强制大小写等显示。常用的字符串格式符及使用举例如表,2.13,所示。,表,2.13,常用字符串格式符及举例,例,2,编写的窗体单
18、击事件过程代码如下:,Private Sub,Form_Click,(),Dim x As Integer,a As Integer,Dim b As Integer,c As Integer,x=val(text1.text),a=,Int(x,/10),求十位数,b=x Mod 10,求个位数,c=b*10+a,生成新的数,Print,处理后的数,:;c,End Sub,运行程序后单击窗体,输出结果是:,处理后的数:,63,例,2.1,给定一个两位正整数,(,如,36),,要求交换个位数和十位数的位置,把处理后的数显示在窗体上,编写的窗体单击事件过程代码如下:,Private Sub,Fo
19、rm_Click,(),Dim a As Integer,b As Integer,c As Integer,Randomize,初始化随机数生成器,a=Int(90*,Rnd,+10),产生,10,99,区间内的随机整数,b=Int(90*,Rnd,+10),c=a+b,求两数之和,Print,产生的两个随机数,:;a,b,Print,和数,:;c,End Sub,运行程序后单击窗体,输出结果是:,产生的两个随机数:,56 71,和数:,127,例,2.2,通过随机函数产生,2,个两位正整数,求这,2,个数,之和并显示出来,再次运行程序,单击窗体后输出另一组结果是:,产生的两个随机数:,18 37,和数:,55,例,3,已知,a=6,b=9,计算,c=,a2+b2,编写的窗体单击事件过程代码如下:,Private Sub,Form_Click,(),Dim a As Single,b As Single,c As Single,a=6,b=9,c=,Sqr(a,*a+b*b),Print c=&c,End Sub,运行程序后单击窗体,输出结果如下:,C=10.81665,






