VB程序设计基本操作及常用算法功能

本篇文章针对《福建省教育厅关于公布福建省高职院校分类考试招生职业技能测试考试大纲(试行)的通知 _ 政策通知 _ 福建省高考综合改革 _ 福建省教育厅 (fujian.gov.cn)》VB模块进行编写,由于篇幅过长,函数部分单独写了一篇文章,分为上和下

下篇请戳《职业技能测试考纲VB模块复习(下)


– 考纲内容

星号为笔者感觉的难度,满分为五星⭐⭐⭐⭐⭐

三、Visual Basic程序设计
1.集成开发环境(IDE)及其主要窗口的使用;(⭐⭐)
2.应用程件;(⭐⭐⭐)
4.基本数据类型和运算符;(⭐⭐⭐⭐)
5.常量、变量、表达式的定义和使用;(⭐⭐⭐)
6.常用内部函数的使用;(⭐⭐⭐)
7.顺序程序设计;(⭐⭐⭐⭐)
8.赋值语句、结束语句的使用;(⭐⭐⭐)
序的建立、编辑、调试、运行和保存;(⭐)
3.窗体的常用属性、方法和事(⭐⭐⭐⭐)
9.Print语句的使用;(⭐⭐⭐⭐)
10.InputBox输入函数的使用;(⭐⭐⭐)
11.消息对话框MsgBox函数的使用;(⭐⭐⭐)
12.选择结构程序设计;(⭐⭐⭐⭐⭐)
13.逻辑表达式的正确书写;(⭐⭐⭐)
14.If语句和Select Case语句的使用;(⭐⭐⭐)
15.循环结构程序设计;(⭐⭐⭐⭐)
16.For、Do和While循环语句的使用;(⭐⭐⭐⭐)
17.数组的定义、初始化及基本应用;(⭐⭐⭐⭐)
18.标签框、文本框、命令按钮、复选框、单选框、列表框、计时器等常用组件的应用;(⭐⭐⭐⭐)
19.常用算法的实现:累加、累乘、求平均、求最大/最小值、条件计数、选择排序、冒泡排序、直接排序、顺序查找等。(⭐⭐⭐⭐⭐)

– 注意事项

考纲内容来源于《福建省高职院校分类考试招生计算机类 – 职业技能测试考试大纲(试行)》(2020),本文仅进行梳理,不对考纲进行任何修改,请以教育考试院发出的考纲为标准

考纲内容复习

时间很赶,落笔时间为庚子年 鼠己丑月 甲子日,真正下笔时间为辛丑年 庚寅月 癸巳日,写的不好还请谅解😁,文章如果有BUG可以直接在下方留言,看到会第一时间处理

常用控件属性使用

⚠:这里仅列出考试经常用的属性,实际上VB大多属性在属性框上都有说明,是个人都看得懂


常用控件属性

Caption:标题

Enable:可用不可用,当值为False时,控件为灰色(按钮)

Visiable:控件显示,当值为False时,控件不显示

Font:设置控件字体,大小,粗细等等

Height:控件的高度

Width:控件的宽度

Left:控件距离窗体左边缘的距离

Top:控件距离窗体上边距的距离

Index:控件数组(下标默认为空)

Tooltiptext:当你把鼠标放到控件上时所会显示所设置的文字

列表常用方法和属性

列表框默认下表为 0 ,列表框总长度表示 List1.listcount – 1

AddItem 方法 – 用于将“字符串”添加到文本框中

RemoveItem 方法 – RemoveItem(索引值) 用于删除指定项目

Clear方法 – 用于清空列表中的所有内容

List属性 – List(索引值) 用于返回列表的项

ListIndex属性 – 执行选中的列表项序号

ListCount属性 – 返回列表中的数量

Selected属性 – Selected(i) 如果为 True 这是一个布尔数组,用于判断列表是否被选中

Soted属性 – 排序字符串或数字

综合试题

案例说明

单击>将选中的List1添加到List2(如果List2已存在则弹出该项已存在)

单击>>将List1所有内容添加到List2,下面<和<<功能和上述的一样

单击“添加”按钮将text的内容添加到List(如果List已存在text则弹出该项已存在)

单击“删除”则将选中的项目删掉(如果没有选中则显示未选中)

添加按钮(第二个按钮自己改改)

For i = 0 To List1.ListCount - 1
     If List1.List(i) = Text1.Text Then
          MsgBox "该项已添加"
          Exit For
     End If
Next
If i = List1.ListCount Then
     List1.AddItem Text1
End If
text1=""

清空内容按钮(第二个按钮自己改改)

List1.Clear

删除按钮(第二个按钮自己改改)

If List1.ListIndex = -1 Then
     MsgBox "请选择要删除的项目"
     Exit Sub
End If
List1.RemoveItem (List1.ListIndex)

> 按钮

For i = 0 To List1.ListCount - 1
     If List2.List(i) = List1.List(List1.ListIndex) Then
          MsgBox "该项已添加"
          Exit Sub
     End If
Next
List2.AddItem List1.List(List1.ListIndex)

>> 按钮

For i = 0 To List1.ListCount - 1
     List2.AddItem List1.List(i)
Next
List1.Clear

– 基本语法

基本数据类型

当不确定类型时可以使用变体型变量(Variable),变体型变量可以存储所有系统定义的数据类型

常量

语法:const 常量名 = 常量值 as 类型(注:常量是不可改变的)

变量

语法:Dim 变量名 as 类型(在字符串类型后面加入星号表示一个固定的长度)

