VB高级编程100例
- 格式:pdf
- 大小:702.56 KB
- 文档页数:88
多媒体VB多媒体程序设计2000-09-03· ·余鑫铭··VB编程乐园p>Visual Basic for Windows(以下简称VB)是Windows下的应用程序开发工具,它从根本上改变了传统的程序设计模式,可以处理文本、图像、动画、声音等多媒体数据,因而被计算机界称为“最富有创新精神的编程工具之一”。
本文假定你已基本熟悉VB的编程环境和简单的程序设计方法,介绍VB多媒体编程的一些基本概念和方法,让你也能体验多媒体程序设计的乐趣。
如果你还未曾使用过VB(但肯定听说过),那么不妨赶快试一下,它的易用性会使你很快掌握的。
一、Visual Basic编程概述对于Microsoft Windows的用户来说,很少有其它产品能像VB那样激动人心,其重要原因就是VB是第一个真正能让不熟悉Windows的人编写Windows应用程序设计工具。
许多人都认为Windows程序设计非常复杂。
其实,这只是针对用C或Pascal语言编写程序的人来说的。
VB的出现为我们开辟了一条通向Windows程序设计高手的捷径。
在Windows推出初期,能够用来开发Windows应用软件的工具只有“Microsoft Windows Software Development Kit”,简称SDK。
虽然用SDK开发出来的应用软件对于用户来说是相当出色的,但对于程序员来说却是一件困难的事。
若使用SDK,程序员必须去编写创建窗口、菜单、字体、对话框以及其它各种对象,即使是编写最简单的程序。
因此对于大多数人而言,使用SDK开发软件除了必须具备C语言的经验以外,还要学习SDK提供的600个低层函数,然后方能进行编程,即使对于专业程序员来说,这也是一项十分困难、费时的工作,这种复杂性使得很多有兴趣进行Windows 编程的用户望而却步。
所以,有些程序员调侃SDK是Super Difficult Kit的缩写,这或许有些夸张,不过也很贴切地道出了使用SDK编程的复杂性。
VB常见20道编程代码哈哈哈20道编程代码1.1000以内的所有完数Private Sub Command1_Click()Dim n As IntegerDim i As IntegerDim s As LongFor n = 1 To 1000s = 1For i = 2 To n - 1If n Mod i = 0 Then s = s + iNext iIf s = n ThenText1 = Text1 & n & " "If k Mod 5 = 0 Then Text1 = Text1 & vbCrLfEnd IfNext nEnd SubPrivate Sub Command2_Click()EndEnd Sub2.百元买百鸡Private Sub Command1_Click()Dim i As IntegerDim j As IntegerFor i = 0 To 20For j = 0 To 33If 5 * i + 3 * j + (100 - i - j) * 1 / 3 = 100 ThenText1 = Text1 & "买" & CStr(i) & "只公鸡" & CStr(j) & "只母鸡" & CStr(100 - i - j) & "只⼩鸡" Text1 = Text1 & Chr(13) & Chr(10)End IfNext jPrivate Sub Command2_Click()EndEnd Sub3.不靠边元素和Private Sub Command1_Click()ClsRandomizeDim a(5, 5) As Integer, s%For i = 0 To 5For j = 0 To 5a(i, j) = Int(Rnd * 9)Print a(i, j) & ",";Sum = Sum + a(i, j)Next jPrintNext ik = SumSum = 0For i = 0 To 5Sum = Sum + a(i, 0) + a(i, 5) + a(0, i) + a(5, i) Next iSum = Sum - a(0, 0) - a(5, 0) - a(5, 5) - a(0, 5) Text1 = k - Sum End SubPrivate Sub Command2_Click()EndEnd Sub4.递归函数求斐波拉契数列Option ExplicitPrivate Sub Command1_Click()Dim a1, a2, b As IntegerDim i, n As Integern = InputBox("显⽰数列的前N项")a1 = 1For i = 1 To na2 = bNext iEnd SubPrivate Sub Command2_Click() EndEnd Sub5.各位数之和Private Sub Command1_Click() Dim i As String Dim j%Dim s%i = Text1For j = 1 To Len(i)st = Mid(i, j, 1)s = s + Val(st)Next jText2 = sEnd SubPrivate Sub Command2_Click() EndEnd Sub6.回⽂数Private Sub Command1_Click() Dim x$, y$, c$, i% x = Text1For i = 1 To Len(x)c = Mid(x, i, 1)y = c + yNext iIf y = x ThenText2 = "x是回⽂数"ElseText2 = "x不是回⽂数"End IfEnd SubPrivate Sub Command2_Click()Private Sub Command3_Click()EndEnd Sub7.级数求和Private Sub Command1_Click() Dim i As Integer, t As Long, s As Singlei = 0: s = o: t = 1Dos = s + 1 / ti = i + 1t = t * iLoop Until 1 / t < 0.000001Text1 = sEnd SubPrivate Sub Command2_Click()EndEnd Sub8.矩阵的转置Option ExplicitOption Base 1Dim i As IntegerDim j As IntegerDim a() As IntegerDim n As IntegerPrivate Sub Command1_Click()Text3.SetFocusn = Val(Text3)ReDim a(n, n) '动态数组For i = 1 To nFor j = 1 To na(i, j) = Int(10 * Rnd + 0) '随机数Text1 = Text1 & a(i, j) & " " '⼀⾏Next jText1 = Text1 & Chr(13) & Chr(10) '多⾏Next iEnd Subn = Val(Text3)ReDim b(n, n)For i = 1 To nFor j = 1 To nb(i, j) = a(j, i) '转置Text2 = Text2 & b(i, j) & " " '⼀⾏Next jText2 = Text2 & Chr(13) & Chr(10) '多⾏Next i End SubPrivate Sub Command3_Click()Text1 = ""Text2 = ""Text3 = "" '清除Text3.SetFocusEnd SubPrivate Sub Command4_Click()End '结束End SubPrivate Sub Form_Load()Text1 = ""Text2 = ""Text3 = "" '清除End Sub9.靠边元素和Private Sub Command1_Click()ClsRandomizeDim a(5, 5) As IntegerFor i = 0 To 5For j = 0 To 5a(i, j) = Int(Rnd * 9)Print a(i, j) & ",";Sum = Sum + a(i, j)Next jSum = 0For i = 0 To 5Sum = Sum + a(i, 0) + a(i, 5) + a(0, i) + a(5, i)NextSum = Sum - a(0, 0) - a(5, 0) - a(5, 5) - a(0, 5)Text1 = SumEnd SubPrivate Sub Command2_Click()EndEnd Sub10.冒泡排序Option ExplicitOption Base 1Dim a(10) As IntegerDim i As IntegerPrivate Sub Command1_Click()For i = 1 To 10a(i) = Int(90 * Rnd + 10)Text1 = Text1 & Str(a(i)) & " "If i Mod 5 = 0 Then Text1 = Text1 & Chr(13) & Chr(10) Next i End SubPrivate Sub Command2_Click()Dim j As IntegerDim t As IntegerFor i = 1 To 9For j = 1 To 10 - iIf a(j) < a(j + 1) Thent = a(j)a(j) = a(j + 1)a(j + 1) = tEnd IfNext jNext iIf i Mod 5 = 0 Then Text2 = Text2 & Chr(13) & Chr(10) Next i End SubPrivate Sub Command3_Click()Text1 = ""Text2 = ""End SubPrivate Sub Command4_Click()EndEnd Sub11.逆序数Private Sub Command1_Click()Dim a As StringDim i%Dim s As Stringa = Text1For i = 1 To Len(a)st = Mid(a, i, 1)s = st + sNext iText2 = sEnd SubPrivate Sub Command2_Click()EndEnd Sub12.判断素数Private Sub Command1_Click()Dim n As IntegerDim i As Integern = Val(Text1)If n = 1 ThenMsgBox (CStr(n) & "是素数")ElseFor i = 2 To n - 1MsgBox (CStr(n) & "是素数")ElseMsgBox (CStr(n) & "不是素数") End IfEnd IfEnd SubPrivate Sub Command2_Click()Text1 = ""End SubPrivate Sub Command3_Click()EndEnd Sub13.求阶乘(递归)Private Function f(ByVal n As Long) As Long Dim i As Integer f = 1If n = 0 Or n = 1 Thenf = 1ElseFor i = 1 To nf = f * iNext iEnd IfEnd FunctionPrivate Sub Command1_Click()Dim n As Longn = Val(Text1)Text2 = f(n)End SubPrivate Sub Command2_Click()Text1 = ""Text2 = ""End SubPrivate Sub Command3_Click()Private Sub Command1_Click() Dim n%, i%, m%n = Val(Text1)For i = 1 To nIf i = 1 ThenPicture1.PrintElseIf n Mod i = 0 ThenFor m = 2 To i - 1If i Mod m = 0 Then Exit For Next mIf m = i ThenPicture1.Print i,End IfPicture1.PrintEnd IfEnd IfNext iEnd SubPrivate Sub Command2_Click() Text1 = ""Picture1.ClsEnd SubPrivate Sub Command3_Click() EndEnd Sub15.⽔仙花数Private Sub Command1_Click() Dim a, b, c As IntegerFor a = 0 To 9For b = 0 To 9For c = 1 To 9End IfNext cNext bNext aEnd SubPrivate Sub Command2_Click()EndEnd Sub16.顺序查找Option ExplicitOption Base 1Dim a(10) As IntegerDim i As IntegerPrivate Sub Command1_Click()For i = 1 To 10a(i) = Int(90 * Rnd + 10)Text1 = Text1 & Str(a(i))If i Mod 5 = 0 Then Text1 = Text1 & Chr(13) & Chr(10) Next i End SubPrivate Sub Command2_Click()Dim x As Integerx = Val(Text2)For i = 1 To 10If a(i) = x Then Exit ForNext iIf i <= 10 ThenText3 = Str(x) + "在第" + Str(i) + "个位置"ElseText3 = "没有找到"End IfEnd SubPrivate Sub Command3_Click()Text1 = ""Private Sub Command4_Click()EndEnd Sub17.随机10个整数最值,均值,和Dim i As Integer Dim a(10) As IntegerPrivate Sub Command1_Click() RandomizeFor i = 1 To 10a(i) = Int(90 * Rnd + 10) Next iFor i = 1 To 10Text1 = Text1 & a(i) & " " Next iEnd SubPrivate Sub Command2_Click() Dim k As Integer Dim l As IntegerDim s As Integerk = a(1)For i = 2 To 10If a(i) > k Then k = a(i)Next iText2 = kl = a(1)For i = 2 To 10If a(i) < l Then l = a(i)Next iText3 = ls = 0For i = 1 To 10s = s + a(i)Next iText5 = sText4 = s / 10End SubPrivate Sub Command3_Click() EndEnd SubPrivate Sub Form_Load()18.字符统计Private Sub Command1_Click()Dim s As String, i%, m As String, n% s = Text1 n = 0For i = 1 To Len(s)m = Mid(s, i, 1)If m >= "a" And m <= "z" Thenn = n + 1End IfNext iText2 = nEnd SubPrivate Sub Command2_Click()EndEnd Sub19.最⼤公约数Private Sub Command1_Click()Dim m As IntegerDim n As IntegerDim k As Integerm = Val(Text1)n = Val(Text2)Dok = m Mod nm = nn = kLoop Until k = 0Text3 = CStr(m)End SubPrivate Sub Command2_Click()Text1 = ""Text2 = ""Text3 = ""End SubPrivate Sub Command3_Click()EndEnd Sub20.最⼩公倍数Option ExplicitPrivate Sub Command1_Click() Dim m%, n%, k% Dim m1%, n1%Dim s%m = Val(Text1): n = Val(Text2) m1 = m: n1 = n Dok = m Mod nm = nn = kLoop Until k = 0s = m1 * n1 / mText3 = sEnd SubPrivate Sub Command2_Click() Text1 = ""Text2 = ""Text3 = ""End SubPrivate Sub Command3_Click() EndEnd Sub。
VB编程题代码43例1、求100以内的素数。
Private Sub Form_Click()Dim i%, j%For i = 2 To 100For j = 2 To i - 1If i Mod j = 0 Then Exit ForNext jIf j = i Then Print iNext iEnd Sub2、从键盘输入任意长度的字符串,要求将字符顺序倒置,例如,将输入的“ABCDEFG”变换成“GFEDCBA”。
Private Sub Command1_Click()Dim a$, I%, c$, d$, n%a = InputBox$("输入字符串")n = Len(a)For I = 1 To Int(n \ 2)c = Mid(a, I, 1)Mid(a, I, 1) = Mid(a, n - I + 1, 1)Mid(a, n - I + 1, 1) = cNext IPrint aEnd Sub3、计算0~200之间所有能被11或5整除的数之和Private Sub Form_Click()Dim n%, i%n = 0For i = 1 To 200If i Mod 11 = 0 Or i Mod 5 = 0 Thenn = n + iEnd IfNext iPrint nEnd Sub4、输入一年份,判断它是否为闰年,并显示有关信息。
(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)Private Sub Command1_Click()Dim y%y = InputBox("请输入年数")If y Mod 4 = 0 And y Mod 100 <> 0 Or y Mod 400 = 0 ThenMsgBox (y & "年是闰年")ElseMsgBox (y & "年是平年")End If5、已知x,y,z 3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得x<y<z。
vb编程代码大全Visual Basic (VB) 是一种广泛用于软件开发的高级编程语言,可以用于开发 Windows 应用程序、Web 应用程序、数据库应用程序等。
在本文中,将介绍一些常用的 VB 编程代码,帮助初学者快速入门和提高编程水平。
一、基本数据类型1. 整型数据在 VB 中,整型数据可以使用 Integer 类型表示,范围为 -32,768 到32,767。
定义整型变量的代码如下:```Dim num As Integernum = 10```2. 浮点数据浮点数据可以使用 Single 或 Double 类型表示,分别表示单精度浮点数和双精度浮点数。
定义浮点变量的代码如下:```Dim num As Singlenum = 3.143. 字符串数据字符串数据可以使用 String 类型表示,可以存储文本数据。
定义字符串变量的代码如下:```Dim str As Stringstr = "Hello, World!"```二、控制流程1. If...Then...Else 语句If...Then...Else 语句用于根据条件执行不同的代码块。
例如:```Dim num As Integernum = 10If num > 0 ThenMsgBox("Num is positive.")ElseMsgBox("Num is negative.")End If2. For 循环For 循环用于重复执行一段代码。
例如:```For i = 1 To 10MsgBox(i)Next i```3. Do While 循环Do While 循环在满足条件时执行代码块。
例如:```Dim i As Integeri = 1Do While i <= 10MsgBox(i)i = i + 1Loop```三、数组1. 一维数组一维数组在 VB 中用于存储相同类型的多个元素。
Visual Basic编程教学100例控件及技巧利用VB三维面板控件设计流动条2000-09-15 00:00:00·王金柱·yeskyVB提供了一个三维面板控件,利用这个控件可设计图形效果的立体界面,从而使应用程序的界面显得更生动、美观,该控件还可以设置各种形式的背景,然后在背景上显示各种形式的字符,令人感兴趣的是,使用三维面板控件,还可设计我们经常在安装程序中看到的表示安装进程的流动条,并可显示进程百分比,改变流动条的颜色等。
一、介绍属性FloodColor:确定流动条的颜色,缺省为蓝色。
FloodPercent:显示当前过程如流动条进行的百分比,参数改变时显示的百分数和流动条的面积改变,设为一整型值,取值范围是0~100。
FloodShowpct:决定是否在三维面板控件上显示百分比,是一个逻辑值。
为True 时显示,为False时不显示。
FloodType:表示用户对三维面板控件的使用方式。
可取值有6个,如下所示:0缺省设置1表示流动条方向从左到右2表示流动条方向从右到左3表示流动条方向从上到下4表示流动条方向从下到上5表示使用指定的颜色从圆心向外画圆二、流动条设计如果在Windows3?X下,工具箱中不存在三维面板控件,可选择File菜单中的“Add File…”进行添加,在弹出的对话框中找到Windows\System目录,然后选定Threed?vbx文件即可,如果使用VB4.0,需在Tools菜单中选择Custom Controls命令,选定Sheridan 3d Controls项,按OK按钮,可在工具箱中增加三维面板控件。
启动VB3?0,在窗体中画一水平方向的长方形三维面板控件,按F4,在属性窗口中设置其Name为P3d、Bevellnner为2-Raised、FloodType为1、FloodshowPct 为True,再在窗体中画一个按钮Command1,双击该按钮,键入下面的代码:Sub Command1_Click()P3d?floodpercent=0For N%=1 To 100If N%$#@62;100 THENExit SubEnd IfP3d?FloodPercent=N%Next I%End Sub按F5,运行该程序,点击Command按钮,即可看到流动条效果。
在VB中播放AVI文件AVI文件是语音和影像同步组合在一起的文件格式。
在VB5?0中用MMControl多媒体控件设计播放AVI文件的程序步骤如下:1 新建一个工程。
2 在Form1上建立一个MMControl控件,并建立一个图片框。
3 设定MMControl对象的按钮属性。
4 撰写程序如下:Private Sub Form_Load()MMControl1.DeviceType=″avivideo″MMControl1.file name=″c:\vb\avi\a.avi″MMControl1.hWndDisplay=picture1.hWndmand=″Open″End Sub说明:1 DeviceType=″avivideo″,是设定MCI播放媒体的种类。
2 HwndDisplay=picture1.hWnd,是把AVI文件在图形框中播放,如果没有这一行,将自动开启一个窗口播放。
巧用VB编程使XMPLAYER自动播放VCD(缺少)用VB 5.0实现多画面播放功能2000-07-15· ·请作者与我们联系··学vb找王国荣font size=2>所谓动态画中画,指的是在大画面视频播放时,小画面在大画面中也播放另外的画面,或者是两个画面都在做某种活动。
笔者前段时间用VB 5.0开发了一个VCD播放程序,可以实现以下功能:(1)可以多屏播放,也就是画中画功能,可同时播放几个不同的画面;(2)可以同时播放CD-ROM中的视频音频文件(当然,在硬盘中播放速度会更快些);(3)支持多种文件格式(如.dat、.wav、.avi、.mov、.mmm、.mid、.rmi、.mpeg、.mpg、.mpa、.mpv等);(4)自带画面美观且功能齐全的CD播放程序;(5)增强了鼠标的右键功能,用它可以控制各画面的大小(1/16、1/4、1/2、1、2倍和全屏)、播放、暂停等;(6)控制声音、图像、时间/帧显示转换、自动重播等;(7)控制条随意拖动播放,再加上定时播放、自定义播放时间等播放方式,可使您更加惬意地控制VCD;(8)屏幕可随意拖动,画面可任意放缩。
1 求随机数最值、均值、和的问题Option ExplicitOption Base 1Dim i%, a(10) As Integer, s%, min%, max%Private Sub Command1_Click()Randomizemin = 100For i = 1 To 10a(i) = Rnd * 90 + 10s = s + a(i): Text1 = Text1 & a(i): Text1 = Text1 & vbCrLfIf a(i) > max Then max = a(i)If a(i) < min Then min = a(i)Next iEnd SubPrivate Sub Command2_Click()Text2 = maxEnd SubPrivate Sub Command3_Click()Text3 = minEnd SubPrivate Sub Command4_Click()Text4 = s / 10End SubPrivate Sub Command5_Click()Text5 = sEnd Sub2 求水仙花数Private Sub Form_click()Dim i As IntegerFor i = 100 To 999If (i \ 100) ^ 3 + ((i Mod 100) \ 10) ^ 3 + (i Mod 10) ^ 3 = i Then Print i Next iEnd Sub3 百元买百鸡问题Option ExplicitDim a!, b!, c!, i%, j%, k%Private Sub Form_click()a = InputBox("公鸡的单价")b = InputBox("母鸡的单价")c = InputBox("小鸡的单价")For i = 0 To 100 / aFor j = 0 To 100 / bk = 100 - i - jIf a * i + b * j + c * k = 100 Then Print i; j; k Next j, iEnd Sub4 求1000以内所有完数Private Sub Form_click()Dim s As Integer, i As Integer, j As IntegerFor i = 2 To 1000s = 0For j = 1 To i / 2If i Mod j = 0 Then s = s + jNext jIf i = s Then Print iNext iEnd Sub5 求各位数字之和Option ExplicitDim i%, a%, s%Private Sub Form_click()s = 0a = InputBox("请输入随机数")For i = 1 To Len(CStr(a))s = s + Mid(CStr(a), i, 1)Next iMsgBox a & " 的数字和为:" & sEnd Sub6 求最小公倍数Option ExplicitDim a%, b%, i%Private Sub Form_click()a = InputBox("请输入第一个数")b = InputBox("请输入第二个数")If a > b Then i = a: a = b: b = iFor i = a To 1 Step -1If a Mod i = 0 And b Mod i = 0 Then Exit For Next iMsgBox "最小公倍数为" & a * b / iEnd Sub7 求逆序数Option ExplicitDim a&, b&, i%Private Sub Form_click()a = InputBox("请输入随机数"):b = 0For i = 1 To Len(CStr(a))b = b & Mid(CStr(a), Len(CStr(a)) + 1 - i, 1)Next iMsgBox a & "的逆序数为:" & bEnd Sub8 级数有限项求和问题Option ExplicitDim s#, a!, i%Private Sub Form_click()s = 0: i = 2: a = 1 / 2Dos = s + ai = i + 2a = a / iLoop Until a < 0.000001Print sEnd Sub9 求质因子问题Option ExplicitDim a%, b%, s$, i%Private Sub Command1_Click()a = Text1i = 2DoIf a Mod i = 0 Then s = s & " " & i: a = a / i: i = i - 1i = i + 1Loop Until a = 1Text2 = sEnd Sub10 字符统计Option ExplicitDim i%, a(26) As Integer, x$Private Sub Command1_Click()x = Text1x = UCase(x)For i = 1 To Len(x)a(Asc(Mid(x, i, 1)) - 64) = a(Asc(Mid(x, i, 1)) - 64) + 1Next iFor i = 1 To 26If a(i) <> 0 Then Picture1.Print Chr(i + 64) & "的个数为:" & a(i) Next iEnd Sub11 判定素数过程Option ExplicitDim a As Integer, i As Integer, x As IntegerPrivate Sub Form_click()a = InputBox("请输入数字")If prime(a) ThenMsgBox a & "是素数"ElseMsgBox a & "不是素数"End IfEnd SubPrivate Function prime(x As Integer) As BooleanFor i = 2 To x - 1If x Mod i = 0 Then Exit ForNext iIf i = x Then prime = TrueEnd Function12 求最大公约数Option ExplicitDim a As Integer, b As Integer, i As Integer, m As Integer, n As Integer, t As Integer Private Sub Form_click()a = InputBox("请输入第一个数")b = InputBox("请输入第二个数")MsgBox a & "和" & b & "的最大公约数是" & zdgys(a, b)End SubPrivate Function zdgys(ByV al m As Integer, ByV al n As Integer) As IntegerDoIf m < n Then t = m: m = n: n = tm = m - nLoop Until m Mod n = 0zdgys = nEnd Function13 冒泡法排序Option ExplicitOption Base 1Dim a() As Integer, i As Integer, j As Integer, m As Integer, n As Integer, t As Integer Private Sub Form_click()n = InputBox("请输入数组的项数")ReDim a(n)RandomizeFor m = 1 To na(m) = Int(Rnd * 90) + 10Print a(m)Next mCall maopao(a())PrintFor m = 1 To nPrint a(m)Next mEnd SubPrivate Sub maopao(a() As Integer)For i = LBound(a) To UBound(a) - 1For j = LBound(a) To UBound(a) - iIf a(j) > a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = tNext j, iEnd Sub14 顺序查找过程Option Base 1Option ExplicitDim a() As Integer, i As Integer, j As Integer, m As Integer, n As Integer, x As Integer, t As Integer Private Sub Form_click()n = InputBox("请输入数组的项数")x = InputBox("请输入需要查找的数字")ReDim a(n)For i = 1 To na(i) = Int(Rnd * 90) + 10Print a(i)Next iPrintCall search(a(), x)End SubPrivate Sub search(a() As Integer, x As Integer)t = 0For i = 1 To nIf a(i) = x Then Print "第" & i & "个数为" & x: t = 1Next iIf t = 0 Then Print "找不到数字" & xEnd Sub15 判断回文数Option ExplicitDim a As String, x As Long, i As IntegerPrivate Sub Form_click()x = InputBox("请输入数字串")If huiwen(x) ThenMsgBox x & "是回文数"ElseMsgBox x & "不是回文数"End IfEnd SubPrivate Function huiwen(ByV al x As Long) As Booleana = CStr(x)For i = 1 To (Len(a)) \ 2If Mid(a, i, 1) <> Mid(a, Len(a) + 1 - i, 1) Then Exit For Next iIf i = (Len(a)) \ 2 + 1 Then huiwen = TrueEnd Function16 递归函数求阶乘Option ExplicitDim x As Long, a As Integer, n As IntegerPrivate Sub Form_click()n = InputBox("请输入数字")MsgBox n & "的阶乘为" & jc(n)End SubPrivate Function jc(ByV al n As Integer) As LongIf n = 0 Or n = 1 Thenjc = 1Elsejc = jc(n - 1) * nEnd IfEnd Function17 递归函数求斐波那契数列Option ExplicitDim a() As Integer, n As Integer, x As Integer, i As Integer Private Sub Form_click()n = InputBox("请输入显示的项数")For i = 1 To nPrint fi(i);Next iEnd SubPrivate Function fi(ByV al n As Integer) As IntegerIf n = 1 Or n = 2 Thenfi = 1Elsefi = fi(n - 1) + fi(n - 2)End IfEnd Function18 矩阵靠边元素之和Option ExplicitOption Base 1Dim a() As Integer, m As Integer, n As Integer, i As Integer, j As Integer Private Sub Form_click()Call shuruCall shengchengCall shuchuPrint "靠边元素之和为" & bs(a())End SubSub shuru()m = InputBox("请输入矩阵行数")n = InputBox("请输入矩阵列数")ReDim a(m, n)End SubSub shengcheng()For i = 1 To mFor j = 1 To na(i, j) = Int(Rnd * 9) + 1Next j, iEnd SubSub shuchu()For i = 1 To mFor j = 1 To nPrint a(i, j);Next jPrintNext iEnd SubFunction bs(a() As Integer) As Integerbs = 0For i = 1 To m Step m - 1For j = 2 To n - 1bs = bs + a(i, j)Next j, iFor j = 1 To n Step n - 119 矩阵不靠边元素之和Option ExplicitOption Base 1Dim a() As Integer, m As Integer, n As Integer, i As Integer, j As Integer Private Sub Form_click()Call shengchengCall shuchuPrint "不靠边元素之和为" & cs(a())End SubSub shuru()m = InputBox("请输入矩阵行数")n = InputBox("请输入矩阵列数")ReDim a(m, n)End SubSub shengcheng()For i = 1 To mFor j = 1 To na(i, j) = Int(Rnd * 9) + 1Next j, iEnd SubSub shuchu()For i = 1 To mFor j = 1 To nPrint a(i, j);Next jPrintNext iEnd SubFunction cs(a() As Integer) As Integercs = 0For i = 2 To m - 1For j = 2 To n - 1cs = cs + a(i, j)Next j, iEnd Function20 矩阵转置Option ExplicitOption Base 1Dim a() As Integer, n As Integer, i As Integer, j As Integer, t As Integer Private Sub Form_click()Call shuruCall shengchengCall shuchuCall rearrangeCall shuchuEnd Subn = InputBox("请输入矩阵行列数") ReDim a(n, n)End SubSub shengcheng()For i = 1 To nFor j = 1 To na(i, j) = Int(Rnd * 9) + 1Next j, iEnd SubSub shuchu()For i = 1 To nFor j = 1 To nPrint a(i, j);Next jPrintNext iEnd SubSub rearrange()PrintFor i = 1 To nFor j = 1 To it = a(i, j): a(i, j) = a(j, i): a(j, i) = t Next j, iEnd Sub。
vb编程代码大全1.数值:abs(num): 返回sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负hex(num): 返回值直接表示:&Hxx 最大8位oct(num): 返回值直接表示:&Oxx 最大8位sqr(num): 返回 num>0int(num): 取整 int(99.8)=99; int(-99.2)=100fix(num): 取整 fix(99.8)=99; fix(-99.2)=99round(num,n): 四舍五入取小数位 round(3.14159,3)=3.142 中点数值四舍五入为近偶取整 round(3.25,1)=3.2log(num): 取以e为底的 num>0exp(n): 取e的n次幂通常用 num^nsin(num): ,以为值计算 (角度*Pai)/180=弧度 con(num);tan(num); atn(num)2.:len(str):计算字符串xx 中文字符xx也计为一!mid(str,起始字符,[读取xx]):截取字符串中间子字符串left(str,nlen):从左边起截取nlenxx子字符串right(str,nlen):从右边起截取nlenxx子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成trim(str):去除字符串两端空格Ltrim(str):去除字符串左侧空格Rtrim(str):去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符 1;替代次数不限;比较方法区分大小写(0)InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符可选参数需同时选3.转换函数:Cint(str):转换正数 True -1;False 0;日期距离1899/12/31天数;时间上午段 0;下午段 1;Cstr(str):日期 yyyy/mm/dd;时间输出格式 Am/Pm hh:mm:ss Clng(str):与Cin()类似Cbool(num):num不为零 True;反之 FalseCdate(str):转换日期格式 0:#Am 12:00:00#;正数距离1899/12/31天数的日期;日期+小数时间Cbyte(num):num<255 转换为字节Csng(str):转换为数值Cdbl(str):转换为数值Ccur(str):转换为现金格式4.时间函数:date:取系统当前日期time:取系统当前时间now:取系统当前时间及日期值 Datetime类型timer:取当前时间距离零点秒值,,可计算时间差DateAdd(间隔单位,间隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date):输出日期值(按序列计算)Timeserial(time):输出时间值(按序列计算)Datevalue(datetime):取出字符串中日期值Timevalue(datetime):取出字符串中时间值weekday(date):计算星期几MonthName(date):输出月分名year(datetime):截取年份month(datetime):截取月份day(datetime):截取日hour(datetime):截取小时minute(datetime):截取分钟second(datetime):截取秒5.其它函数:Array(unit,..):动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符 Enter:Chr(13)&Chr(10)Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认) [包含]为false则取不包含的元素oin(ArrayName):将数组中元素字符串Ubound(ArrayName[,维数]):取得数组相应维数的上界Lbound(ArrayName[,维数]):取得数组相应维数的下界一般为0 Randmize n:启动Rnd(n):取得,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)子程序和自定义函数Sub StrSubName Function StrFunName(arg[1],..)子程序体函数体Exit Sub 中途跳出 Exit Function 中途跳出End Sub StrFunName=value 返回值End Function[call] StrSubName 引用子程序 Var=StrFunName(arg[1],..) 引用函数。
vb编程代码大全1.数值型函数:abs(num): 返回绝对值sgn(num): num>0 1; num=0 0; num<0 -1;判断数值正负hex(num): 返回十六进制值直接表示:&Hxx 最大8位oct(num): 返回八进制值直接表示:&Oxx 最大8位sqr(num): 返回平方根num>0int(num): 取整int(99.8)=99; int(-99.2)=100fix(num): 取整fix(99.8)=99; fix(-99.2)=99round(num,n): 四舍五入取小数位round(3.14159,3)=3.142 中点数值四舍五入为近偶取整round(3.25,1)=3.2log(num): 取以e为底的对数num>0exp(n): 取e的n次幂通常用num^nsin(num): 三角函数,以弧度为值计算(角度*Pai)/180=弧度con(num); tan(num); atn(num)2.字符串函数:len(str):计算字符串长度中文字符长度也计为一!mid(str,起始字符,[读取长度]):截取字符串中间子字符串left(str,nlen):从左边起截取nlen长度子字符串right(str,nlen):从右边起截取nlen长度子字符串Lcase(str):字符串转成小写Ucase(str):字符串转成大写trim(str):去除字符串两端空格Ltrim(str):去除字符串左侧空格Rtrim(str):去除字符串右侧空格replace(str,查找字符串,替代字符串,[起始字符,替代次数,比较方法]):替换字符串注:默认值:起始字符1;替代次数不限;比较方法区分大小写(0)InStr([起始字符,]str,查找字符串[,比较方法]):检测是否包含子字符串可选参数需同时选返回起始位置InStrRev(str,查找字符串[,起始字符][,比较方法]):反向检测是否包含子字符串返回起始位置space(n):构造n个空格的字符串string(n,str):构造由n个str第一个字符组成的字符串StrReverse(str):反转字符串split(str,分割字符串[,次数][,比较方法]):以分割字符串为分割标志将字符串转为字符数组可选参数需同时选3.数据类型转换函数:Cint(str):转换正数True -1;False 0;日期距离1899/12/31天数;时间上午段0;下午段1;Cstr(str):日期输出格式yyyy/mm/dd;时间输出格式Am/Pm hh:mm:ssClng(str):与Cin()类似Cbool(num):num不为零True;反之FalseCdate(str):转换日期格式0:#Am 12:00:00#;正数距离1899/12/31天数的日期;浮点数日期+小数时间Cbyte(num):num<255 转换为字节Csng(str):转换为单精度数值Cdbl(str):转换为双精度数值Ccur(str):转换为现金格式4.时间函数:date:取系统当前日期time:取系统当前时间now:取系统当前时间及日期值Datetime类型timer:取当前时间距离零点秒值,计时器,可计算时间差DateAdd(间隔单位,间隔值,日期):推算相邻日期DateDiff(间隔单位,日期一,日期二):计算时间差日期二-日期一Datepart(间隔单位,日期):计算日期的间隔单位值Dateserial(date):输出日期值(按序列计算)Timeserial(time):输出时间值(按序列计算)Datevalue(datetime):取出字符串中日期值Timevalue(datetime):取出字符串中时间值weekday(date):计算星期几MonthName(date):输出月分名year(datetime):截取年份month(datetime):截取月份day(datetime):截取日hour(datetime):截取小时minute(datetime):截取分钟second(datetime):截取秒5.其它函数:Array(unit,..):动态生成数组Asc(str):输出字符串第一个字符的ASCII码Chr(asc):转换ASCII为字符Enter:Chr(13)&Chr(10)Filter(数组名称,关键字符串,[,包含][,比较方法]):将字符串数组中含有关键字符串的元素存成新的数组(默认)[包含]为false则取不包含的元素oin(ArrayName):将数组中元素连成字符串Ubound(ArrayName[,维数]):取得数组相应维数的上界Lbound(ArrayName[,维数]):取得数组相应维数的下界一般为0Randmize n:启动随机数种子Rnd(n):取得随机数,n>0或为空,取序列下一随机值,n<0,随机值相同,n=0,生产与上一随机值相同的数取介于A和B之间的随机正数C,公式:C=Int((B-A+1)*Rnd+A) 条件(B>A)子程序和自定义函数Sub StrSubName Function StrFunName(arg[1],..)子程序体函数体Exit Sub 中途跳出Exit Function 中途跳出End Sub StrFunName=value 返回值End Function[call] StrSubName 引用子程序Var=StrFunName(arg[1],..) 引用函数。
1.九九乘法表Dim a(1 To 9, 1 To 9) As IntegerFor i = 1 To 9For j = 1 To 9a(i, j) = i * jPrint ; i & "*" & j & "=" & a(i, j),NextPrintNext2.将123改为321Dim a$, i%, c$, d$, n%a = InputBox$("输入字符串")Print a,n = Len(a)For i = 1 To Int(n / 2)c = Mid(a, i, 1)Mid(a, i, 1) = Mid(a, n - i + 1, 1)Mid(a, n - i + 1, 1) = cNext iPrint a3.交换A B数值Dim a, b, ka = InputBox("输入一个数")b = InputBox("输入一个数")k = bb = aa = kPrint a, b4.编程将一维数组A(10)中的数组元素循环向后移动一个位置,最后一个元素移到第一个元素位置上。
Dim a(10) As Long Private Sub Form_Click() n = 10 For i = 0 To n a(i) = i Next k = a(n) For i = 0 To n Print a(i); Next Print For i = n To 1 Step -1 a(i) = a(i - 1) Next a(0) = k For i = 0 To n Print a(i); Next End Sub5.给定随机数中找出最大值Dim a(10) As Double Private Sub Form_Click() n = 10 For i = 0 To n a(i) = Rnd Next m = a(1) For i = n To 1 Step -1 If a(i) > m Then m = a(i) Next Print m End Sub6.计算本本利和Dim n As Integer, p As IntegerDim r As Single, p1 As Singlep = 1000n = 3r = 0.02p1 = p * (1 + r) ^ np1 = Int(p1 * 100 + 0.5) / 100Print "本利和为;", p17.编写一个程序,用户连续输入N个值,直到输入-1为止,最后输出其中最大的一个数。