还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
r=m Mod2a$=ra$m=m\2WendPrint a$End Sub注意:贝!为a$=a$r J4=001列表框列表框的措施措施用于在列表框中插入一种列表项Additem格式:列表框.项目字符串[,索引值]如省略索引Additem值,则在列表框的最终插入新列表项【例】将文本框内容添加到列表框1Private SubCommandl_ClickListl.Addltem Text
1.TextEnd Sub多重循环阐明1必须完整嵌套,不得交叉2语句和语句只能退出目前层循环Exit ForExit Do指定每行显示数据的个数For n=l to30Print n;If nMod10=0Then PrintNext n每显示10个数据换行常用算法
11.不定方程求解【例】百鸡问题x+y+z=1005x+3y+z/3=100Private SubCommandl_ClickDim xAs IntegerDimy As Integer,z As Integer11公鸡”,11母鸡”,11小鸡11PrintFor x=0To20For y=0To33z=100-x-y If5*x+3*y+z/3=100ThenPrint x,y,zEnd IfNextyNext xEnd Sub
2.求最大公约数和最小公倍数【例】4算最大公约数和最小公倍数Private SubCommandl_Click DimmAs Integer,n As Integer DimuAs Integer,v As Integerm=ValTextl.Text n=ValText
2.Text Ifmn Thenu=m:v=n Elseu=n:v=m End If Dor=u Modv u=vLoop Untilr=011:大公约数:Print”最小公倍数:P1rintEnd Sub或r=u ModvDo Whiler0u=v v=r r=u ModvLoop”最大公约数”;Print v
3.判素数(质数)【例】判n与否为素数Private SubCommandl_ClickDim n As Integer,i As Integer输入正整数”n=ValInputBoxFor i=2To n-1If nMod i=0Then ExitFor Next i”是质数,,If in-1Then Print n;Else不是质数”Print n;End IfEnd Sub例求100200之间素数,并写入次序文献〜Private SubCommandl_Click7Open^shusu-daV ForOutput As#1是For n=101To200step2S=1For i=2To IntSqrnIf nMod i=0Then,不是S=0Exit ForEnd IfNext IIfs=l ThenWrite#],n添加到列表框Nextnclose#1End SubListl.Addltem n
6.1静态数组编译时分派存储空间定义Dim b3,4As Long分派4X5个长整型变量的空间,二维数组在内存按行的次序寄存b7o「o5b0,1B0,2b0,3b0,0b1,0b1,1B1,2b1,3b1,,b2,0b2,1B2,2b2,3b2,,b3,0b3,1B3,2b3,3b3,,例Dim b3,2to4,1to3AsInteger共分派4X3X3=36个元素,共72ByteOption语句格式Option Base1注意只能出目前窗体层或模块层必须位于数组定义之前例Option Base1Dim a10AsInteger,x5,5As String每一维下标的下界均从1开始动态数组运行时分派内存区,定义分两步进行1先在窗体层、原则模块或过程中Dim或Public申明一种没有下标的数组2过程中用ReDim语句定义带下标的数组阐明申明时不指定数组的维数数组的维数由第一次出现的ReDim语句指定例如Dim Test As IntegerDimn AsIntegerSub Form_click ll=InputBoxEnter avalue:wReDim TestnEnd Sub数组元素的引用形式数组名下标数组元素赋初值运行前对数组进行初始化格式数组变量名:Array初值表阐明数组下标下界缺省为0,只能对一维数组初始化【例】Dim aAs As Varianta=Array1,2,3,4,5,6,7注意下标从06〜【例】一维数组元素赋初值Option Base1Private Sub Form_ClickDim aAs Varianta=Array1,23%5,67f f fFor i=1To7Print ai;Next iEnd Sub运行成果1234567数组输入/输出一般通过For循环语句和InputBox函数实现,一维数组用单重循环二维数组采用双重循环【例】一维数组的输入和输出For i=1To10vlai=InputBox Enterdata:Next i【例】二维数组的输入和输出123456789For i=1To3For j=1To3ai,j=InputBoxenter data:Next jNext iFor i=1To3For j=1To3Print aij;zNext jPrintNext i【例】用Rnd产生10个0100之间随机数〜For i=1To10ai=Int100*RndNext i顾客自定义类型定义格式Type自定义类型名元素名1As类型名元素名2As类型名元素名nAs类型名End Type其中类型名一一可为任何基本类型,也可为顾客自定义类型阐明1一般在原则模块中定义,默认为Public如在窗体模块的“申明”段定义,则必须加上Private,且只能在窗体模块中使用2自定义类型中的元素可认为数组名【例】Private Typestudent numAs String*8name AsString*8total AsIntegeraverage AsIntegerEnd Type
1.自定义类型变量的申明Dim变量名As自定义类型名例如Dim studAs Student
2.引用自定义类型变量中的元素形式变量名.元素名
3.自定义类型数组的申明和使用申明:Dim st5As Student引用形式记录数组元素.组员名【例】输入5个学生的学号、姓名、和3门课的成绩,运用自定义类型数组,计算每个学生的总分和平均分,并按平均成绩从高到低输出学生的成绩单Private Typestudentno AsString*6name AsString*6si As Single52AsSingle53As SingletotalAs SingleaverAs SingleEndTypePrivate SubForm_ClickDim al To5As student,tAsstudentOpen stud.dat ForOutput As#1Open stud.dat”For RandomAs#2Len=Lent打开随机文献n=5For i=1To nai.total=ai.sl+ai.s2+ai.s3ai.aver=ai.total/3Next iFor i=1To n-1For j=i+1To nIf ai.averaj.aver Thent=ai ai=aj aj=tEnd IfNextjNext iPrint〃学号姓名语文数学英语总分平均分〃For i=1To nHPrintTab2;ai.no;Tab10;ai.name;Tab18;ai.sl;;H H11nPrint ai.s2;;ai.s3;ai.total;;ai.averWrite#l,ai.no,ai.name ai.sl,ai.s2ai.s3ai.total i.averf zA zPut#2,i,ai写入随机文献Next iClose#lEnd Sub注意写入文献一行一种记录运行成果阐明互换两个记录数组元素的值,则该记录数组元素的所有组员都将互换
6.7常用算法
(2)
1.求最大值和最小值【例】找10个数中的最大值与最小值For i=1To10If aiMax ThenMax=ai IfaiMin ThenMin=ai Nexti
6.
7.2排序升序从小到大降序从大到小
1.比较互换法For i=1To n-1For j=i+1To nIfaiaj Thent=ai ai=aj aj=t End If NextjNext i
2.选择法排序For i=1To n-1p=iFor j=i+1To nIfapaj Thenp=j Nextj t=aiai=apaP=tNexti
3.冒泡法排序特点相邻的两个元素进行比较For i=1To n-1For j=1To n-i.If ajaj+1Thent=ajaj=aj+1aj+l=tEnd IfNextjNext i查询I.次序查询从一组数据中,按次序地查找指定的数据【例】用次序查询法在下列数据中查找关键字值k=ValInputBox〃输入要查询的数〃p=1While kap Andpnp=p+1WendIf k=ap Then;1Print k;be found,on p;th position.Elsevv1Print k;has notbe found.EndIf2折半查询折半查找也称为二分法查询只能对有序数列进行查询-123,-10,5,8,30,56,59,66,90,518Option Base1Private SubForm_ClickDim aAsVarianta=Array-123-10,5,8,30,56,596690,518z zzn=UBoundaPrint”数组a中的10个数为For Eachii InaH nPrint ii;;Next iiPrintk=Vai InputBox输入要查询的数Print”要查询的数是;klow=1hig=nfind=TWhile low=hig Andfind=-1m=low+hig\2If k=am Thenfind=1;Print k;has be found,on m;th position.ElseIf kam Thenhig=m-1Elselow=m+1End IfEndIfWendIf find=-1ThenPrint k;has notbefound.End IfEndSub注意若数据按降序排列If kam Thenlow=m+1Elsehig=m-1EndIf【例】输出前5名名次、运动员号和成绩,并将成果写入次序文献Private SubForm_ClickU rrOpenstud.dat ForOutput As#1Dim nolTo16As StringDimalTo16As SingleFor i=1To16noi=InputBox输入运动员编号“ai=Vai InputBox输入运动员成绩”NextiFor i=1To15k=iFor j=i+1To16If akaj Thenk=jNext jt=noi noi=nok nok=t t=ai ai=akak=t EndIf NextiPrint〃名次运动员编号运动员成绩”Fori=1To5Printi,noi aizWrite#lJ,noi aizNexti EndSuba森函数过程的定义Function函数过程名形参表[As类型]函数过程名=体现式End Function阐明函数过程名有值,有类型,在过程体必须被赋值调用形式函数过程名实参表子程序过程定义Sub子程序过程名形参表EndSub阐明子程序过程名无值,无类型调用形式Call子程序过程名实参表【例】函数过程使用编写函数过程计算n!Private SubCommandl_Click n=ValTextl.TextText
2.Text=factnEnd SubFunctionfactn f=1Fori=1To n【例】子程序过程计算n!Nextifact=f EndFunctionPrivate SubCommandl_Click n=ValTextl.Text Callfactn,f TextZ.Text=fEnd SubPrivate Sub factnff=1Fori=2To nf=f*i NextizEnd Sub阐明由若干变元计算一种值用Function过程计算若干值,只能用Sub过程
7.3参数传送1传值方式将实参的值传给形参,数据传送方向为单向,形参的变化对实参无影响实参常量、变量、或体现式形参变量或实参变量形参前加关键字ByVai例Sub factByVai n2传址方式将实参的地址传给形参,使实参和形参共用同一存储单元数据传送方向为双向,形参的变化对实参有影响实参变量、数组名形参变量、数组名0或形参前加ByRef例Sub factByRef nVB默认方式为传址方式阐明从过程中,返回计算成果,必须采用传址方式Private SubForm_Click n=100m=200Call abcnzmPrintn,m EndSubPublic SubabcByVal x,yx=y y=t Printx,y EndSub输出:200100100100变量的作用域作用域指变量能被某一过程识别的范围
1.全局变量在原则模块的通用段用Public申明变量可在工程的所有模块、所有过程中使用作用范围为整个应用程序例如Public xAsInteger,y AsSingle
2.模块级变量在窗体或原则模块的通用段用Private或Dim申明变量作用域在申明它的整个模块的所有过程有效例如Private xAsInteger,y AsSingle或Dim xAsInteger,y AsSingle
3.局部变量在过程中定义的变量作用域为其所在的过程.随过程的调用而分派存储单元,过程执行结束,所占用的存储单元被释放静态变量用Static申明的局部变量,在过程调用结束后保留值【例】动态变量、静态变量和模块级变量的作用域Dim cAs IntegerPrivate SubForm_Clicka=l:b=2:c=3“HPrinta b“cFor i=1To3Call testNexti,H11HPrint A,“B““CPrint a,b,cEnd SubSubtestStatic aa=a+1b=b+1c=c+1Print a,b,cEnd Sub数据文故
1.次序文献的打开格式:Open“文献名For<方式>As[#]<文献号>方式Output一次序写入方式Input—次序读出方式,指定的文献必须存在Append—次序添加方式写次序文献语句(建立文献)格式:Write#文献号,输出项表功能将输出项表中的数据写入次序文献阐明各项之间用逗号分隔【例】建立一种学生成绩文献P()PrivateSubForm_ClickDim noAs Long,nam AsStringDim scoreAs SingleOpen d:\chengjil.dat ForOutput As#2no=InputBox(输入学号”)<>While no99999nam=InputBox$(“输入学生姓名”)score=InputBox(输入学生成绩”)Write#2,no,nam,scoreno=InputBox(输入学号”)WendClose#2EndSub读次序文献语句
个人认证
优秀文档
获得点赞 0