搜档网
当前位置:搜档网 › VB基本算法

VB基本算法

VB基本算法
VB基本算法

VB基本算法

加书签收藏下载跳至底部↓

阅读:601次大小:32KB(共2页)

VB基本算法

主讲人:许洋

算法分类

数值算法和非数值算法。数值算法和非数值算法。常用算法:迭代、穷举、递推、VB基本算法

加书签收藏下载跳至底部↓

阅读:601次大小:32KB(共2页)

VB基本算法

主讲人:许洋

算法分类

数值算法和非数值算法。数值算法和非数值算法。常用算法:迭代、穷举、递推、递归、分解等

典型算法例子

(1)交换a,b的值 temp=a a=b b=temp 或者 temp=b b=a a=temp

(2) 求1 ~n 个自然数的累加和

s=0 for i=1 to n s=s+i ‘注意,此句是累加的关键。 next i

求一维数组各元素的和

s=0 for i=1 to n s=s+a(i) next i

求二维数组各元素的和

s=0 for i=1 to n for j=1 to m s=s+a(i,j) next j next i

求二维数组周边元素的和

s=0 For i=1 to N s=s+A(1,i)+A(M,i) Next i For i=2 to M-1 s=s+A(i,1)+A(i,N) Next i

求二维数组A(N,N)主对角线元素的和s=0 For i=1 to N S=s+A(i,i) Next I

求二维数组A(N,N)次对角线元素的和

s=0 For i=1 to N S=s+A( i, N+1-i ) Next i

(3) 求n! (求累乘积)

fact=1 For i=1 to n fact=fact * i Next i

(4) 求斐波那契数列

Dim fib( ) As Integer ’数组声明N=InputBox (“请输入要求的项数:”) Redim fib(n)

fib(1)=1:fib(2)=1 ’处理部分 For I=3 to n fib(I) = fib(I-1) + fib(I-2) Next I ’输出语句

Print “斐波那契数列的前”; n ; “项是:” For I = 1 to n Print fib(I); Next I

(5) 将一维数组的前N项颠倒

m=Int(n/2) For I=1 to m T=A(I) A(I)=A(n+1-I) A(n+1-I)=T Next I

(6) 删除数组A(N)中的第I 项元素

For J=I to N-1 A(J)=A(J+1) Next J N=N-1 Redim Preserve A(N)

(7)求两个数的最大公约数 (欧几里得算法)

do ’输入数据的合法性检查m=InputBox( “请输入m:”) n=InputBox(“请输入n”) if m < > 0 and n < > 0 then exit do print “data error! Reinput!” loop

(7)求两个数的最大公约数 (欧几里得算法)

do r=m mod n m=n n =r loop until r = 0 print “the GCD = ”; m

(8)求两个数的最小公倍数

t=m do while t mod n < > 0 ’判断t是n的倍数? t = t +m ’保证t是m的倍数loop print m ;”和”; n ; “的最小公倍数是:”; t

(9)求无穷级数的近似值

关键是找出通项表达式,例如:利用级数公式1+1/3^2+1/5^2+…+1/(2*n+1)^2求π的值,结束计算的条件是 n > 2000 (n 是项数) 或 an <= 0.00000001

程序代码如下:

s=1 : n=1 do while n<=2000 a=1/(2*n+1)^2 ’单项值s=s+a ’累加n=n+1 ’计数 loop until a<=1e-7 p=sqr(s*8) print “pi=”;p

(10)顺序检索

在50个同学的成绩中,找出某同学的成绩。 Dim A(50,2) As String For I=1 to 50 A(I,1)=InputBox(“请输入姓名”) A(I,2)=InputBox(“请输入成绩”) Next I Name=Inputbox(“输入要查找的学生姓名”)

在50个同学的数据中,找出某同学的成绩。

For I=1 to 50 If A(I,1)=Name then score=val(A(I,2)) ’记录分数 Exit for End If Next I

VB常用算法

常用算法 1.判断素数 素数是指只能被1与自己整除的数是素数,最小的素数是2,如3,5,7等都是素数判断方法一: Private Function Prime(N As Integer)As Boolean Dim i As Integer For i=2 To N-1(或sqr(N)或N\2) If N Mod i=0 Then Exit For Next i (或N/i=Int(N/i)) If i=N Then Prime=True End Function 判断方法二: Private Function Prime(N As Integer)As Boolean Dim i As Integer For i=2 To N-1 If N Mod i=0 Then Exit Function Next i Prime=True End Function (2)求最大公约数(欧几里德算法,辗转相除法) 最大公约数是指两个数最大的公约数 Private Function Gcd(byval m As Integer,ByVal n As Integer)As Integer Dim r As Integer r=m Mod n Do while r<>0 m=n n=r r=m Mod n Loop Gcd=n End Function 利用递归实现判断最大公约数 Private Function Gcd(ByVal m As Integer,ByVal n As Integer)As Integer Dim r As Integer r=m Mod n If r=0 Then Gcd=n ELse M=n n=r Gcd=Gcd(m,n) End If

