VB算法集合,你一定用得着。
- 格式:doc
- 大小:49.00 KB
- 文档页数:4
1. 累加与连乘1、算法说明[分析]累加形式:V=V+e 连乘形式:V=V*e其中:V 是变量,e 是递增表达式。
累加和连乘一般通过循环结构来实现。
注意:需在执行循环体前对变量 V 赋初值。
一般累加时置初值0;连乘时置初值为1 [举例]求N!的结果。
Private Sub Comma nd1_Click()Dim n%, i%, s&n = Val(InputBox("输入 n"))s = 1For i = 1 To ns = s * iNext iPr int sEnd Sub[应用举例]根据下列公式,求自然对数 e 的的近似值Private Sub Comma nd1_Click()Dim i%, n&, t!, e!e = 2i = 1t = 1Do While t > 0.00001i = i + 1t = t / i e = e + tLoopPrint"计算了 "; i;"项目和是:";ePrint Exp(1)与上句输出值进行对比以证明算法的正确性End Sub2. 最值问题1、算法说明=1 + 一_ + — +一 + 1! 2! 3! + 1 = 1 + -1要求:误差小于0.00001在若干数中求最大值,一般先取第一个数为最大值的初值(即假设第一个数为最大值),然后,在循环体内将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值,直到循环结束。
求最小值的方法类同。
求若干数平均值,实质上就是先求和,再除以这些数的个数。
应用举例:随机产生n个1-100 (包括1和100)的数,求它们的最大值、最小值和平均值。
Private Sub Comma nd1_Click()Dim n%, i%, min%, max%, aver!, s%n 二 Val(lnputBox("输入个数:"))s = Int (Rnd * 100) + 1max = s : min = s : aver = sPrint"第1个数是:” & sFor i = 2 To ns = In t(R nd * 100) + 1Print"第” & i & ” 个数是:” & sIf s > max The n max = sIf s < min The n min = saver = aver + sNext iaver = aver/nPrin t "max="; max; " min二";min; "aver二";averEnd Sub解题技巧:最大值、最小值、平均值类型题目往往和数组放在一起考!有的不仅求这些值,还要对具有最大值或者最小值的行或列或者某个元素进行处理,这时就要在记录最大、最小值时,同时记录该值所在的行号和列号。
VB常用算法介绍在VB程序开发中,常常需要使用各种算法来处理数据和解决问题。
下面将介绍几种常用的VB算法,包括排序算法、算法和图算法等。
1.排序算法排序算法用来将一组数据按照一定的规则进行排列。
常见的排序算法包括冒泡排序、选择排序、插入排序、归并排序和快速排序等。
冒泡排序(Bubble Sort)是一种交换排序算法,通过不断地相邻元素比较和交换,将较大的元素逐渐交换到末尾,从而实现排序。
冒泡排序的时间复杂度为O(n^2)。
选择排序(Selection Sort)是一种排序算法,每次从待排序的数据元素中选择最小(或最大)的一个元素,放到已排序的序列的末尾。
选择排序的时间复杂度为O(n^2)。
插入排序(Insertion Sort)是一种排序算法,将数组元素分为已排序和未排序两部分,每次从未排序的部分中取出一个元素,插入到已排序的部分的适当位置。
插入排序的时间复杂度为O(n^2)。
归并排序(Merge Sort)是一种分治排序算法,将待排序的数据分为两个子序列,然后递归地对子序列进行排序,并将两个已排序的子序列合并成一个有序序列。
归并排序的时间复杂度为O(nlogn)。
快速排序(Quick Sort)是一种分治排序算法,通过一次划分将待排数据分成左右两个子序列,然后递归地对子序列进行排序。
快速排序的时间复杂度为O(nlogn)。
2.算法算法用来在一个数据集合中查找一些元素或满足特定条件的元素。
常见的算法包括线性、二分和深度优先。
线性(Linear Search)是一种简单的算法,从数据集合的第一个元素开始逐个比较,直到找到目标元素或遍历完整个集合。
线性的时间复杂度为O(n)。
二分(Binary Search)是一种在有序数据集合中查找目标元素的算法,通过每次将范围缩小一半来快速定位目标元素。
二分的时间复杂度为O(logn)。
深度优先(Depth-First Search,DFS)是一种用来在图或树结构中遍历所有节点的算法,从一个起始节点开始,先遍历一个邻接节点,然后再递归地遍历该邻接节点的邻接节点。
1、生成随机数Private Sub Command1_Click()Dim m As Integer, n As Integerm = Int(Rnd * 900+ 100)n = Int(Rnd * 900 + 100)Text1.Text = m Text2.Text = n End Sub2、生成30个数组3、Dim a(30) As IntegerPrivate Sub Command1_Click() randomizeFor i = 1 To 30a(i) = Int(Rnd * 101 + 100)Text1.Text = Text1.Text & Str(a(i)) Next I End Sub ’如果在text生成多行数组需要将text的multiline属性改为true 3、在picture里生成数组For i=1 to 5 for j =1 to 4A(i,j)=int(rnd*90)+10Picture1.print a(i,j); ’特别注意英文分号Next j picture1.print next i4、生成无重复的两位随机数Option Explicit’强制变量说明Option Base 1‘数组下限从1开始Private Sub Command1_Click()Dim a(10) As Integer, n As Integer, i As Integer, k As Integer Randomizea(1) = Int(90 * Rnd + 10)k = 1 Do n = Int(90 * Rnd + 10)For i = 1 To k If a(i) = n Then Exit ForNext I If i > k Then k = k + 1a(k) = n End If Loop Until k = 10For i = 1 To 10 Text1 = Text1 & Str(a(i)) Next I End Sub5、产生20个20~40之间的两位数,统计不同数据出现的次数Option ExplicitDim A(1 To 2, 1 To 10) As Integer, b(20 To 40) As Integer, i%, j%, n%Private Sub Command1_Click()For i = 1 To 2 For j = 1 To 10A(i, j) = Int(20 * Rnd + 20.5)Text1 = Text1 & A(i, j) Next jText1 = Text1 & vbCrLfNext I End Sub Private Sub Command2_Click()For i = 1 To 2 For j = 1 To 10b(A(i, j)) = b(A(i, j)) + 1Next j Next iFor i = 1 To 2 For j = 1 To 10Next j Next I For n = 20 To 40If b(n) <> 0 Then List1.AddItem n & "出现:" & b(n) & "次" Next n End Sub6、判断自首数Private Sub Command1_Click()Dim x As Long x = Val(Text1.Text)If verify(x) Then‘调用程序判断List1.AddItem x ElseMsgBox Str(x) & "不是自守数。
VB常用算法总结大全VB(Visual Basic)是一种对初学者友好的编程语言,因其简单易学的特点而受到很多人的喜爱。
在VB中,算法是编程过程中非常重要的一部分,它们用来解决各种问题,从简单的数学计算到复杂的数据处理。
本文将总结一些常用的算法,帮助VB程序员更好地应用于实际项目中。
一、排序算法1.冒泡排序冒泡排序是一种简单的排序算法,它通过不断地交换相邻的元素来对数据进行排序。
它的基本思想是从列表的第一个元素开始,依次比较相邻的两个元素,如果顺序不正确,则交换它们的位置。
重复这个过程,直到整个列表都已经排序。
2.快速排序快速排序是一种高效的排序算法,它通过选择一个基准元素,将列表分为两部分,一部分小于基准元素,一部分大于基准元素。
然后对这两部分分别进行快速排序,最后将它们合并在一起。
3.插入排序插入排序是一种简单直观的排序算法,它将列表分为已排序和未排序两部分,每次选择未排序部分的第一个元素,并插入到已排序部分的适当位置。
重复这个过程,直到整个列表都已经排序。
二、查找算法1.顺序查找顺序查找是一种简单的查找算法,它从列表的第一个元素开始,依次比较每个元素,直到找到目标元素或者遍历完整个列表。
2.二分查找二分查找是一种高效的查找算法,它要求列表已经排序。
它通过比较目标元素与列表中间元素的大小关系来确定要的部分,并缩小范围。
重复这个过程,直到找到目标元素或者确定列表中没有目标元素。
三、图算法1.深度优先(DFS)深度优先是一种用于图遍历的算法,它从一个起始点开始,沿着一个路径尽可能深地访问节点,直到遇到一个没有未访问过的相邻节点为止。
然后回溯到前一个节点,寻找其他路径。
2.广度优先(BFS)广度优先也是一种用于图遍历的算法,它从一个起始点开始,依次访问所有与起始点相邻的节点,然后再依次访问这些节点的相邻节点,直到遍历完图中的所有节点。
四、动态规划动态规划是一种解决多阶段决策问题的方法,它将问题分解为若干个阶段,并定义状态和决策。
vb常用算法介绍编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望(vb常用算法介绍)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为vb常用算法介绍的全部内容。
一、累加算法如果在设计过程中遇到求1+2+3+……+100等连加问题时,就可以用累加算法来解决.累加算法的一般做法是设一个变量 s,作为累加器使用,初值为0,设一个变量用来保存加数.一般在累加算法中的加数都是有规律可循,可结合循环程序来实现。
一个循环程序的设计,如果以下三方面确定下来:变量的赋初值、循环体的内容、循环结束条件,那么根据循环语句的格式,就很容易写出相应的循环程序。
例:求1+2+3++100的累加和,并打印输出分析:设累加器S,初值为0,加数用变量I表示当I=1时,累加器S= S+I = 0+1=1当I=2时,累加器S= S+I =1+2= 3当I=3时,累加器S=S+I =3+3 =6当I=4时,累加器S=S+I =6+4 =10……当I=100时,累加器S=S+100=1+2+3+……+99+100=5050不难看出,I的值从1变化到100的过程中,累加器均执行同一个操作:S=S+I,S=S+I的操作执行了100次,所以该程序段可写成:Dim I As Integer, S As IntegerS = 0 ‘给累加器s赋初值For S = 1 To 100S= S + I ‘I既作为循环变量,又作为加数Next IPrint "1+2+……100="; S考虑一下:语句Print ”1+2+……100="; S可以放在循环体中吗?延伸一下:上述算法对数值型数据,执行的是累加操作,如果对字符串型数据,完成的是字符串的连接。
VB常用算法总结在VB(Visual Basic)编程中,常用的算法有很多。
下面将对其中一些常见和重要的算法进行总结。
请注意,由于篇幅限制,这只是一个简要总结,无法涵盖所有算法的细节。
1.排序算法:排序算法是计算机科学中最基本和常见的算法之一、在VB中,常用的排序算法包括冒泡排序、插入排序、选择排序、快速排序和归并排序等。
排序算法通过比较和交换来对一组数据进行重新排列,使其按照指定的顺序排列。
2.查找算法:查找算法用于在一个数据集中寻找特定的值或元素。
在VB中,常用的查找算法有二分查找和线性查找等。
二分查找是一种高效的算法,可以在有序数组中快速地找到目标元素。
3.图算法:图算法是用于解决与图相关的问题的算法。
在VB中,常用的图算法包括广度优先(BFS)和深度优先(DFS)等。
这些算法可以用于寻找图中的路径、检测环和遍历图等操作。
4.动态规划:动态规划是一种用于解决最优化问题的算法。
在VB中,常用的动态规划算法有背包问题、最长公共子序列和最短路径等。
动态规划算法通过拆解问题为子问题,并保存子问题的解来避免重复计算,从而提高算法的效率。
5.字符串匹配:字符串匹配算法用于在一个字符串中查找另一个字符串。
在VB中,常用的字符串匹配算法有暴力匹配算法、KMP算法和Boyer-Moore算法等。
这些算法通过比较字符来确定字符串的匹配位置。
6.线性代数:线性代数是数学的一个分支,用于解决线性方程组和向量空间等问题。
在VB中,常用的线性代数算法有矩阵运算、向量运算和线性方程求解等。
这些算法可以应用于计算机图形学、数据分析和机器学习等领域。
7.数学运算:数学运算在VB编程中非常常见。
常用的数学运算算法包括求和、平均值、最大值、最小值和中值等。
这些算法可以通过循环和条件判断来实现。
8.加密与解密:加密和解密算法用于保护数据的安全性。
在VB中,常用的加密算法有对称加密算法(如DES和AES)和非对称加密算法(如RSA和ECC)等。
经典算法:1 求两个数的最大公约数和最小公倍数方法一:课本74页,辗转相除法(希望大家看到这个算法,能够理解程序的意思,比如考试出根据程序写结果或者程序填空题)方法二:两个数的最大公约数,然后满足能被这两个数整除,既余数都为0。
求最大公约数,根据数学原理,最大公约数是最大是两个数中小的那个数(比如4和8,最大公约数是4),最小是1(比如5和7,最大公约数是1),程序段如下Private Sub Form_Click()Dim n As Integer, m As Integer, r As Integer, i As Integern = InputBox("请输入第一个数")m = InputBox("请输入第二个数")r = IIf(n < m, n, m) 'iif函数的用法参见课本67页For i = r To 1 Step -1If n Mod i = 0 And m Mod i = 0 ThenPrint n & "," & m & "这两个数的最大公约是" & iExit ForEnd IfNext iPrint n & "," & m & "这两个数的最小公倍数是" & n*m/iEnd Sub2 判断一个数是否为素数,假定概数是n如果一个数是素数,那么它只能被1和它本身整除,所以该数除以2到n-1之间的所有余数都不为0,反之,该数除以2到n-1之间只要有一个余数为0,它就不是素数(这个时候就可以提前结束循环,肯定该数不是素数),所以循环的初值是2,终止时n-1,从数学原理终止为n/2,spr(n)都可以,其中n-1>n/2>spr(n),所以终止为spr(n)的循环次数最少方法一:如果是不素数提前结束循环,是素数,退出循环是循环变量的值不满足终止Private Sub Form_Click()Dim n%, i%n = InputBox("请输入一个数")For i = 2 To n - 1If n Mod i = 0 ThenPrint n & "不是素数"Exit ForEnd IfNext iIf i = n ThenPrint n & "是素数"End IfEnd Sub方法二:不管这个数是否为素数,假定它是素数,用一个变量(一般用flag)记住它是素数的状态(flag=1),否则反之flag=0Private Sub Form_Click()Dim n%, i%, flag%flag = 1n = InputBox("请输入一个数")For i = 2 To n - 1If n Mod i = 0 Thenflag = 0Exit ForEnd IfNext iIf flag = 1 ThenPrint n & "是素数"ElsePrint n & "不是素数"End IfEnd Sub3 找出1到300之间的所有素数,并且5个一行输出Private Sub Form_Click()Dim n%, i%, flag%n = 0For j = 3 To 300flag = 1For i = 2 To j - 1If j Mod i = 0 Thenflag = 0Exit ForEnd IfNext iIf flag = 1 ThenPrint j;n = n + 1If n Mod 5 = 0 Then PrintEnd IfNext jEnd Sub4例4-12教材80页,求把do while t>0.000001 改成 1//t>0.0000105 求1+3+5+7+……+100的和Private Sub Form_Click()Dim i%, sum% sum = 0)!12(1)1(....!71!51!3111--++-+--n nsum = sum + iNext iPrint "1+3+....+100=" & sumEnd Sub6.求1!+2!+3!+…..10!之和Private Sub Form_Click()Dim i%, sum!, f! ‘注意这里定义为单精度,否则产生错误sum = 0f = 1For i = 1 To 10f = f * isum = sum + fNext iPrint "1!+2!+....+10!=" & sumEnd Sub7打印九九乘法表.Private Sub Form_Click()Dim i%, j%For i = 1 To 9For j = 1 To 9se = i & "×" & j & "=" & i * jPrint Tab((j - 1) * 9 + 1); se;Next jPrint '每输入完一行,打印换行,继续输出下一行Next iEnd Sub打印下三角九九乘法表Private Sub Form_Click()Dim i%, j%For i = 1 To 9For j = 1 To ise = i & "×" & j & "=" & i * jPrint Tab((j - 1) * 9 + 1); se;Next jPrint '每输入完一行,打印换行,继续输出下一行Next iEnd Sub打印上三角九九乘法表Private Sub Form_Click()Dim i%, j%For i = 1 To 9se = i & "×" & j & "=" & i * jPrint Tab((j - 1) * 9 + 1); se;Next jPrint '每输入完一行,打印换行,继续输出下一行Next iEnd Sub8.猴子吃桃子。
VB常用算法大全在VB中实现常用算法是程序开发中非常常见的任务之一、下面将介绍几个常用的算法以及它们在VB中的实现方式。
1.冒泡排序算法:冒泡排序是一种简单直观的排序算法,它通过交换相邻元素来排序。
具体实现如下:```vbSub BubbleSort(arr( As Integer)Dim i As Integer, j As IntegerDim temp As IntegerFor i = LBound(arr) To UBound(arr) - 1For j = i + 1 To UBound(arr)If arr(j) < arr(i) Thentemp = arr(j)arr(j) = arr(i)arr(i) = tempEnd IfNext jNext iEnd Sub```2.快速排序算法:快速排序是一种高效的排序算法,它通过选择一个基准元素并将数组分为两部分来排序。
具体实现如下:```vbSub QuickSort(arr( As Integer, low As Integer, high As Integer)Dim i As Integer, j As IntegerDim pivot As Integer, temp As Integeri = lowj = highpivot = arr((low + high) / 2)While i <= jWhile arr(i) < pivoti=i+1WendWhile arr(j) > pivotj=j-1WendIf i <= j Thentemp = arr(i)arr(i) = arr(j)arr(j) = tempi=i+1j=j-1End IfWendIf low < j Then QuickSort arr, low, j End IfIf i < high Then QuickSort arr, i, high End IfEnd Sub```3.查找算法之二分查找:二分查找算法是一种在有序数组中查找指定元素的算法。
VB常用算法总结VB是一种基于Visual Basic语言的编程语言,广泛应用于Windows 操作系统环境下的软件开发。
在VB中,算法的选择和使用对于解决问题是至关重要的。
本文将对VB常用算法进行总结,希望能给读者提供一些编程的指导和参考。
一、排序算法排序算法是一类重要的算法,用于将一组无序的数据按照一定的规则进行排序。
VB中常用的排序算法有冒泡排序、选择排序、插入排序、快速排序等。
1.冒泡排序:从序列的第一个元素开始,依次比较相邻的两个元素,如果它们的顺序错误则交换位置,直到序列被完全排序。
2.选择排序:依次选择未排序序列中的最小元素,将其放到已排序序列的末尾。
3.插入排序:将一个记录插入到已排序好的序列中,从而得到一个新的、记录数增1的有序序列。
4.快速排序:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分小,然后分别对这两部分记录继续进行排序,直到整个序列有序。
二、查找算法查找算法用于在一组有序或无序的数据中寻找指定的元素。
VB中常用的查找算法有线性查找、二分查找、哈希查找等。
1.线性查找:从数据的开头开始,逐个比较每一个元素,直到找到目标元素。
2.二分查找:在有序序列中,每次将待查元素与中间位置的元素比较,如果相等则找到,否则将待查元素与中间位置的元素比较,直到找到目标元素或序列为空。
3.哈希查找:通过哈希函数将关键字映射到一个定长的数组上,当需要查找时,根据关键字计算出哈希地址,从数组中访问对应位置的元素。
三、图算法图算法主要用于解决图结构相关的问题,如最短路径、拓扑排序等。
VB中常用的图算法有深度优先、广度优先、Dijkstra算法等。
1.深度优先:从起始节点开始,递归地访问子节点,直到无法继续访问为止,然后回溯到上一级节点,继续访问其尚未被访问的子节点。
2.广度优先:从起始节点开始,依次访问其所有相邻节点,直到访问到目标节点为止。
3. Dijkstra算法:求解带权有向图中单源最短路径问题,通过使用一个优先队列来实现。
日期和时间函数
增减日期函数: DateAdd(要增减日期形式,增减量,要增减的日期)
例:计算2周后的日期:DateAdd("ww",2,#9/1/2006#),结果 "2006-9-15"求日期之差函数: DateDiff(要间隔日期形式,日期一,日期二)
例:计算生日还有多少天: DateDiff("d", Now, #12/1/2006#) ,结果为 74
&运算符比较运算符*运算符Eqv运算符+运算符Imp运算符-运算符Is运算符/运算符Like运算符\运算符Mod运算符^运算符Not运算符
Or运算符
Xor运算符
And运算符
数据类型
一、数值(Numeric)型数据(6种)
二、字符(String)型数据
三、布尔(Boolean)型数据
四、日期(Date)型数
五、对象(Object)型数据
六、可变(Variant)类型数据
整形%长整型&
双精度实型#单精度实型!
货币型@字符串型$
变量声明
Dim x As Double
常量声明
const x as string="123"
优先级运算运算符举例结果
高乘方 ^ 2 ^ 38取负 -:- 2 ^ 3-8
乘、除 * / 5 * 3 / 27.5
整除 \ 5 * 3 \ 27
求余 Mod 5 * 3 Mod 21低加、减 + -10 - 3 + (-2)5。
1、生成随机数Private Sub Command1_Click()Dim m As Integer, n As Integerm = Int(Rnd * 900+ 100)n = Int(Rnd * 900 + 100)Text1.Text = m Text2.Text = n End Sub2、生成30个数组3、Dim a(30) As IntegerPrivate Sub Command1_Click() randomizeFor i = 1 To 30a(i) = Int(Rnd * 101 + 100)Text1.Text = Text1.Text & Str(a(i)) Next I End Sub ’如果在text生成多行数组需要将text的multiline属性改为true 3、在picture里生成数组For i=1 to 5 for j =1 to 4A(i,j)=int(rnd*90)+10Picture1.print a(i,j); ’特别注意英文分号Next j picture1.print next i4、生成无重复的两位随机数Option Explicit’强制变量说明Option Base 1‘数组下限从1开始Private Sub Command1_Click()Dim a(10) As Integer, n As Integer, i As Integer, k As Integer Randomizea(1) = Int(90 * Rnd + 10)k = 1 Do n = Int(90 * Rnd + 10)For i = 1 To k If a(i) = n Then Exit ForNext I If i > k Then k = k + 1a(k) = n End If Loop Until k = 10For i = 1 To 10 Text1 = Text1 & Str(a(i)) Next I End Sub5、产生20个20~40之间的两位数,统计不同数据出现的次数Option ExplicitDim A(1 To 2, 1 To 10) As Integer, b(20 To 40) As Integer, i%, j%, n%Private Sub Command1_Click()For i = 1 To 2 For j = 1 To 10A(i, j) = Int(20 * Rnd + 20.5)Text1 = Text1 & A(i, j) Next jText1 = Text1 & vbCrLfNext I End Sub Private Sub Command2_Click()For i = 1 To 2 For j = 1 To 10b(A(i, j)) = b(A(i, j)) + 1Next j Next iFor i = 1 To 2 For j = 1 To 10Next j Next I For n = 20 To 40If b(n) <> 0 Then List1.AddItem n & "出现:" & b(n) & "次" Next n End Sub6、判断自首数Private Sub Command1_Click()Dim x As Long x = Val(Text1.Text)If verify(x) Then‘调用程序判断List1.AddItem x ElseMsgBox Str(x) & "不是自守数。
", vbInformation End If End Sub Private Function verify(x As Long) As BooleanDim y As Long, s As Integer, z As Integer verify = Falsey = x * x s = Len(CStr(x))If x = Val(Right(CStr(y), s)) Then verify = True End Function7、最大公约数1Private Sub Command2_Click()Dim m As Integer, n As Integer, s As Integerm = val(Text1.Text) n = (Text2.Text) Text3.Text = lcr(m, n) End Sub Function lcr(ByVal x As Integer, ByVal y As Integer)Dim a As Integera = x Mod y If a = 0 Then lcr = y Else x = y y = a lcr = lcr(x, y) End If End Function最大公约数2、Private Sub Form_Click() Dim m As Integer, n As Integer, r As Integer Do m = InputBox("输入一个数m")n = InputBox("输入一个数n")If m <> 0 And n <> 0 Then Exit Do Print "data error!" Loop Do r = m Mod n m = n n = r Loop Until r = 0Print "最大公约数是:"; m End Sub 8、最小公倍数Option Explicit Private Sub Command1_Click()Dim m As Integer, n As Integer, rAs Integerm = Val(Text1.Text)n = Val(Text2.Text)Do r = m Mod n If r <> 0 Then m = n n = r Else Exit Do End If LoopText3.Text = Val(Text1.Text) * Val(Text2.Text) / n End Sub9、判断素数并记录有几个素数Private Sub Command3_Click()Dim m As Integer, n As Integer, i As Integer, j As Integer, s As Integerm = Text1.Text n = Text2.Text s = 0 For i = 1 To m - 1If m Mod i = 0 Then Exit For Next I If m = i Then s = s + 1 End If For j = 1 To n – 1 If n Mod j = 0 Then Exit For Next jIf n = j Then s = s + 1 End If Text4.Text = s End Sub筛选素数For i = 1 To 30 For j = 2 To a(i)-1 If a(i) Mod j = 0 Then Exit For Next j If a(i) = j Then Text4.Text = Text4.Text & Str(a(i))End If Next I End Sub求N以内素数Private Sub Form_Click() Dim n As Integer, m As Integer, k As Integer, i As Integer n = InputBox("输入一个数n") m = 3 Do k = Int(Sqr(m)) i = 2 Do If m Mod i = 0 Then Exit DoElse i = i + 1 End If Loop Until i > k If i >= k + 1 Then Print mm = m + 1 Loop Until m > n End Sub 求大于N的最小素数Do n = n + 1 For i = 2 To n - 1If n Mod i = 0 Then Exit For Next iIf i >= n Then Text2.Text = nEnd If Loop Until Text2.Text <> ""Label2.Caption = "大于" & Val(Text1.Text) & "的最小素数是" End Sub10、找出100-999间的升序数(降序数)Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, r1 As Integer, r2 As Integer, r3 As IntegerFor i = 100 To 999‘可以换成数组一样 r1 = i \ 100 r2 = (i \ 10) Mod 10 r3 = (i Mod 100) Mod 10 If r1 < r2 And r2 < r3 ThenList1.AddItem iEnd If Next I End Sub11、交换两个数temp=text1.text: text1.text=text2.texttext2.text=tempText1.text=val(text1.text)+val(text2.text)Text2.text=text1.text-text2.textText1.text=text1.text-text1.text12、求矩阵最大(最小)元素及所在行列For i = 1 To 4 For j = 1 To 4a(i, j) = Int(10 * Rnd) + 1Picture1.Print a(i,j); Next j Picture1.Print Next I max = a(1, 1)For i = 1 To 4 For j = 1 To 4 If a(i, j) > max Then max = a(i, j) row = I col = j End If Next j Next I Text1.Text = max Text2.Text = row Text3.Text = col End Subinputbox输入矩阵,求出每一行最大最小数Private Sub Command1_Click()Dim a(4, 3) As Integer, i As Integer, j As Integer Dim max As IntegerFor i = 1 To 4 For j = 1 To 3a(i, j) = InputBox("请输入矩阵的第(" & i & " , " & j & ")元素", "输入矩阵元素")Picture1.Print a(i, j) Next jPicture1.Print Next iFor i = 1 To 4 max = a(i, 1) For j = 2 To 3 If max < a(i, j) Then max = a(i, j) Next j Picture1.Print "第" & i & "行最大的是:"; "a(" & i & " , " & j & ")="; maxNext I End Sub12、冒泡排序Private Sub cmdsort_Click()Dim rndarray(10) As Integer, i%, j%, temp As Integer RandomizePicture1.Print "排序前:"For i = 1 To 10rndarray(i) = Int(90 * Rnd + 10)Picture1.Print rndarray(i); Next iFor i = 1 To 9 For j = 1 To 10 - iIf rndarray(j) > rndarray(j + 1) Thent = rndarray(j + 1):rndarray(j + 1) = rndarray(j) rndarray(j) = t End If Next j Next i Picture1.Print Picture1.Print "排序后:"For i = 1 To 10 Picture1.Print rndarray(i); Next I Picture1.Print End SubPrivate Sub Command2_Click()Picture1.Cls List1.Clear Text1.SetFocus End Sub13、产生10个20~50之间的两位数,用二分法查找数,并输出排序后的位置Option Base 1 Dim rndarry(10) As Integer Private Sub Command1_Click(Index As Integer) Picture1.ClsDim i As Integer, j As Integer, temp As Integer Randomize Picture1.Print "排序前:"For i = 1 To 10 rndarry(i) = Int(90 * Rnd + 10) Picture1.Print rndarry(i);Next iFor j = 1 To 10 For i = 1 To 10 - jIf rndarry(i) > rndarry(i + 1) Thentemp = rndarry(i) rndarry(i) = rndarry(i + 1) rndarry(i + 1) = temp End If Next iNext j Picture1.PrintPicture1.Print "排序后" For i = 1 To 10 Picture1.Print rndarry(i);Next iPicture1.Print End SubPrivate Sub Command2_Click(Index As Integer)Dim sl as Integersl = 0 For i = 1 To 10If rndarry(i) = Val(Text1.Text) ThenText2.Text = "要查找的数是第" & i & "个数据。