欢迎来到天天文库
浏览记录
ID:39360261
大小:582.50 KB
页数:14页
时间:2019-07-01
《av学生档案管理软件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、VisualBasic综合练习1常用算法编写一个VB常用算法演示程序,要求参考下列常用算法,以选择菜单的形式演示各类算法(见图12.1)。图12.1VB常用算法演示程序界面1.常用基本算法算法1:累加与连乘问题分析:此类问题要注意正确确定循环变量的初值、终值或结束条件以及累加与连乘变量的初值。例12.1求1~100间为5或7的倍数数的和参考程序段:Sum=0Fori=1To100IfiMod5=0OriMod7=0ThenSum=Sum+iEndIfNextiPrintSum例12.2求3~10间数的乘积参考程序段:t=1
2、Fori=3To10t=t*iNextiPrintt算法2:求两个整数m,n的最大公约数和最小公倍数问题。分析:用辗转相除法求两个整数的最大公约数算法思想:①输入两个数m,n,使得m>n;②m除以n得余数r;③若r=0,则n为求得的最大公约数,算法结束;否则执行④;④m←n,n←r,再转②执行。最小公倍数=两个整数之积/最大公约数。参考程序段:m=inputBox("m=")n=inputBox("n=")k=n*mIfm0)m=nn=rr=mmodnL
3、oopPrint"最大公约数=",nPrint"最小公倍数=",k/n算法3:判断素数问题分析:只能被1或自身整除的数称为素数。把x作为被除数,将2到INT(x)作为除数,如果都除不尽,则x就是素数,否则就不是素数。参考程序段:x=val(InputBox("请输入一个数"))Fori=2Toint(sqr(x))IfxModi=0ThenExitForNextiIfi>int(sqr(x))ThenPrint"该数是素数"ElsePrint"该数不是素数"EndIf算法4:求最小、最大值问题分析:在若干个数中求最大值,一
4、般先假设一个极小的数为最大值的初值,若无法估计极小的值,则取第一个数为最大值的初值;然后将每一个数与最大值比较,若该数大于最大值,将该数替换为最大值;依次逐一比较。求最小值则正好反之。而求二维数组中最大或最小值基本思路同一维数组,见例3。例12.3求二维数组中最大元素及其所在的行和列,设二维数组为a(2,3),变量max中存放最大值,row,column存放最大值所在行列号。参考程序段:Max=a(1,1):row=1:Column=1Fori=1To2Forj=1To3Ifa(i,j)>a(row,Column)Then
5、Max=a(i,j)row=iColumn=jEndIfNextjNextiPrint"最大元素是";MaxPrint"在第"&row&"行,";"第"&Column&"列"算法5:穷举法分析:穷举法(又称“枚举法”)的基本思想是:列举各种可能的情况,并判断哪一种可能是符合要求的解。此法常用循环来处理穷举问题,以解决一些无法用解析法求解的问题。例4:将一张面值为100元的人民币等值换成100张5元、1元和0.5元的零钞,要求每种零钞不少于1张,问有哪几种组合?参考程序段:Dimi%,j%,k%Print"5元1元0.5元"
6、Fori=1To20Forj=1To100-ik=100-i-jIf5.0*i+1.0*j+0.5*k=100ThenPrinti,j,kNextjNexti注:本例也可直接用三重循环来实现。算法6:递归算法分析:用自身的结构来描述自身就称为“递归”。VB允许在一个Sub子过程和Function过程的定义内部调用自己。递归条件:(1)递归结束条件及结束时的值;(2)能用递归形式表示,且递归向终止条件发展。例12.5编写fac(n)=n!的递归函数1n1fac(n)n*fac(n1)n1参考程序段:Functi
7、onfac(nAsInteger)AsIntegerIfn=1Thenfac=1Elsefac=n*fac(n-1)EndIfEndFunction2.常用排序类算法算法7:选择法排序(升序)基本思想:①对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数组元素中的数交换位置;②除已排好的第1个数外,从其余n-1个数中再选其中最小的数(其下标置于min),与第2个数交换位置;③依次类推,选择n-1次后(每次外循环决定第i小的数的位置),这个数列已按升序排列。参考程序段:Fori=1Ton-1min=iFo
8、rj=i+1TonIfa(min)>a(j)Thenmin=j'min中记录较小数下标Nextjtemp=a(i)'第i小的数(下标为min元素)与第i位置上的数交换位置a(i)=a(min)a(min)=tempNexti算法8:冒泡法排序(升序)基本思想:相邻两个数逐个比较,不是升序立刻交换。①有n
此文档下载收益归作者所有