VB程序设计的常用算法填空题

VB程序设计的常用算法 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If Then Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 m=inputBox("m=") n=inputBox("n=") nm=n*m If m < n Then r=m mod n Do While m=n n=r

VB常用算法介绍

常用算法介绍 VB 算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]围的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,……个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer

Dim i As Integer, p As Integer '产生100个[0,99]围的随机整数,每行10个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数字 If p = 0 Then p = 10 x(p) = x(p) + 1 Next i Form1.Print "统计结果" For i = 1 To 10

VB练习题

判断题: 1、VB中,每一种对象有着不同的属性设置,每一种对象能识别的事件也不同。(对) 2、Val(“123hello”) 和Val(“hello123”)返回值一样。(错) 3、赋值语句X=123+”123”和X=”123”+123中,X的值一样。(对) 4、赋值语句X=”123”+”123”和X=”123”+123中,X的值一样。(错) 5、执行Print 5*8 和Print “5*8 ”语句运行结果一样。(错) 6、标签框和文本框内容的最大区别就是在程序运行过程中标签框的内容不可编辑,而文本框的内容可编辑。(对) 7、用vb编写程序时,标签控件能代替文本框控件使用. (错) 8、VB程序代码中,Label1.Caption=””的作用是该标签框中得内容清除。(对) 9、变量名的长度最长可达1024个字符。(错)225个 10、sum和int.sum都可以作为VB的变量名。(错) 11、下列程序的运行结果是15 (对) Dim s as Double Dim i as Integer S=0 I=1 Do While i<=5 I=i+2 S=s+i Loop Label1.Caption=s 12、对于熟练的程序员,可以省略程序的调试过程。(错) 13、在VB中,使用if语句就可以根据条件改变程序的执行路径。(对) 14、VB编程的一般步骤应该是:分析问题——设计界面——编写代码——调试与运行程序。(对) 单项选择题 1、小明想用VB设计一个加法器程序,做了如下规划,下列说法错误的是。(D) A、程序运行时标题栏显示加法器 B、前两个标签框显示的内容分别为“+”和“=” C、Command1用来计算出结果 D、使用了三个命令按钮、两个标签框和三个文本框 2、从下面的对象属性可以看出,该对象的标题为(A)

算法与程序设计复习资料

江苏省高中信息技术算法与程序设计(选修) 复习要点 相关知识点 (一)算法 1.定义 1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。单选题 1、下列关于算法说法不正确的是( A ) A、算法独立于任何具体的语言,BASIC算法只能用BASIC语言来实现 B、解决问题的过程就是实现算法的过程 C、算法是程序设计的“灵魂” D、其它三项都正确 2.算法的描述方法: 1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。 2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。 3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。 4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。 相关题解: 单选题 1、图形符号" "在算法流程图描述中表示( B ). A 处理或运算的功能 B 输入输出操作 C 用来判断条件是否满足需求 D 算法的开始或结束 2、图形符号在算法流程图描述中表示( A ). A 处理或运算的功能 B 输入输出操作 C 用来判断条件是否满足需求 D 算法的开始或结束 3、以下哪个是算法的描述方法?( A ) A 流程图描述法 B 枚举法 C 顺序法 D 列表法

4、以下哪个是算法的描述方法?( D ) A 顺序法 B 列表法 C 集合法 D 自然语言描述法 (二)程序设计基础 (1)常用高级编程语言:BASIC、VB、Pascal、C、C++、Java 1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。 对象属性=属性值 对象中属性可以在设计界面时通过属性窗中设置,也可以在运行时通过程序代码设置方法如下 例:给文本框“Txt123”的“Text”属性赋值为字符串“20”,代码如下 Txt123.text =”20” 变量=对象.属性 如果要获取对象的状态或特性,这时就要读取对象的属性值,方法如下 例:读取文本框“txt123”的“Text”属性的代码如下 a = txt123.text

VB程序设计的常用算法

