




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常用算法总结一、变量值的交换算法思想:若交换两个变量的值,必须引入第三个新的变量进行传递。以下代码是错误的: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 或 XY=X,Y 或 Int(XY)=X.'Y如果以上条件表达式为Tee,则表示X能被Y整除。三、累加、阶乘、计数和求平均值算法思想:使用循坏语句,并用一个变量存放累加的中间及最终结果。注:累加求和时变量初值为0,
2、计算阶乘时变量初值为1。统计个数(计数)时可用一个变量作为统计个数的累加变量,每次加1即可。求平均值算法思想是先求和,再除以个数。条件求和(或计数):在循坏语句中加入If-End If判断语句。例题:计算1到10之间所有整数的累加和以及10!。n=10sum=0'累加求和时,变量的初值一定为0prod=l'累乘(连乘)时,变量的初值一定为1For i=l To nsum=sum+i 'prod 是0!Next iPrint sum.piod右边尝试写出:求l!+2!+3!+4!+5汁6汁7!+8汁9!+10!的代码。例题:统计0100之间能被3整除的数的个数、累加和及其
3、平均值。s=0n=0For 1=0 To 100If 1 mod 3 =0 ThenEnd IfNextiPrint n,s,s/n四、对数组中的元素逐一进行操作算法思想:在VB中,对于数组中元素的操作,往往使用到For循环。数组定义: Dim数组名(下标下界To下标上界)例如:1)组中的元素逐一进行操作(用For循坏)Dun a(l to 100) As IntegerFor i=l To 100a(i)Next i2)对于二维数组,要使用For循环的嵌套实现对数组中元素的操作,其中外层循环变量控 制第一维下标的变化,内层循环变量控制第二维下标的变化,例如:Dun a(l to 2,1 to
4、 3) As IntegerFor i=l to 2For j=l to 3a (ij)Next jNext i五、交换数组元素算法思想:若某一维数组有n个元素,将第1个元素和第n个元素交换,将第2个元素和第ml个元素交换,需要交换n2次(如果交换n次,则回到初始状态);例题:交换一维数组(5个元素)的元素值b=Array(l, 3, 5, 7, 9)'数组初始化,b(0)=l,b(4)=9For i = 0 To 5 2tmp = b(i)呃)= tmpNext i例题:一维数组元素交换的通用代码:Dun d(l to n) as IntegerFor i =1 To n 2t =
5、b(i)b(i) = b(n)b(n) = tNext i六、求数组元素中的最大值、最小值算法思想:假设数组中第一个元素为最人值,并赋给变量Max,然后使用循坏结构依次与 第2个数组元素至最后一个元素进行比较,如果某数组元素的值人于Max,则将该元素的 值赋给Max (同时可记录下该数组元素在数组中的位置)。例题:显示数组a中的最大值及其下标。Dun Max As Integer, Index As IntegerDun a(l to 10) as iiitegeraiiidex=lMax=a(l)For i=2 to 10IfThenMax=a(i)aliidex=iEnd IfNext i
6、Print Max, i求最小值的方法与此类似,差别在于取第一个元素为最小值Min,与第2个数组元素至最后 一个元素进行比较时判断关系有所调整,即Min=a(l)If ThenMin=a End If七、常用字符处理函数Mid函数:从字符串指定位置取指定个字符,格式为Mid (字符,p,n),从第p个字符开始, 向后截取n个字符(若n省略则取到最后)。Left和Right函数:从字符串左边或右边取指定个字符,格式为Left (字符Q和Right (字 符小)。Len函数:测试字符串长度。Asc函数:返回字符串中第一个字符的ASCH码。Chr函数:将一个数值转换为其所对应的字符。字符的比较规则是
7、按ASCH码顺序比较,规则为:空格<” A” Z” <” a” z” 小写字母的ASCII比人写字母的ASCII小32。例题:1. 对某个字符串的所有字符逐一处理算法思想:如果对某个字符串的所有字符逐一处理,即从字符串的第1个字符开始到最后一 个字母,每次处理1个字符。可以使用For循坏实现。通用代码为:For i=l To Len(s)sl=Mid(s,i)Next i2. 字符转换算法思想:通过字符的ASCH码进行处理(使用Asc函数),然后再使用Chr函数将ASCII 转换成字符。例题:将文本框Textl中字符按如下规律转换n-b、b-cz-a,并显示在文本框Text2。 s
8、 = Text!.Textn = Len(s)For i = 1 To nsi = Mid(s, i, 1)If si >= MaH And si <= y ThenElselfsl = HzM ThenEnd IfNext iText2.Text = s2例题:将文本框Textl中的小写字母转换其对应的大写字母,将人写字母转换成小写字母, 并显示在文本框Text2中。Private Sub Command l_Click()s = Text!.Textn = Len(s)m = Asc(naM) Asc(HAH)For i = 1 To nsi = Mid(s, i, 1)If
9、si >= MaH And si <= nzM ThenEnd IfIf si >= HAH And si <= HZH ThenEnd IfNext iText2.Text = s2End Sub3. 判断是否回文函数所谓回文是指顺读与倒读都一样的字符串,如“rececer”Function foundhuiwen(p As String)fbundhuiwen = Tinek = Len(p)For i = 1 To k 2If Mid(p, i, 1) o Thenfbundhuiwen = Exit ForEnd IfNextEnd Function如果foun
10、dhuiwen函数返回值为Trum表明字符串p为回文,否则表示不是回文。4. 统计某字符出现次数算法思想:对字符串中字符逐一判断,如果是某字符,则统计变量加1。例题:统计文本框Textl中字符1和j出现的次数(不区分大小写)。Private Sub Command l_Click()Dun s as stringji as Integeraii as Integer,nj as Integers = Text 1.Textn = Len(s)For i = 1 To nsi = Mid(s, i, 1)If si = niM or chr(ASC(sl)+32)=”i” Then m = m
11、+ 1Next iPrint ni. njEnd Sub思考如果是统计每个字母出现的次数(不区分大小写),如何写代码。八、素数素数定义:只能被1和本身整除的正整数称为素数(或称质数)。例如11就是素数,它只能 被1和11整除。算法思想:判别某数11是否是素数的方法有很多,最简单的是从素数的定义来求解。对于n, 从1=2, 3,,ml判别n能够被1整除,只要有一个能整除,n就不是素数,否则n是素 数。此种算法比较简单,但速度慢,因此 可以将n被2到 (或n/2)间的所有整数除, 如果都除不尽,则n就是素数,否则n是非素数。注:执行For循环时,循环变量等于终值仍进入循环,遇到Next语句,循环变
12、量会自动加 上步长,因此如果循环正常完成后,循坏变量的值将大于终值。例如:For i=l To 4IfThen Exit ForNext iPrint i如果循坏正常结束,则输出结果为5 (人于4)。如果循环过程中满足If条件,执行Exit For 语句退出循环,则1的值一定小于5。例题:判断11是否是素数。Private Sub Conmiand2_Click()n = Val(Textl.Text)For j = 2 To n - 1If n Mod j = 0 Then Exit ForNext jIfj > n-1 Then Pont ”是素数” Else Pont ”不是素数”
13、End Sub例题:输出2n范围的全部素数。Private Sub Conmiand l_Click()n = Val(Textl.Text)For i = 2 To nFor j = 2 To Sqi(i)If 1 Mod j = 0 Then Exit ForNext jIf Then Print iNext iEnd Sub使用Do While循坏判断是否是素数的代码为:Private Function ispiime(a As Integer) As BooleanDim flag As Booleanflag = Tmeb = 2Do Wliile b <= Iiit(a /
14、2) And flagIf Int(a / b) = a / b ThenElseEnd IfLoopispriine = flagEnd FunctionEnd Sub其中flag作为标志变量,首先赋值为Tee,在循坏体中,如果满足If条件(即n能被其他 数整除),则flag重新赋值为False,最后根据flag的值可知n是否是素数。九、最人公约数和最小公倍数算法思想:(1)对于已知两数x、y,使得x>y(2)x除以y得余数r:(3)若lO,则x为求得的最大公约数,算法结束;否则执行步骤(4)(4)x-y, yr,再重复执行(2)求得了最人公约数后,最小公倍数就可很方便地求出,即将原来
15、的两数相乘除以最大公约数。Private Sub Form_Click()x = Val(IiiputBox(H请输入第一个数:”)y = Val(IiiputBox(,'请输入第二个数:”)Ifx <y Thent = xx = yy=tEnd IfX 1 = Xyl=yPrmt x, yDo Wliile y <> 0x = yy = rLoopPrmt"最大公约数为:”;xPrint "M小公倍数为:"xl *yl / xEnd Sub十、完数定义:一个数如果正好等于它的因子之和,这个数就称为完数。例如,6的因子为1、2、3, 而6
16、=1+2+3,因此6是“完数”。例题:编程找出1000以内的所有完数。Private Sub Command l_Click()OutputWaiiNumber 1000End Sub,求完数的过程Sub OutputWanNumber(ByVal n As Integer)Dun 1 As IntegerDun j As IntegerDun s As IntegerFor i = 1 To ns = 0For j = 1 To i 2If i Mod j = 0 Then Next jIf Then Pimt 1 & ”是完数,Next iEnd Sub十一、水仙花数定义:“水仙花
17、数”是指一个三位数,其中各位数字的立方和等于该数本身(如153 = 13+53+33)分析:此题的关键是要知道如何分离出一个三位数中的各位数字。例题:找出100999之间的所有“水仙花数”。Private Sub Command l_Click()For i = 100 To 999a = Int(i /100)b = Int(i - 100 * a)/10)c = i - Iiit(i / 10) * 10If ThenPrint iEnd IfNext 1End SubPrivate Sub Command l_Click()For n = 100 To 999s = 0a = nDo W
18、hile a <> 0b = a Mod 10s=s+b*b*bLoopIf s = n Then Print nNext nEnd Sub十二、数列以下数列:1, 1, 2, 3, 5, 8, 13, 21,,的规律是从第3个数开始,每个数是它前面两 个数之和。Private Sub Command l_Click()Dim a(50) As LongDim f As Longa(l) = 1a(2) = 1For i = 3 To Val(Textl.Text)f = a(i - 2) + a(i - 1)a(i) = fNextText2.Text = fEnd Sub以下数列:1, 1, 3, 5, 9, 15, 25, 41,,的规律是从第3个数开始,每个数是它前面 两个数的和加10Private Sub Command l_Click()Dim f As Long3(1) = 13(2) = 1For i = 3 To Val(Textl.Text)a(i) = fNextText2.Text = fEnd Sub答案三、prod=piod*l 求1!+2汁3汁10! sum=0prod=lFor i=l to
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 题库 网络安全笔试及答案解析
- 2025年国家开放大学(电大)《文化产业管理》期末考试备考试题及答案解析
- 文山从业资格考试及答案解析
- 海洋类从业资格考试及答案解析
- 2025年国家开放大学(电大)《大数据分析方法》期末考试备考试题及答案解析
- 2025年国家开放大学《心理咨询学原理》期末考试备考试题及答案解析
- 2025年国家开放大学《能源与动力工程》期末考试备考试题及答案解析
- 天津安全员考试题库资料及答案解析
- 2025年国家开放大学(电大)《应用写作》期末考试备考试题及答案解析
- 2018年高中数学期末模拟试卷及解析
- 2025呼和浩特市总工会社会工作者、专职集体协商指导员招聘29人考试参考题库及答案解析
- 2025年矿业权评估师考试(矿业权评估地质与矿业工程专业能力)全真冲刺试题及答案
- 途虎养车加盟协议合同
- 【公开课】两种电荷-2025-2026学年物理人教版(2024)九年级全一册
- 2024年中国农业银行山西省分行招聘真题
- 《人工智能通识课》全套教学课件
- 2025年秋招:人力资源专员笔试题库及答案
- 汽车发动机课件
- q版人物教学课件
- 一节好课的标准简短课件
- 2024版2025秋新版小学道德与法治三年级上册全册教案教学设计含反思
评论
0/150
提交评论