VBA编程练习:生成25个随机数并进行自动排序(基于Access)

2022年10月14日13:48:46 科技 1515

算法练习要实现的目标

1.做1个窗体、包含两个文本框

2.在Access文本框里加入25个随机数字

3.要求数字不重复

4.按照从小到大排序

VBA编程练习:生成25个随机数并进行自动排序(基于Access) - 天天要闻

最终实现的效果


主要应用技术:

1.ForNext防止重复

2.冒泡算法排序

练习步骤

步骤1:制作输出端(窗体)

做两个文本框、两个按钮控件。一个文本框用于展示不重复的排列情况,另一个文本框用于展示有重复的情况。

VBA编程练习:生成25个随机数并进行自动排序(基于Access) - 天天要闻

VBA编程练习:生成25个随机数并进行自动排序(基于Access) - 天天要闻


步骤2:生成25个随机数(1-30),并要求不重复

代码如下

For i = 1 To 25

a(i) = Int(30 * Rnd + 1)

For j = 1 To i - 1 '这段是防止重复的代码

If a(i) = a(j) Then '如果重复了再次选择

i = i - 1

End If

Next j

Next i


步骤2技术要点是建立一个数组a,利用一个ForNext进行数组赋值。

难点是对25个随机数进行去重操作。方法是引入一个新变量j,每生成一个数字就跟上一个数字进行比较,如果相同就重新进行选择。利用的也是ForNext操作。


去重操作代码

For j = 1 To i - 1 '这段是防止重复的代码

If a(i) = a(j) Then '如果重复了再次选择

i = i - 1

End If

Next j


步骤3:用冒泡算法进行排序

冒泡算法的核心思想是引入一个中间变量t,不停地比较相邻的数字。冒泡算法核心思想是把大数往下压、小数往前挤出。如同气泡往前走一样。我会另外写一篇文章介绍冒泡算法,本文只做简单介绍。

代码如下:

For i = 1 To 25 - 1

For j = i + 1 To 25

If a(i) > a(j) Then

t = a(i) 't作为中间变量,冒泡算法常见

a(i) = a(j)

a(j) = t

End If

Next j

Next i


25个数字生成和数字排序设定在一个sub下,通过点击一次按钮即可操作


步骤4:对输入段进行分行操作

为了便于演示,25个数字要进行分行。每数到5进行一次回车。

tempStr是中间变量,用途是将数字分隔开,并逢5的倍数进行回车操作。运用If函数进行区分。

Chr(13)和Chr(10)是计算机的回车符号。


For i = 1 To 25

Text1 = Text1 + tempStr + CStr(a(i)) 'CStr转换成字符串

If i = 5 Or i = 10 Or i = 15 Or i = 20 Or i = 25 Then

tempStr = Chr(13) + Chr(10) + " " '换行

Else

tempStr = " "

End If

Next i

VBA编程练习:生成25个随机数并进行自动排序(基于Access) - 天天要闻

完整代码

Option Compare Database

Dim i As Integer

Dim j As Integer

Dim tempStr As String '中间变量,用于数列分行

Dim a(1 To 25) As Double '数组一共25个数字

Dim t As Double '中间变量,排序用



Private Sub Command1_Click()


Text1 = ""

tempStr = " "


'下面这段是生成不重复的25个数字,从1-30的数字里选择

For i = 1 To 25

a(i) = Int(30 * Rnd + 1)

For j = 1 To i - 1 '这段是防止重复的代码

If a(i) = a(j) Then '如果重复了再次选择

i = i - 1

End If

Next j

Next i


'这段是排序,运用冒泡算法

For i = 1 To 25 - 1

For j = i + 1 To 25

If a(i) > a(j) Then

t = a(i) 't作为中间变量,冒泡算法常见

a(i) = a(j)

a(j) = t

End If

Next j

Next i


'这段是在文本框里生成25个数字

For i = 1 To 25

Text1 = Text1 + tempStr + CStr(a(i)) 'CStr转换成字符串

If i = 5 Or i = 10 Or i = 15 Or i = 20 Or i = 25 Then

tempStr = Chr(13) + Chr(10) + " " '换行

Else

tempStr = " "

End If

Next i


End Sub


Private Sub Command2_Click()


Text2 = ""

tempStr = " "


'下面这段是生成的25个数字(有可能重复),从1-30的数字里选择

For i = 1 To 25

a(i) = Int(30 * Rnd + 1)

Next i


'这段是排序,运用冒泡算法

For i = 1 To 25 - 1

For j = i + 1 To 25

If a(i) > a(j) Then

t = a(i)