VB程序设计的常用算法 算法(Algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,……个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then

Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i); End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组 x(1),x(2),...,x(10)中,将统计结果打印出来 For i = 1 To 100 p = a(i) Mod 10 ' 求个位上的数 字 If p = 0 Then p = 10 x(p) = x(p) + 1 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" Next i End Sub 二、求两个整数的最大公约数、最小公倍数 分析:求最大公约数的算法思想:(最小公倍数=两个整数之积/最大公约数) (1) 对于已知两数m,n,使得m>n; (2) m除以n得余数r; (3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);

VB程序设计的常用算法教案.doc

VB程序设计的常用算法教案 算法(algorithm):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数。即个位是1的个数存放在x(1)中,个位是2的个数存放在x(2)中,......个位是0的个数存放在x(10)。 将程序编写在一个gettjput过程中,代码如下: public sub gettjput() dim a(1 to 100) as integer

dim x(1 to 10) as integer dim i as integer, p as integer '产生100个[0,99]范围内的随机整数,每行10个打印出来 for i = 1 to 100 a(i) = int(rnd * 100) if a(i) < 10 then form1.print space(2); a(i); else form1.print space(1); a(i); end if if i mod 10 = 0 then form1.print next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数,并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 for i = 1 to 100 p = a(i) mod 10 ' 求个位上的数字 if p = 0 then p = 10 x(p) = x(p) + 1 next i form1.print "统计结果"

VB程序设计的常用算法4

VB程序设计的常用算法4 十、数制转换 将一个十进制整数m转换成→r(2-16)进制字符串。 方法:将m不断除r 取余数,直到商为零,以反序得到结果。下面写出一转换函数,参数idec为十进制数,ibase为要转换成数的基(如二进制的基是2,八进制的基是8等),函数输出结果是字符串。 Private Function TrDec(idec As Integer, ibase As Integer) As String Dim strDecR$, iDecR% strDecR = "" Do While idec <> 0 iDecR = idec Mod ibase If iDecR >= 10 Then strDecR = Chr$(65 + iDecR - 10) & strDecR Else strDecR = iDecR & strDecR End If idec = idec \ ibase Loop TrDec = strDecR End Function 十一、字符串的一般处理1.简单加密和解密 加密的思想是:将每个字母C加(或减)一序数K,即用它后的第K个字母代替,变换式公式:c=chr(Asc(c)+k) 例如序数k为5,这时"A"→"F","a""f","B""G"…当加序数后的字母超过"Z"或"z"则c=Chr(Asc(c)+k -26) 例如:You are good→ Dtz fwj ltti 解密为加密的逆过程 将每个字母C减(或加)一序数K,即c=chr(Asc(c)-k), 例如序数k为5,这时"Z"→"U","z"→"u","Y"→"T"…当加序数后的字母小于"A"或"a"则c=Chr(Asc(c)-k +26) 下段程序是加密处理: i = 1: strp = "" nL = Len(RTrim(strI)) Do While (i <= nL) strT = Mid$(strI, i, 1) '取第i个字符 If (strT >= "A" And strT <= "Z") Then iA = Asc(strT) + 5 If iA > Asc("Z") Then iA = iA - 26 strp = strp + Chr$(iA) ElseIf (strT >= "a" And strT <= "z") Then iA = Asc(strT) + 5 If iA > Asc("z") Then iA = iA - 26 strp = strp + Chr$(iA) Else strp = strp + strT End If i = i + 1 Loop Print strp

VB常用算法——排序

VB常考算法(八)排序: 1、算法 1)选择法排序 算法说明:根据上例中求最小值的思路,我们可以使用如下方法进行从小到大排序:第一轮,以第一个元素逐个跟后面的所有元素比较,如果比后面的元素大就进行交换,经过一轮比较,第一个元素被确定为最小;同样的方法,下一轮以第二个元素跟剩下的所有元素进行比较确定下次小的元素;以此类推… 下面我们以图形的形式体现对5个数进行选择排序的过程: 第一轮:第二轮: 第三轮: 从上图可以发现对5个元素进行排序,总共经过了5-1=4轮,而每一轮中比较的次数也不相同,第一轮2、3、4、5号元素参与跟1号元素的比较,共4次,第二轮3、4、5号元素参与跟2号元素的比较,共3次,以次类推,比较次数逐步减少。经过四轮的比较,利用逐步求最小值的方法将5个数从小到大排好序。对于这样一个排序的过程,我们可以使用两个循环分别控制比较的轮数和每一轮的次数。 程序代码: Private Sub Command1_Click() Dim n As Integer n = InputBox("请输入数组元素的个数:") Dim a() As Integer, i As Integer, j As Integer Print "排序前:" ReDim a(n) For i = 1 To n a(i) = Int(Rnd * (99 - 10 + 1) + 10) Print a(i); 最小值 次小值