e.g: Dim a As String * 10(表示长度为10个String类型的a变量)

关于变量食用说明,一般情况下变量为私有变量,其他过程不能调用它,为了解决这个问题,只需要在变量面前加入public 变量名即可更改为全局变量

综上,我总结出以下几点

… …

常用算法实现

累加

1+2+3+4+5…=…

例题:求100以内的和,答案:5050

代码

For i = 1 To 100
     s = s + i
Next
Print s;
Do While i < 100
     i = i + 1
     s = s + i
Loop
Print s;
While i < 100
     i = i + 1
     s = s + i
Wend

累乘

1*2*3*4*5…=…

例题:累乘6以内的数,答案:720

代码

s = 1
For i = 1 To 6
     s = s * i
Next
Print s;
i = 1
s = 1
Do While i < 6
     i = i + 1
     s = s * i
Loop
Print s;

求平均值

代码

For i = 1 To 10
     s = Int(Rnd * (99 - 10 + 1)) + 10
     Sum = Sum + s
     Print s;
Next
Print
Print Sum / 10

求最大/最小值

给定两个数,如果第一个数比第二个数小,那么第二个数为最大值,自己去想

代码

a = 123
b = 321
c = 32
d = 21
Max = a ' 假设a为最大值
If b > Max Then
     Max = b
End If
If c > Max Then
     Max = c
End If
If d > Max Then
     Max = d
End If
Print "最大值是:" & Max
最小值则相反

拓展训练

求数组的最大/最小值,说明:随机生成五个数找出它的最大最小值

代码
Cls
For i = 0 To 4
     a(i) = Int(Rnd * (99999 - 10 + 1)) + 10
     Print a(i);
Next
Max = a(0): Min = a(0)
For i = 0 To 4
     If a(i) > Max Then Max = a(i)
     If a(i) < Min Then Min = a(i)
Next
Print "数组:" & s
Print "最大值:" & Max & "/最小值:" & Min

条件计数

例题:统计aabababaaabbbcccc其中a和b和c出现的次数

代码

Cls
s = "aabababaaabbbcccc"
For i = 1 To Len(s)
     res = Mid(s, i, 1)
     If res = "a" Then
          n = n + 1
     ElseIf res = "b" Then
          m = m + 1
     ElseIf res = "c" Then
          b = b + 1
     End If
Next
Print s
Print "a=" & n
Print "b=" & m
Print "c=" & b

例题:输出1到10内的素数

For j = 1 To 10
     s = 0
     For i = 1 To j
          If j Mod i = 0 Then
               s = s + 1
          End If
     Next i
     If s = 2 Then
          Print Str(j)
     End If
Next j

选择排序

首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。重复第二步,直到所有元素均排序完毕。

代码

Dim a(10)
For i = 1 To 10
     a(i) = Int(Rnd * (99 - 10 + 1)) + 10
     Print a(i);
Next
For i = 1 To UBound(a)
     Max = a(i)
     For j = i + 1 To UBound(a)
          If a(j) < Max Then
               Max = a(j)
               t = a(i)
               a(i) = a(j)
               a(j) = t
          End If
     Next
Next
Print
For i = 1 To 10
     Print a(i);
Next

冒泡排序

比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

代码

Dim a(10) As Integer
For i = 1 To 10
     a(i) = Int(Rnd * (99 - 10 + 1)) + 10
     Print a(i);
Next
For i = 1 To 10
     For j = 1 To 10 - i
          If a(j) > a(j + 1) Then
               t = a(j)
               a(j) = a(j + 1)
               a(j + 1) = t
          End If
     Next
Next
Print
For i = 1 To 10
     Print a(i);
Next

直接排序

这个原先没搞懂,后来查了N久,看到网上的解释是:直接排序用于将一个数插入到已经排好的数组,新得到的数组仍为有序数组(?)

代码

Dim a() As Integer, insert, i, n As Integer
Private Sub Command1_Click()
Cls
ReDim a(1 To 10)
Print "生成的数组:"
For i = 1 To 10
     a(i) = Int(Rnd * (101 - 1))
     Print a(i);
Next
End Sub
Private Sub Command2_Click()
Print
n = UBound(a) + 1
ReDim Preserve a(1 To n)
insert = Val(InputBox("请输入要插入的数字(默认插入到尾部):"))
a(n) = insert
Print "您插入的数字是" & insert
Print "排序过程如下:"
For i = 1 To n
     For j = 1 To n - i
          If a(j) > a(j + 1) Then
               t = a(j)
               a(j) = a(j + 1)
               a(j + 1) = t
          End If
     Next
     Print "第" & i & "趟排序:";
     For t = 1 To n
          Print a(t);
     Next
     Print
Next
End Sub

顺序查找

说明:给出一个数组 [1,2,4,5,6,3,3,22,1,34,5] 查出这个数组中的某一个数,返回它的位置

代码

Dim a(), key As Integer
a = Array(1, 2, 4, 5, 6, 3, 3, 22, 1, 34, 5)
For i = 1 To UBound(a)
     Print a(i);
Next
Print
t = -1
key = InputBox("请输入一个数:")
For i = 1 To UBound(a)
     If a(i) = key Then
          t = i
          Exit For
     End If
Next
If t >= 0 Then
     Print "这个数在第" & t & "位"
Else
     Print "没有这个数"
End If
文章《VB程序设计基本操作及常用算法功能》采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: www.bilibili.com
Source: ななひら
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
嘉然
ななひら
小恐龙
花!
上一篇
下一篇