a(i) = a(j)

a(j) = t

End If

Next j

Next i


'这段是在文本框里生成25个数字

For i = 1 To 25

Text2 = Text2 + tempStr + CStr(a(i))

If i = 5 Or i = 10 Or i = 15 Or i = 20 Or i = 25 Then

tempStr = Chr(13) + Chr(10) + " "

Else

tempStr = " "

End If

Next i

End Sub


.

科技分类资讯推荐

苹果Vision Pro头显新专利:屏幕位置/角度随心调,提升佩戴舒适度 - 天天要闻

苹果Vision Pro头显新专利:屏幕位置/角度随心调,提升佩戴舒适度

【TechWeb】科技媒体PatentlyApple报道称,苹果公司最近获得了一项关于Vision Pro头显的新专利,该专利的目的是为了提升头显的佩戴舒适度。这项专利的核心创新在于允许用户根据个人偏好和需求调整屏幕的位置。专利描述显示,这款头显包含一个显示单元和一个固定带,用户可以通过固定带佩戴头显,让屏幕位于眼睛前方。头显配...
2025西门子Simcenter仿真与试验技术峰会在皖成功举办 - 天天要闻

2025西门子Simcenter仿真与试验技术峰会在皖成功举办

5 月 23 日,为期四天的 2025 西门子大中华区 Simcenter 仿真与试验技术峰会在合肥圆满落幕。大会以“工程创新,智启未来”为主题,汇聚千余位制造业行业精英、技术领袖,及西门子全球专家,聚焦仿真与试验前沿技术的发展与实践,共探人工智能 (AI) 与数字孪生双轮驱动的数智化产业变革趋势。 Simcenter —— 全维度仿真能...
华为鸿蒙折叠电脑预约量达11万 部分版本已显示缺货 - 天天要闻

华为鸿蒙折叠电脑预约量达11万 部分版本已显示缺货

【CNMO科技消息】据CNMO了解,截至5月22日午间,华为旗下售价23999元起的鸿蒙折叠电脑 ——HUAWEI MateBook Fold 非凡大师预约人数达到11万。该款折叠电脑于5月19日在nova 14系列及鸿蒙电脑新品发布会上正式推出。华为首款鸿蒙折叠电脑作为华为首款超薄折叠电脑,它重1.16kg,平展薄度为7.3mm,闭合薄度为14.9mm。其
真我 Neo7 Turbo 手机搭载 7200mAh 电池 + 100W 快充 - 天天要闻

真我 Neo7 Turbo 手机搭载 7200mAh 电池 + 100W 快充

IT之家 5 月 23 日消息,真我 Neo7 Turbo 手机将于 5 月 29 日 14:00 发布,realme 官方今日确认这款新机搭载 7200mAh 泰坦电池,支持 100W 快充。除此之外,这款新机还支持全场景旁路充电,游戏、视频、直播等多种场景边充边玩。IT之家注意到,今年 2 月发布的真我 GT7 Pro 竞速版手机便搭载旁路充电技术,宣称
逆境铸辉煌:美国打压下小米3纳米芯片横空出世 - 天天要闻

逆境铸辉煌:美国打压下小米3纳米芯片横空出世

在全球科技竞争的激烈浪潮中,近年来,美国为了维持自身科技霸权地位,对中国科技企业发起了一轮又一轮的打压,其手段不断升级,通过技术封锁、制裁禁令等一系列不合理举措,妄图遏制中国科技产业的蓬勃发展,阻碍中国科技崛起的步伐。
开源引擎Godot已为visionOS提供基本支持 - 天天要闻

开源引擎Godot已为visionOS提供基本支持

上个月,在开源游戏引擎 Godot 的 GitHub 代码仓库中,发生了一件备受瞩目的事情。visionOS 工程团队里的一位苹果员工,提交了一个规模庞大的拉取请求。这一请求意味着数千行代码被添加到 Godot 中,专门用于实现对 visionOS 平台的支持。与此同时,该员工还正式提交书面申请,希望将这些代码合并到 Godot 的主分支里。这一...
首发密集、消费场景上新……文博会亮点多多气象新 - 天天要闻

首发密集、消费场景上新……文博会亮点多多气象新

第二十一届文博会昨日在深圳开幕,六千多家政府组团、文化机构和企业线上线下参展,比上届增加265家。今天是文博会开幕的第二天,有哪些新品亮相?还有哪些亮点值得期待?总台央视记者 杜思源:在文博会的各个展区,都设有发布专区,每天大约有二十多场新品发布会在这里举行。首发密集打造文化新品超级发布平台除了专区,在...