Next i For i = 1 To n - 1 For j = i To n If a(i) > a(j) Then temp = a(i) '交换元素 a(i) = a(j) a(j) = temp End If Next j Next i Print Print "排序后:" For i = 1 To n Print a(i); Next i End Sub 2)冒泡法排序 算法说明:相邻的元素进行比较,如果前面的元素比后面的元素大,则将它们进行交换,具体思路:设在数组a 中存放n 个元素,第一轮,将a(1)和a(2)进行比较,若a(1)>a(2),则交换这两个元素的值,然后继续用a(2)和a(3)比较,若a(1)>a(2),则交换这两个元素的值,以此类推,直到a(n-1)和a(n)进行比较处理后,a(n)中就存放了n 个数中最大的值;第二轮,用a(1)与a(2),a(2)与a(3),…,a(n-2)与a(n-1)进行比较,处理方法相同,这一轮下来,a(n-1)中存放n 个数中第二大的值;…;第n-1轮,a(1)与a(2)进行比较处理,确保最小值在a(1)中。经过n-1轮比较处理,n 个数已经按从小到大的顺序排列好。 下面我们以图形的形式体现对5个数进行冒泡排序的过程: 第一轮: 第三轮: 第四轮: 最大值

vb《算法与程序的设计》复习题-(1)

《算法与程序设计》复习题 一、选择题部分(100题) 一章一节:了解计算机解决问题的过程 1.用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序答案:B 2.学校要举行运动会,请你设计一个能够对运动员分数自动排序的软件,如果要设计此软件,以下最好的方法和步骤是()。 A、分析问题,编写程序,设计算法,调试程序 B、设计算法,编写程序,提出问题,调试程序 C、提出问题,设计算法,编写程序,调试程序 D、设计算法,提出问题,编写程序,调试程序 答案:C 3.下列步骤不属于软件开发过程的是()。 A、任务分析与系统设计 B、软件的销售 C、代码编写与测试 D、软件测试与维护 答案:B 4.用计算机解决问题的步骤一般为()①编写程序②设计算法③分析问题④调试程序。 A.①②③④ B.③④①② C.②③①④ D.③②①④答案:D 5.以下描述中最适合用计算机编程来处理的是()。 A、确定放学回家的路线 B、计算某个同学期中考试各科成绩总分 C、计算100以的奇数平方和 D、在因特网上查找自己喜欢的歌曲答案:C 6.以下问题中最适合用计算机编程处理的是()。 A、制定本学期的学习计划 B、计算正方形的周长 C、创作一首歌曲 D、求1000以的所有素数 答案:D 7.由“上车—掏钱—投币”所描述的问题是()。 A、无人售票车投币过程 B、乘公交车过程 C、上车过程 D、下车过程答案:A 一章二节:算法和算法描述 8.下面说确的是()。 A、算法+数据结构=程序 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构 答案:A 9.算法描述可以有多种表达方法,下面哪些方法不可以描述“水仙花数问题”的算法()。 A.自然语言 B.流程图 C.伪代码 D.机器语言答案:D 10.下面关于算法的说法错误的是()。 A、算法必须有输出 B、算法就是程序 C、算法不一定有输入 D、算法必须在有限步执行后能结束 答案:B 11.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、情况结构 C、流程结构 D、循环结构答案:D 12.算法的三种基本控制结构是分支结构、循环结构和() A、模块结构 B、情况结构 C、流程结构 D、顺序结构答案:D 13.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、循环结构 C、流程结构 D、情况结构答案:B 14.下面关于算法的认识正确的是()。 A、算法就是求解“鸡兔同笼问题” B、算法一定没有输出 C、算法就是计算机程序 D、算法的步骤必须是有限的答案:D

VB程序设计的常用算法

