高一信息技术VB知识要点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高一信息技术VB 知识要点
学习程序设计的方法:1、多阅读程序 2、尝试独立编写程序 3、上机验证自己设计的程序
一、 程序设计基础知识
1、 程序设计语言
程序设计语言:人与计算机交流的语言。
程序:是人们用计算机语言编制的,让计算机去完成一定任务的步骤。
程序设计:设计、编制让计算机完成任务的程序的过程。
程序设计的一般步骤为:提出问题、分析问题、解决问题。
2、 算法
算法:就是解决问题的方法与步骤。
算法是程序设计的“灵魂”,算法+数据结构=程序。
算法描述方法:一般用自然语言、流程图与伪代码进行描述。
流程图及符号:也称程序框图,它是算法的一种图形化表示方法,形象、直观,容易理解。
二、VB 基础知识
1、 VB 基础
VB 特点:可视化的编程工具、面向对象的设计语言、事件驱动的执行方式。
VB 程序设计基本步骤:(1)、分析需求与设计算法 (2)、设计图形用户界面,并为对象设置属性。
(3)、编写程序代码。
(4)、调试、修改程序。
(5)、保存工程并生成可独立运行的程序。
2、 VB 应用程序窗体设计
(1)操作界面:标题栏、菜单栏、工具栏、工具箱、工程窗口、窗体、工程管理窗口、属性窗口。
(2)工程:程序设计的整个过程。
对象:应用程序的窗体与控件都是对象,每一个对象都有自己的属性与完成任务的能力。
控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。
属性:描述一个对象的特征。
每个对象一般都有默认属性,可在属性窗口中修改属性值,叫静态设置。
另一种是用控制代码来修改属性值,叫动态设置,设置格式为:[对象名]·属性名=属性值。
方法:不同的对象有不同的做事方法,调用方法的格式为:[对象名]·方法名[ 参数列表 ]。
控制代码: VB 中一个对象可以执行的指令,按照需要编排在一起就形成了控制代码。
(3)常用控件
标签(Label):通常用来显示比较固定的提示性信息。
文本框(TextBox ):用来显示与输入数据。
命令按钮(CommandButton ):用于接收用户的操作信息,并引发应用程序的某个操作。
图方法的输出,或Print方法输出文本。
滚动条(ScrollBar):它既可以配合窗口浏览数据,也可以作为数据输入的工具使用。
(4)常用控件的基本属性(静态设置、动态设置)
Caption :标题属性,决定出现在窗体的标题栏上的文本内容。
Text :文本属性,决定窗体中或文本框中显示的内容。
Name :名称属性,作为对象的标识而引用,不会显示在窗体上。
Height :高度属性,决定控件高度。
Width :宽度属性,决定控件宽度。
Left :距左属性,决定控件到屏幕左边界的距离。
Top :距顶属性,决定控件到屏幕顶边界的距离。
Fore Color :前景属性,设置控件的前景色。
Back Color :背景属性,设置控件背景色。
Font:字符格式属性,设置字符的正文字体(Name)、大小(Size)、粗体(Bold)、斜体(Italic)、下画线(Underline)等文字格式。
BorderStyle :边框属性,设置控件的边框风格。
Alignment :标签文字对齐属性,(0)Left Justify时文本左对齐;(1)Right Justify时文本右对齐;设置为
(2)Center时文本居中。
AutoSize :大小自动适应属性,设置为False时输入控件Caption中文字超过控件宽度时超出部分不显示,设置为True时,控件宽度自动扩展,以适应文字长度。
(True表示“真”值,即“是”;False 表示“假”值,即“否”)
Visible :隐藏属性,决定控件是否可见。
Enabled :有效属性,决定控件运行时是否有效。
(5)常用事件
Click :鼠标左键单击。
DblClick :鼠标左键双击。
MouseDown :鼠标左键按下。
MouseUp :鼠标左键弹起。
MouseMove :鼠标移动。
Change :控件的内容已经改变。
KeyDown :键盘上的某键按下。
KeyUp :键盘上的某键弹起。
KeyPress :敲击键盘上的某键。
窗体Load :装载(即启动或称打开)窗体。
窗体Unload :退出(即结束或称关闭)窗体。
GotFocus :获取焦点。
LostFocus :失去焦点。
SetFocus :设置焦点。
(6)常用方法。
[ 对象.]方法[ 参数列表]
Print :打印。
Cls :清除。
Move :移动。
End :结束程序的执行。
Line :(画直线或矩形)格式:[对象.] Line [ [Step] (x1,y1)]-(x2,y2)[,颜色][,B[F]]
其中对象可以是窗体或图形框;(x1,y1) ,(x2,y2)为线段的起终点坐标或矩形的左上角右下坐标。
关键字B表示画矩形,关键字F表示用画矩形的颜色来填充矩形。
窗体Show :显示窗体。
窗体Hide :隐藏窗体。
3、VB程序代码
(1)常量、变量的含义、定义及使用。
常量:在程序进行过程中不变的量,在VB中一般分数值常量与字符常量两种。
数值常量:就是数学中说的常数,分整型常量与实型常量两种
整型常量:即整数,指不带小数点的数值如1、0、、-10、+35等都是合法的整数
实型常量:即实数,指带小数点的数值。
实型常量又分为定点数与浮点数两种。
例:定点数:3.14159与-6.8,1.99
浮点数:2E6、1E5、88E
例:1.2345×103 可表示为1.2345E3,字母E表示底数10
浮点数就是数学上的科学计数法。
字符串常量:被一对双引号括起来的若干个合法的字符称为字符串常量。
例如:”China”、”Visual Basic”、”18”、”3.1415”等,双引号中字符,不包括双引号本身。
符号常量:如果多次用到同一个常量,则可用一个有意义的名字表示这个常量。
变量:是在程序运行过程中其值可以改变的量,变量的实质是内存中存储数值的区域。
变量名的命名规则为:变量名的第一个字符必须是字母;变量名只能由字母、数字与下划线组成,不能含有小数点、空格等字符;组成变量名的字符数不得超过255个字符;不能用VB保留字完全作为变量名,如语句定义符、函数名等。
变量名不能与过程名与符号常量名相同,更不能用VB的关键字作为变量名;变量名不区分大小写。
(2)基本数据类型
(整型)Integer、(长整型)Long、(单精度型)Single、(双精度型)Double、(字符串型)String、(布尔型)Boolean、(日期型)Date
表示范围:
(整型)Integer (-32768 ——32767,存储为16 位,2 个字节)
(长整型)Long (-21亿——21亿,可以表示人口数量)
(布尔型)Boolean (True 真、是或False假、非)
(字符串型)String (定长字符串:0——65535个字符,不定长字符串:0——20亿个字符)
(日期型)Date(100/1/1——9999/12/31)日期型数据专门用来处理日期与时间。
VB采用一对“#”把日期与时间的值括起来,如#2003/08/20#表示2003年8月20日。
常量与变量的命名、声明及赋值
符号常量的声明:Const 常量名[As 常量类型] = 常量值如:Const pi As Single = 3.14159
变量的声明:Dim <变量名>As <变量类型> 如:Dim a As Integer
变量的赋值
VB中使用Let语句给变量赋值,其形式如下:
[Let] 变量= 表达式其中,方括号[]表示这部分内容是可选的,通常可以省略该关键字。
...........(3)运算符与表达式
运算符:
1、算术运算:
+ 加-- 减*乘
^ 指数例:2^2 = 4
.
Mod 求余数例:5 Mod 2 = 1
2、关系运算:
=赋值<小于号
<>不等于>大于号
>=大于等于号<=小于等于号
注意:关系表达式的运算结果为布尔值True 或False
例:3 > 2 结果为True(真或是)
3、逻辑运算:
Not(取反)And(与)Or(或)
运算结果为布尔型(Boolean)True 或False
逻辑运算符的优先级为:No > And > Or
4、日期运算符与日期表达式:
日期表达式是用日期运算符“+”或“-”将算式表达式、日期型常量、日期型变量、日期函数等连接起来的式子。
如:表达式“#2003/09/01# +30”的运算结果是“2003-10-1”;表达式“#2003/10/20# - #2003/10/10#”
的运算结果为整数10
5、字符运算:
字符串连接符为“+”与“&”
“123” + “45” = “12345”
“123” & “45” = “12345”
123 + “45” = 168
“123” + 45 = 168
运算符的执行顺序:
在VB中,当一个表达式中同时出现多种运算符时,运算次序由运算符的优先级决定,优先级高的运算符先运算,优先级相同的从左向右进行运算。
不同性质的运算符优先级如下。
算术运算符> 字符串运算符> 关系运算符> 逻辑运算符
(4)常用内部函数的含义及使用方法
数学函数:
Abs(x) 求x 的绝对值,例:abs(-3.6) = 3.6
Sqr(x) 求x 的平方根,例:sqr(100) = 10
Int(x) 求≤x的最大整数例:int(3.6) = 3 int(--3.6) = --4
Rnd(x) 产生[0,1]之间的随机数(不包括1)
Randomize 称为随机种子命令。
为了能产生真正意义上的随机数,就需要在使用Rnd之前,执行一次Randomize命令。
因为Form_Load过程是在窗体装入是就执行的过程,所以Randomize常常写在这个过程里。
执行过Randomize之后,产生的随机数就不相同了。
LoadPicture返回图片对象。
格式:LoadPicture([], [size], [colordepth],[x,y])
Sin(x) 求X的正弦值例:Sin(3.14/6)≈0.5
Cos(x) 求X的余弦值例:Cos(3.14/3) ≈0.5
Tan(x) 求X的正切值例:Tan(3.14/4) ≈1
Atn(x) 求X的反正切值例:Atn(1) ≈0.785
Exp(x) 求以e为底,以X为指数的值例:Exp(1) =2.71828
Log(x) 求以e为底的X的对数例:Log(2.71828)=1
注意:使用三角函数时,参数应是弧度,如数学中sin300应写为:sin(30*3.14159/180)
字符串函数:
Len(字符串) 求字符串的长度例:Len(“hello”) = 5
Left(字符串,截取长度) 截取字符串左边部分例: Left(“hello”,2) = “he”
Mid(字符串,起始位置,截取长度)例:Mid(“hello”,2,2) = “el”
Right (字符串,长度) 截取字符串右边部分。
例: Right (“hello”,2) = “lo”
String(数值,字符) 生成指定长度与指定字符的字符串,例:String(3,”9”) = ”999”
常用转换函数:
Val(字符串)将字符串转换为数值
Str(数值) 将数值转换为字符串
Chr(字符代码)
Asc(字符)
Tab定位函数:
Tab[(n)] 可选的n 参数是在显示或打印列表中的下一个表达式之前移动的列数。
若省略此参数,则Tab 将插入点移动到下一个打印区的起点。
人机交互函数:
InputBox( ) 语法格式为:InputBox( 提示[,标题][,默认值][,X坐标][,Y坐标])
MsgBox( ) 语法格式为:MsgBox(提示信息[,按钮][,标题] )
4、程序的三种基本结构(顺序、分支、循环)
(1)顺序结构语句:赋值语句,print等。
程序设计的顺序结构
顺序结构:代码按照由上到下的顺序一行一行地执行。
程序执行过程中没有分支、没有重复,这种结构称为顺序结构。
例题:交换两个变量中的数据。
Private Sub cmdS()
Dim x As Single, y As Single
Dim m As Single
x = Val(txtsx.Text)
y = Val(txtsy.Text)
0m = x: x = y: y = m '交换数据
txtdx.Text = Str(x)
txtdy.Text = Str(y)
End Sub
Private Sub cmdEnd_Click()
End
End Sub
(2)分支结构语句:掌握简单两层嵌套的If条件语句。
程序设计的分支结构
行If语句
行If是指在一行中写完的If语句。
其一般格式为:
格式一:If条件Then语句
执行这种形式的If语句时,首先对条件进行判断。
若条件成立,则执行Then后面的语句;若条件不成立,则执行If语句后继程序行的语句
格式二:If条件Then 语句1Else 语句2
例题:输入三个不相同的数,求出其中最小数。
Private Sub Form_Click()
Dim a As Single, b As Single, c As Single
Dim Min As Single
a = InputBox("输入a", "输入框")
c = InputBox("输入c", "输入框")
If a < b Then Min = a Else Min = b
If c < Min Then Min = c
Print "最小数="; Min
End Sub
执行这种形式的语句时,先进行判断。
若条件成立,则执行语句1;否则执行语句2。
块If语句
上述If-then语句只能根据条件的真假是否执行一条语句,当Then部分与Else部分包含的内容较多时,则可选用“块If语句”结构。
格式三:If 条件Then
语句块
End If
例题:当从输入一个数时,当该数大于或等于60时显示"及格",该数小于60时显示"不及格"。
Private Sub Command1_Click()
Dim a As Single
a = Val(Text1.Text)
If a >= 60 Then
Label1.Caption = "及格"
End If
If a < 60 Then
Label1.Caption = "不及格"
End If
End Sub
格式四:If 条件Then
语句块1
Else
语句块2
End If
例题:编写程序,求函数Y的值(当x≤0时,y=3x+1;当x>0时,y=4x+1)。
Private Sub Form_Click()
Dim x As Single
Dim y As Single
x = Val(InputBox("请输入变量x"))
If x <= 0 Then
y = 3 * x + 1
Else
y = 4 * x + 1
End If
Print "y="; y
End Sub
(3)循环结构语句:掌握简单两层嵌套。
程序设计的循环结构
For-Next循环
For循环变量一般形式是:
For循环变量=初值To终值Step循环变量增量
循环体
Nxt循环变量
例题1:求s=1+2+3+4.....+100
Private Sub Form_Click()
Dim i As Integer
Dim sum As Integer
sum = 0
For i = 1 To 100
Next i
Print "sum="; sum
End Sub
Do-Loop循环
For-Next循环的次数是确定的,但是有的问题只知道循环结束的条件,重复执行的次数事先并不知道,这是需要Do-Loop循环
格式一:Do While 条件
循环体
Loop
例题:求最大公约数
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim r As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
r = a Mod b
Do While r <> 0
a = b
b = r
r = a Mod b
Loop
Text3.Text = Str(b)
End Sub
Private Sub Command2_Click()
End
End Sub
当VB执行Do While-Loop循环时,先判断指定的条件是否为真,当条件为真,执行循环体,条件为假时退出循环。
格式二:Do
循环体
Loop Until条件
这种循环的执行过程如图所示。
进入循环体后,先执行一次循环体A,然后再检查条件P是否成立。
如果不成立,就重复执行循环体A,直到条件P成立退出循环体。
人口达到或超过15亿?设现在人口为12.3亿。
Private Sub Form_Click()
Dim p As Single
Dim r As Single
Dim n As Integer
p = 1230000000#
r = 0.015
n = 0
Do
p = p * (1 + r)
n = n + 1
Loop Until p >= 1500000000#
Print n; "年后", "人口="; p
End Sub
5、算法要求:
(1)在程序中利用公式进行计算。
(2)编程求简单的分段函数的值。
(3)在程序中运用累加、计数、累乘。
(4)在程序中比较大小、求最值。
(5)在程序中用穷举法求不定方程的正整数解。
6、重要编程例题
必修1_15、编写程序,使能打印下面所示的图案。
*
**
***
**
*
程序:
Private Sub Form Click()
Dim i As Integer '定义i为整型变量
Dim j As Integer '定义j为整型变量
For i = -3 To 3
Print Tab(Abs(i)+5)
For j=1 To (4-Abs(i))-1
Print "*";
Next j
Print '换行
Next i
End Sub
必修2_15、编写程序,使能打印下面所示的图案。
*
***
*****
***
*
程序:
Private Sub Form Click()
Dim i As Integer '定义i为整型变量
Dim j As Integer '定义j为整型变量
For i = -3 To 3
Print Tab(Abs(i)+5);
For j=1 To 2*(3-Abs(i))-1
Print "*";
Next j
Print '换行
Next i
End Sub
必修3_15、编写程序,使能打印下面所示的图案。
@
@@
@@@
@@@@@@
程序:
Private Sub Form_Click()
Dim i As Integer
Dim j As Integer
For i = 1 To 6
Print Tab(10);
For j = 1 To i
Print “@”;
Next j
Print
Next i
End Sub
必修4_15、完善显示按钮的click程序,将代码段中“变量1“、“变量2.“变量3、处换成正确的变量名,使当单击该按钮时,Labell. Label2分别
显示30、10,
完成所有操作后,诸按“Ctrl+S”保存。
Private Sub Command_Click( )
x = 10
y = 30
If x < y Then
t = x
x = y
y = t
End If
Label1.Caption = x
Label2.Caption = y
End Sub
必修5_15、完善"判断"按钮的click程序,使当从Textl中输入一个数时,当该数大于或等于60时在Lebell中显示"及格",该数小于60时在Labell中显
示"不及格"。
完成所有操作后,诸按“Ctrl+S”保存。
Private Sub Command1_Click( )
Dim a As Single
a = Val(Text1.Text)
If a>=60 Then
Label1.Caption = “及格”
End If
If a < 60 Then
Label1.Caption = “不及格”
End If
End Sub
必修1_16、编写程序,求函数y的值(当x<=0时,y=3x+1;当x>0时,y=4x+1)。
程序:
Private Sub Form Click()
Dim x As Single '定义x为单精度型变量
Dim y As Single '定义y为单精度型变量
x =Val(InputBox("请输入变量x"))
If x <=0 Then
y = 3 * x + 1
Else
y = 4 * x + 1
End If
必修2_16、编写程序,求y=6x-5的值。
(x的值在程序中调用InputBox函数,在
弹出的标准输入对话框中输入)
程序:
Private Sub Form_Click()
Dim x As Single
Dim y As Single
x = Val(InputBox(“请输入变量x”))
y = 6*x – 5
Print “y=”;
End Sub
必修3_16、一只猴子摘了一堆桃子,它每天吃当天桃子数的一半,每次忍不住多
吃了一个。
这样到第十天时只有一个桃子可以吃了,编程计算猴子最
初共有多少个桃子。
完成所有操作后,诸按“Ctrl+S”保存。
程序:
Private Sub Form_Click()
Dim i As Integer
Dim s As Integer
s = 1
For i =1 To 9
s = (s + 1)*2
Next
Print “s=”;s
End Sub
必修4_16、完善按钮“计算7!”的Click事件程序,当单击命令按钮时Text1显示7!的值。
Private Sub Command1_Click( )
Dim a As Integer
Dim i As Integer
a = 1
For i = 1 To 7
a = a * i
Next i
Text1.Text = a
End Sub
必修5_16、请将按钮"计算1+2+……+100"的Click事件程序中的"常量"与"变量"换成
正确的常量与变量,当单击命令按钮时Text1显示1+2+"""+100的
值。
完成所有操作后,诸按“Ctrl+S”保存。
Private Sub Command1_Click( )
Dim a As Integer
Dim I As Integer
a = 0
For i = 1 To 100
a = a + i
Next i
Text1.Text = a
必修4_18、编写程序,当在Textl中输入x的值后,单击计算按钮,求y = |3x - 5|的值。
Private Sub Command1_Click( )
Dim x As Single
Dim y As Single
x = Text1.Text
Text2.Text = y
End Sub
必修5_18、在打开的窗体Forml中,在窗体中增加一个文本框Text3,在完整按
钮中的程序,使当单击"计算"按钮时,计算b*b一4ec的值,并在Text3
中显示出来。
Private Sub Command1_Click( )
Dim b As Single
Dim c As Single
Dim x As Single
b = Text1.Text
c = Text2.Text
x = b * b – 4 * c
Text3.Text = x
End Sub
必修1_17、编程计算s=1-2+3-4+5-……+99-100
程序:
Private Sub Form Click()
Dim s As Integer '定义变量s为整型变量
Dim i As Integer '定义循环变量
s = 0
For i=1 To 100
if int(i/2) <> i/2 Then
s = s + i
Else
s = s - i
End
Next i
Print "s=";s
End Sub
必修2_17、编写程序,求I+2+…+n>=500中最小的n
程序:
Private Sub Form_Click( )
Dim s As Integer
Dim n As Integer
s = 0
n = 0
Do
n = n + 1
s = s + n
Loop Until s > 500
Print “n=”;n
End Sub
必修3_17、编程计算s = 1*2+2*3+3*4+……+n*(n+1)的值,其中n =10
Private Sub Form_Click()
Dim s As Single
Dim i As Integer
s = 0
For i = 1 To 10
s = s + i * (i +1);
Next i
Print “s=”;s
End Sub
必修1_18、编程求:鸡与兔在一个笼里,共有腿100条,头40个,问鸡有几只,兔有几只?
程序:
Private Sub Form Click()
Dim Ji As Integer '鸡
Dim Tu As Integer '兔
Dim Leg As Integer '腿数
Dim Head As Integer '头数
For Ji=1 To 50
For Tu=1 To 25
Leg = Ji*2 + Tu*4 '计算腿
Head= Ji + Tu '计算头
If Leg = 100 And Head = 40 Then
Print "鸡=";Ji;"只", "兔=";Tu;"只"
End If
Next Tu
Next Ji
End Sub
必修2_18、编写递归函数求5!的值。
Public Function s(n As Integer) As Long
If n = 1 Then
s = 1
Else
s=n * s(n-1)
End If
End Function
Private Sub Form_Click()
Print “s(5)=”;s(5)
End Sub
必修3_18、编写递归函数求10!的值。
Public Function s(n As Integer) As Long
If n = 1 Then
s = 1
Else
s=n * s(n-1)
End If
End Function
Private Sub Form_Click()
Print “s(10)=”;s(10)
End Sub。