VB 程序设计的常用算法 算法( Algorithm ):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示计数、和、阶乘的变量的初值。 例:用随机函数产生100 个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0 的数的个数并打印出来。 本题使用数组来处理,用数组a(1 to 100)存放产生的确100个随机整数,数组x(1 to 10)来存放个位上的数字分别为1,2,3,4,5,6,7,8,9,0 的数的个数。即个位是1 的个数存放在x(1) 中,个位是2 的个数存放在x(2)中,...................... 个位是0的个数存放在x(10)。 将程序编写在一个GetTJput过程中,代码如下: Public Sub GetTJput() Dim a(1 To 100) As Integer Dim x(1 To 10) As Integer Dim i As Integer, p As Integer '产生100 个[0,99]范围内的随机整数,每行 1 0个打印出来 For i = 1 To 100 a(i) = Int(Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i);

VB程序设计的常用算法09

Visual Basic常用算法 从逻辑结构上看,应用程序= 算法+ 数据结构。 (1)数据结构(Data-Structure),计算机将数据元素依据某种逻辑联系进行存储和组织的方式。 许多大型系统的构造经验表明,系统实现的困难程度和系统构造的质量都严重依赖于是否选择了最优的数据结构。选择了数据结构,算法也随之确定,是数据而不是算法是系统构造的关键因素。这种洞见导致了许多种软件设计方法和程序设计语言的出现,面向对象的程序设计语言就是其中之一。 数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并由计算机程序处理的符号的总称。 (2)算法(Algorithm),由基本运算及规定的运算顺序所构成的完整解题步骤。 一个算法应该具有以下五个重要的特征: ①有穷性,算法必须保证执行有限步之后结束。 ②确切性,算法的每一步骤必须有确切的定义。 ③输入,算法有0个或多个输入,以描述运算量的初始值。0个输入是指算法本身包含了初始值。 ④输出,算法有一个或多个输出,以反映对输入数据加工后的结果。没有结果的算法是毫无意义的。 ⑤可行性,算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。 计算机科学家尼克劳斯-沃思曾著过一本著名的书《数据结构十算法= 程序》,可见算法在计算机科学界与计算机应用界的地位。 算法的描述:是对要解决一个问题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。 程序(Programme)就是用计算机语言描述的算法。流程图(Flow Charts)就是图形化的算法。解决同一问题可以有多种算法描述。实际问题的算法种类繁多,总体上可以分为两大类:数值算法和非数值法。 对VB程序语言设计的初学者,可能会感到掌握控件的使用不难,难得的是理解和掌握算法。但是,算法是程序的核心、编程的基础,离开算法,一事无成。我们将介绍常用的VB算法。

VB常用算法——素数

VB常考算法(三)素数: 1、算法说明 所谓素数是指只能被1和它本身整除的数。 1)判断某数是否为素数。根据循环控制变量来判断。 算法说明:根据素数只能被1和它本身整除的性质,我们可以使用循环依次判断2到n-1(或者Sqr(n))之间有没有被它整除的数,一旦有退出循环,退出循环后通过检验循环变量的值来判断是不是素数。即,当循环正常退出,循环变量的值等于n时,该数是素数;当循环提前退出,循环变量的值小于等于n-1,该数不是素数。 程序代码如下: Private Sub Command1_Click() Dim n As Integer, i As Integer n = Val(Text1.Text) If n < 1 Then MsgBox "请正确输入数据" Else n = Val(Text1.Text) For i = 2 To n - 1 If n Mod i = 0 Then Exit For Next i If i = n Then MsgBox n & "是素数" Else MsgBox n & "不是素数" End If End If End Sub 2)判断某数是否为素数。根据标志位flg来判断。 Private Sub Command1_Click() Dim n As Integer, i As Integer Dim flg As Boolean flg = True n = Val(Text1.Text) If n < 1 Then MsgBox "请正确输入数据" Else n = Val(Text1.Text) For i = 2 To n - 1 If n Mod i = 0 Then flg = False Next i If flg = True Then MsgBox n & "是素数" Else MsgBox n & "不是素数"

高中信息技术算法及程序设计VB(选修)

高息技术《算法与程序设计VB (选修)》 知识要点 相关知识点 (一)算法 1.定义 相关题解: 1算法:就是解决问题的方法和步骤。算法是程序设计的“灵魂”,算法+数据结构=程序。 单选题 1、运用计算机程序解决实际问题时,合理的步骤是(B )。 A 、设计算法→分析问题→编写程序→调试程序 B 、分析问题→设计算法→编写程序→调试程序 C 、分析问题→编写程序→设计算法→调试程序 D 、设计算法→编写程序→分析问题→调试程序 2.算法的描述方法: 1算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。 2自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。 3流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。 4伪代码描述法:是介于自然语言和计算机程序语言之间的一种算法描述。是专业软件开发人员常用方法。 相关题解: 单选题 1、图形符号" "在算法流程图描述中表示( B ). A 处理或运算的功能 B 输入输出操作 C D 算法的开始或结束 2、图形符号在算法流程图描述中表示( A ). A 输入输出操作 C 用来判断条件是否满足需求 D 算法的开始或结束 3、以下哪个是算法的描述方法?( A ) A 流程图描述法 B 枚举法 C 顺序法 D 列表法 4、以下哪个是算法的描述方法?( D ) A 顺序法 B 列表法 C 集合法 D 自然语言描述法

介于自然语言和计算机语言之间的一种算法描述是下列哪个选项?() A、伪代码 B、流程图 C、高级语言 D、VB 程序设计语言 (二)程序设计基础 (1)常用高级编程语言:BASIC、VB、Pascal、C、C++、Java 1面向对象的程序设计语言:其中的对象主要是系统设计好的对象,包括窗体等、控件等 2控件:是指工具箱中的工具在窗体中画出的、能实现一定功能的部件,如文本框,命令按钮等。 对象属性=属性值

VISUALBASIC常用算法汇总

VB常用算法(1):累加和连乘 1、算法说明累加形式:V=V+e连乘形式:V=V*e 其中:V是变量,e是递增表达式。累加和连乘一般通过循环结构来实现。 注意:需在执行循环体前对变量V赋初值。一般的,累加时置初值0;连乘时置初值为1. 举例求N!的结果。 Private Sub Command1_Click()Dim n%,i%,s& n=Val(InputBox("输入n"))s=1 For i=1To n s=s*i Next i Print s End Sub 错误的写法: Private Sub Command1_Click() Dim n%,i%,s& n=Val(InputBox("输入n")) For i=1To n s=1‘赋初值语句位置不对! s=s*i Next i Print s‘输出s的值为n,而不是n!End Sub 应用举例 根据下列公式,求自然对数e 的的近似值。 要求:误差小于0.00001 Private Sub Command1_Click() Dim i%,n&,t!,e! e=2 i=1 t=1 Do While t>0.00001 i=i+1 t=t/i e=e+t Loop Print"计算了";i;"项目和是:";e Print Exp(1)‘与上句输出值进行对比以证明算法的正确性 End Sub 解题技巧 1)由于这类题目往往是根据精度要求来求值,因此我们不能预知具体循环次数,所以这类题目一般用Do循环,很少用For循环。设定循环变量和通项变量,注意各变量的初值; 2)分解通项表达式中各因子,并分别将各因子用循环变量表示; 3)如果步骤2中有的因子比较复杂,难以直接用变量表示,此时可以考虑使用Function过程; 4)根据步骤1、2、3,写出通项表达式; 5)根据精度要求(往往是通项小于10负多少次方这样一个关系表达式),写出一条满足精度要求后跳出循环的语句。通常是用:if通项表达式>10^(-N)then exit do,注意这句话一般需放在累加或者连乘式之前。

VB程序设计的常用算法教案

VB程序设计的常用算法教案 算法(Algrith):计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问题或要完成一项任务所采 取的方法和步骤的描述,包括需要什么数据(输入什么数据、输出什么结果)、采用什么结构、使用什么语句以及如何 安排这些语句等。通常使用自然语言、结构化流程图、伪代码等来描述算法。 一、计数、求和、求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条,更要注意用来表示计数、和、阶 乘的变量的初值。 例:用随机函数产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,,6,7,8,9,0的 数的个数并打印出来。 本题使用数组来处理,用数组a存放产生的确100个随机整数,数组x来存放个位上的数字分 别为1,2,3,4,,6,7,8,9,0的数的个数。即个位是1的个数存放在x中,个位是2的个数存放在x中,……

个位是0的个数存放在x。 将程序编写在一个GetTput过程中,代码如下:PubliSubGetTput DiaAsInteger DixAsInteger DiiAsInteger,pAsInteger '产生100个[0,99]范围内的随机整数,每行10个打印出来 Fri=1T100 a=Int Ifa<10Then Fr1PrintSpae;a;

Else Fr1PrintSpae;a; EndIf Ifid10=0ThenFr1Print Nexti '统计个位上的数字分别为1,2,3,4,,6,7,8,9,0的数的个数,并将统计结果保存在数组x,x,,x中,将统计结果打印出来 Fri=1T100 p=a d '求个位上的数字 Ifp=0Thenp=10

VB常用算法

VB常用算法(二)最值问题- - 1、算法说明 在若干数中求最大值,一般先取第一个数为最大值的初值(即假设第一个数为最大值),然后,在循环体内将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值,直到循环结束。 求最小值的方法类同。 求若干数平均值,实质上就是先求和,再除以这些数的个数。 应用举例 随机产生n个1-100(包括1和100)的数,求它们的最大值、最小值和平均值。 Private Sub Command1_Click() Dim n As Integer, i As Integer, min As Integer, max As Integer, aver As Single, s As Integer n = Val(InputBox("输入个数:")) s = Int(Rnd * 100) + 1 max = s min = s aver = s Print "第1个数是:" & s For i = 2 To n s = Int(Rnd * 100) + 1 Print "第" & i & "个数是:" & s If s > max Then max = s If s < min Then min = s aver = aver + s Next i aver = aver / n Print "max="; max; "min="; min; "aver="; aver End Sub 解题技巧 最大值、最小值、平均值类型题目往往和数组放在一起考!有的不仅求这些值,还要对具有最大值或者最小值的行或列或者某个元素进行处理,这时就要在记录最大、最小值时,同时记录该值所在的行号和列号。 2、实战练习 1)补充代码(2000春二(9)) 本程序的功能是在二维数组中查找鞍点元素,即该元素在所在行中为最大,且在所在列中为最小。在一个数组中可能存在,也可能不存在这样的元素。数组各元素的值从文件data.txt中读取。 Private Sub Form_Click() Dim a(3,3) As Integer,i As Integer,j As Integer Dim maxvr As Integer,col As Integer, As Integer Open data.txt For Input As #1 For i=1 To 3 For j=1 To 3 Input #1,a(i,j) Print a(i,j); Next j Print Next i For i=1 To 3 maxvr= (1) col=1 For j=2 To 3 If maxvr

高中信息技术《算法与程序设计VB(选修)》

第一章算法与算法的描述 1.算法的定义 算法:就是解决问题的思想方法,对解题过程的精确描述。计算机解决问题的步骤为分析问题、设计算法、编写程序、调试程序。算法是程序设计的“灵魂”,最核心过程。 2.法的特征 一个算法应该具有以下五个重要的特征: 1、有穷性:一个算法必须保证执行有限步之后结束; 2、确定性:算法的每一步骤必须有确切的定义; 3、输入:一个算法有0个或多个输入,以刻画运算对象的初始情况,所谓0个输入是指算法本身定出了初始条件; 4、输出:一个算法有一个或多个输出,以反映对输入数据加工后的结果。没有输出的算法是毫无意义的; 5、可行性:算法中执行的任何计算步都是可以被分解为基本的可执行的操作步,即每个计算步都可以在有限时间内完成;(也称之为有效性) 3.算法的描述方法 算法的描述:可分多种表达方法,一般用自然语言、流程图和伪代码进行描述。 (1)自然语言描述法:指用人们日常生活中使用的语言(本国语言),用自然语言描述符合我们的习惯,且容易理解。 例1:求圆的周长和面积 算法如下:(自然语言描述法) (1)输入半径r ; (2) 计算周长c=2*π*r ; (3) 计算面积 s=π*r*r ; (4) 输出周长c,输出面积s ; (5) 结束 例2:工人每天工作8小时,每小时9元,超过8小时的每小时增加15%的加班费,计算工人每天的应发的日工资。(1)输入工作小时X (2)判断X值,分别计算 ●X小于8,工资=X*9 ●X大于8,工资=X*9+(X-8)*9*0.15 (3)输出工资 (4)结束 练习:求三个数中的最大数。(用自然语言描述) (2)流程图描述:也称程序框图,它是算法的一种图形化表示方法。且描述算法形象、直观,更易理解。

算法与程序设计综合评价练习题

算法与程序设计综合评价练习题 一、利用计算机解决问题的基本过程 判断题: 1、一个算法有一个或多个输出,但可以没有输入。()参考答案:正确。 2、我们常说的程序设计语言就是程序设计。()参考答案:错误。 3、一个算法可以用多种程序设计语言来实现。()参考答案:正确。 4、用计算机解决问题要经过分析问题——设计算法——编写程序——调试程序等基本过程。()参考答案:正确。单选题: 5、在日常生活中,我们常常会碰到许多需要解决的问题,以下描述中最适合用计算机编程来处理的是()。 A、确定放学回家的路线 B、计算某个同学期中考试各科成绩总分 C、计算10000以内的奇数的平方和 D、在因特网上查找自己喜欢的歌曲参考答案:C 6、以下不属于算法基本特征的是()。 A、可执行性 B、确定性 C、有穷性 D、无限性参考答案:D 7、生活中有许多工作可以通过编程来解决,但以下描述中,不宜使用编程来处理的是()。 A、编辑调查报告 B、机器人灭火比赛 C、导弹自动防御系统设置 D、山西省高中生学籍管理系统参考答案:A 8、一位爱好程序设计的同学,想通过程序设计解决“韩信点兵”的问题,他制定的如下工作过程中,最恰当的是()。 A、设计算法,编写程序,提出问题,运行程序,得到答案 B、分析问题,编写程序,设计算法,运行程序,得到答案 C、分析问题,设计算法,编写程序,运行程序,得到答案 D、设计算法,提出问题,编写程序,运行程序,得到答案参考答案:C 9、以下说法正确的是()。 A、算法+ 数据结构= 程序设计 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构 提示:程序=数据结构+算法是由N.Wirth(沃斯)提出来的。数据结构指的是数据与数据之间的逻辑关系,算法指的是解决特定问题的步骤和方法。参考答案:A 10、下列关于算法的描述错误的是()。 A、算法必须在有限步之内结束 B、算法的第一步必须有确切的含义 C、算法必须至少有一个输入 D、算法必须至少有一个输出参考答案:C 11、流程图是描述()的常用方式。 A、程序 B、算法 C、数据结构 D、计算规则参考答案:B 12、算法描述可以有多种表达方法,下面不属于算法描述的是()。 A、自然语言 B、流程图 C、伪代码 D、机器语言参考答案:D 13、在使用流程图描述算法时,表示变量的计算与赋值应使用的符号框为()。 A、矩形框 B、菱形框 C、平行四边形框 D、椭圆形框参考答案:A

VB常用算法总结

VB常用算法总结 一、变量值的交换 算法思想:若交换两个变量的值,必须引入第三个新的变量进行传递。 以下代码是错误的: X=12 :Y=34 :X=Y :Y=X 正确的代码是: X=12 :Y=23 :T=X :X=Y :Y=T 二、判断一个数是否能被另一个数整除 算法思想:可以用整除的定义(余数为0)或X除以Y等于X整除Y等表达式进行判断。 条件表达式可以为:X mod Y=0 或X\Y=X/Y 或Int(X/Y)=X/Y 如果以上条件表达式为True,则表示X能被Y整除。 三、累加、阶乘、计数和求平均值 算法思想:使用循环语句,并用一个变量存放累加的中间及最终结果。 注:累加求和时变量初值为0,计算阶乘时变量初值为1。 统计计个数(计数)时可用一个变量作为统计个数的累加变量,每次加1即可。 求平均值算法思想是先求和,再除以个数。 条件求和(或计数):在循环语句中加入If-End If判断语句。 例题:计算1到10之间所有整数的累加和以及10!。 n=10 sum=0 ‘累加求和时,变量的初值一定为0 prod=1 ‘累乘(连乘)时,变量的初值一定为1 For i=1 To n sum=sum+i prod=prod*i Next i Print sum,prod 例题:统计0—100之间能被3整除的数的个数、累加和及其平均值。 s=0 n=0 For i=0 To 100 If i mod 3 =0 Then s=s+i n=n+1 End If Next i Print n,s,s/n 四、随机数的产生 [a,b]之间的随机整数 Int((b-a+1)*rnd)+a (a,b)随机数 (b-a)*rnd +a 五、求若干个数中最大值或最小值 六、常用字符处理函数 Mid函数:从字符串指定位置取指定个字符,格式为Mid (字符,p,n) ,从第p个字符开始,向后截取n个字符(若n省略则取到最后)。 Left和Right函数:从字符串左边或右边取指定个字符,格式为Left (字符,n)和Right (字符,n)。 Len函数:测试字符串长度。 UCase和LCase函数:UCase将小写字母转换为大写字母;LCase将大写字母转换为小写字母。 Instr([首字符位置, ] 字符串1, 字符串2 [ , n]):在字符串1中查找字符串2,如果找到,返回字符串2的第一个字符在字符串1中出现的位置。首字符位置是可选的,如果不指定,从字符串起始位置开始查找;如果指明,从指定的位置开始查找。 Asc函数:返回字符串中第一个字符的ASCII码。 Chr函数:将一个数值转换为其所对应的字符。 字符的比较规则是按ASCII码顺序比较,规则为空格<”A”~”Z”<”a”~”z”

相关主题