补考-大一下vbc语言vb题目_第1页
补考-大一下vbc语言vb题目_第2页
补考-大一下vbc语言vb题目_第3页
补考-大一下vbc语言vb题目_第4页
补考-大一下vbc语言vb题目_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB概§1VB特可视化的设计平 象的设计方(对象的性质(对象的动作(对象的响应它构成对象的三个要素。事件驱动的编程机集成化的开发环结构化的设计语§4VB序设VB应用程序的开发有三个步骤设计应用程序界面设置对象的属编写事件驱动代执行“文件/保存工程”命(第一次保存文件)系统先打开“文件另存为”框,保存窗体文件(或标准模块文件,然后再打开“工程另存为”框,保存工程文件。保存修改后的工程文选择“文件/(保存与工程有关的修改过的窗体文件或标准模块文件。字符串“Iama"计算机数值常整型1234(十进制12345678(十进制单精度数:有三种形式,12.34,123123.45E-&精度$符串型2.号常格式:Const功能:定义一个符号常量来表示表达式的值类型决定。ConstPI=变1.变量变量名不能是保留VB变量名不区分字母大小写2.量的类用类型说明在变量的尾部加上类型说明&精度$符串型在时,可以省略类型说明符。定义变量时其类型格式:Dim变量名As类型“类型”可为基本数据类型或用户自定义的类型Boolean(布尔型)Long(长整型)Single(单精度型)Double(双精度型)String(字符串型)Variant(变体型)Dimstr1AsString,countryAsString*20DimiAsInteger,sumAsSingle定义变量后,数值型变量的初值为变长字符串的初值是长度为定长字符串的初值的长度等于定义值3.变体类型变量例如:DimsumAsVariantDimsum运算符与表达1.术运算符(8):取负(-乘法、浮点除法(*)取模加法、减法(整除:被除数和除数为整数,结果为整31.7\32\6果取模(求余)运算:结果为整数除法的余数31.77Mod5.88(四舍五入32Mod6数为3Mod6余数为字符串表达字符串运算符&str1&2008&奥运会2008运"2008"奥运2008Print123"567结果Printabc"567错:类型不匹配常用函数数学函返回x的绝对求不大于x的最大整Int(7.8)结果为7,Int(-7.8)结果为-把x小数四舍五入,转换为整数计算ex,e自然数x的自然对x的平方返回0~1的随机数字符串函返回字符串长取字符串左边n个字取字符串右边n个字从位置p开始,取n个字符,如n省略,取到最数值转字符字符串转数返回字符串首字母ASCIIASCII码转字反正切函数Atn(x)的返回值单位为弧度。度转换为弧度:1°3.14159/180l生0~n间的随机数(不含0n)l生0~n间的随机整数(含0,不含n)l生a~b间的随机整数(含a,不含b)Int(b-l生a~b间的随机整数(含ab)Int(b-顺序结结构化程序三种基本结构顺序结构、选择结构和循环结构1值语变量=表达式DimNumAsNum=8.899赋给Num,四舍五人3据输方法1:用文本例:DimmAsIntegerm=Val(Text1.Text)方法2:用Inputbox()函例:m=Val(InputBox("enter4出数方法1:用文本框或Text1=n方法2:用例:Label1.Captionn方法3:用Print法例:Printn方法4:输出到列表框例:List1.AddItemn方法5:输出到文件例:Open"abc.dat"ForOutputAs1Write#1,n【例】交换变量a、b用中间变量t作暂存单元,必须与交换的变量同类型t=a:a=b:b=3.2Click事Load事Load是把窗体装入工作区事Form_Load()启动程序时对属性和变量进行初始化。UnLoad事满足条件为“真用“True”表示关系运算符(6种优先级相同,运算从左到右关系表达apply按ASCII码逐字符进行比较“applyapple果为逻辑表达逻辑运算符NotAnd优先级(Not(Anda<=xAndx<=选择结单行If语If件Then句组1Else语句组语句组:各语句间需用分隔块结构If语If条件EndIf例:计算分段函1+x(x≥0)1-2xIfx>=0ThenEndIf用单行IfIfx>=0Theny=1+xElsey=1-或Ifx>=0Theny=1+xIfx<0Theny=1-2*xIf条件1Then语句块1ElseIf件2语句块ElseIf件3语句块EndIf注意:ElseIf间不能有空格【例】学生成绩判定PrivateSubx=Val(InputBox("输入学生成绩:"))Ifx>=90ThenPrint“优”ElseIfx>=80ThenPrint“良”ElseIfx>=70ThenPrint“中”ElseIfx>60ThenPrint“及格”Print及格EndIfEnd2.4IIfIIf是单行If句的简单版变量IIf(条件,True分,False分)注意:IIf数中的三个参数都不能省略。1+x(x≥0)1-2xPrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Text2.Text=yEndSub4整除,但不能被100IfxMod4000Theny$="是闰年"ElseIfxMod40AndxMod1000Theny$="是闰年"y$是闰年End也xVal(InputBox("输入年份IfxMod40andxMod1000orxMod4000Theny$="是闰年"y$是闰年"EndIf4.SelectCase句SelectCase试表达Case件语句块Case件语句块CaseElse语句块n+1EndSelect则执行CaseElse的语句块。注意条件常量表测试范围:10to20,“a”toz”比较范围:Is<10(不能为逻辑表达式【例】学生成绩PrivateSubxVal(InputBox("输入考试SelectCase90y$80y$70y$60y$="及格"Case0To59y$及格Casey$入错误"EndSelectForm1.Print成绩x,等级y$EndSub循环结For-Next循常用于循环次数已知For环变量值To值Step长][ExitFor]Next环【例】计算n!PrivateSubnVal(InputBox("输入一个自然数"))Term=1Fori=1TonTerm=Term*iNextiPrintn;"!=";TermEndSub【例】计算246100值PrivateSubCommand1_Click()Sum=0Forx=2To100Step2Sum=Sum+xNextForm1.Print"Sum=";SumEndSub【例】计算12310!PrivateSubCommand1_Click()T=S=Fork=1To10T=T*kS=S+NextkPrintSEndWhile-Wend循适合处理循环次数未知的循While功能:当条件为真时执行循【例】计算1+2+3+……+100PrivateSubCommand1_Click()DimnAsInteger,sAsIntegernWhilen<=100Lable1.Caption=“1+2++3+……+100=”&EndDo-Loop循[ExitLoopWhile|Until件]Do[While|Until条件][ExitDoWhile当“条件”为True行循环体。Until条件——“条件”为False行循环体。格式1先循环,后判断至少执行一次循环格式2先判断,后循环如条件不满足,则一次循环也不执行nDowhilen<=100nDoUntiln>100【例】将十进制数转换为二进制PrivateSubDimmAsm=InputBox("enterm:")a$=""Whilem<>0r=mMod2a$=r&a$m=m\2Printa$EndSuba$a$&r列表框的方AddItem方法:用于在列表框中一个列表项。AddItem目字符串[,索引值如省略索引值,则在列表框的最后新列表项PrivateSubCommand1_Click()List1.AddItemText1.TextEndSub必须完整嵌套,不得交叉ExitFor句和ExitDo句只能退出当前层循环。Forn=1toPrintn;”IfnMod10=0ThenPrintNextn显示10数据换行不定方程求解PrivateSubCommand1_Click()DimxAsIntegerDimyAsInteger,zAsIntegerPrint"公鸡","母鸡","小鸡"Forx=0To20Fory=0To33z=100-x-If5*x+3*y+z/3=100ThenPrintx,y,zEndIfNextyNextEnd求最大公约数和最小公辗转相除法【例】计算最大公约数和最小公倍数PrivateSubCommand1_Click()DimmAsInteger,nAsIntegerDimuAsInteger,vAsm=n=Ifm>nThenu=m:v=nu=n:v=mEndIfr=uModvu=vv=LoopUntilr=Print最大公约数Print最小公倍数m*nuEndSub或r=uModvDoWhiler<>0u=vv=r=uModvPrint最大公约数v【例】判n是否为素数PrivateSubCommand1_Click()DimnAsInteger,iAsIntegernVal(InputBox("输入正整数"))Fori=2Ton-1IfnModi=0ThenExitForNextiIfin1ThenPrintn是质数"Printn不是质数"EndIfEnd例100~200之间素数,并写入顺序文件PrivateSubOpen“shusu.dat”ForOutputAsForn=101To200step2S=1‘是Fori=2ToInt(Sqr(n))IfnModi=0ThenS=0不是ExitForEndIfNextIIfs=1ThenWrite#1,nNextnclose#1EndSubList1.AddItemn数组6.1态数编译时分配空间定义:Dimb(3,4)As例:Dimb(3,2to4,1to3AsInteger共分配4×3×3=36元素,共72ByteOption语句格式:OptionBase例OptionBaseDima(10)AsInteger,x(5,5)As过程中用ReDim语句定义带下标的数组时不指定数组的维DimTest()AsIntegerDimnAsIntegerSubvalue:ReDimTest(n)End数组元素的组名(下标)运行前对数组进行初始化格式:数组变量名=Array(值表说明:数组下标下界缺省为0,只能对一维数组初始DimaAsAsVariant注意:下标从0~6【例】一维数组元素赋初值OptionBasePrivateSubDimaAsa=Array(1,2,3,4,5,6,Fori=1To7Printa(i);NextiEnd运行结果123456数组输入/输二维数组采重循环【例】一维数组的输入和输Fori=1Toa(i)=InputBox("Enterdata:")Nexti【例】二维数组的输入和输124578Fori1ToForj1Toa(i,=InputBox("enterNextNextFori1ToForj1ToPrinta(i,j);"";NextjNext【例】用Rnd产生100~100之间随机Fori=1Toa(i)=Int(100*NextType自定义类型名元素名1As元素名2As元素名nAsEnd一般在标准模块中定义,默认为Public如在窗体模块的“”段定义,则必须加上Private,自定义类型中的元素可以为数组PrivateTypestudentnumAsString*8nameAsString*8totalAsIntegeraverageAsIntegerEndType自定义类型变量的Dim量名As定义类型名DimstudAs形式:变量名.元素名自定义类型数组的和使用:Dimst(5)AsStudent记录数组元素.成员【例】输入5个学生的学号、、和3门课的成绩,利用自定义类型数组,PrivateTypestudentnoAsString*6nameAsString*6s1AsSingles2AsSingles3AstotalAsSingleaverAsSingleEndTypePrivateSubDima(1To5)Asstudent,tAsOpen“stud.dat”ForOutputAsOpenstud.datForRandomAs#2Len=Len(t)开随机文n=Fori=1Tona(i).total=a(i).s1+a(i).s2+a(i).s3a(i).aver=a(i).total/3NextFori=1Ton-1Forj=i+1ToIfa(i).aver<a(j).averThent=a(i)a(i)=a(j)a(j)=tEndIfNextjNextPrint"学号语文数总分平均分"Fori=1TonPrintTab(2);a(i).no;Tab(10);a(i).name;Tab(18);a(i).s1;"Printa(i).s2;"";a(i).s3;"";a(i).total;""; Put#2,i,a(i)入随机文NextiEnd入文件一行一个记录交换两个记录数组元素的值,则该记录数组元素的所有成员都将交换6.7用算法1.最大值和最小【例】找10个数中的最大值与最小值Fori=1ToIfa(i)>MaxThenMax=a(i)Ifa(i)<MinThenMin=a(i)Nexti6.7.2降序:从大到比较交换Fori=1Ton-1Forj=i+1TonIfa(i)>a(j)Thent=a(i)a(i)=a(j)a(j)=tEndIfNextjNext选择法排Fori=1Ton-1p=iForj=i+1ToIfa(p)>a(j)Thenp=jNextjt=a(i)a(i)=a(p)a(p)=tNexti冒泡法排特点:相邻的两个元素进行Fori=1Ton-1Forj=1Ton-Ifa(j)>a(j+1)Thent=a(j)a(j)=a(j+1)a(j+1)=tEndIfNextjNexti顺序查从一组数据中,按顺序地查找指定的数【例】用顺序查询法在下列数据中查找关键字kVal(InputBox("输入要查询的数"))p=1Whilek<>a(p)Andp<np=p+1Ifk=a(p)Printk;"befound,on";p;"thposition."Printk;"hasnotbefound."EndIf2半查只能对有序数列进行查询【例】用折半查询法查找关键字值66-123,-OptionBasePrivateSubDimaAsa=Array(-123,-10,5,8,30,56,59,66,90,n=Print数组a的10数为:"ForEachiiInaPrintii;"";NextiikVal(InputBox("输入要查Print要查询的数klow=1hig=nfind=-1Whilelow<=higAndfind=-1m=(low+hig)\2Ifk=a(m)find=Printk;"hasbefound,on";m;"thposition."Ifk<a(m)Thenhig=m-1low=m+1EndIfEndIfIffind=-1Printk;"hasnotbefound."EndIfEnd注意:若数据按降序排Ifk<a(m)Thenlow=m+1hig=m-1EndIfPrivateSubOpen“stud.dat”ForOutputAsDimno(1To16)AsStringDima(1To16)AsSingleFori=1To16no(i)=InputBox("输入运动员:")a(i)Val(InputBox("输入运动员成绩:"))NextiFori=1To15k=iForj=i+1ToIfa(k)>a(j)Thenk=jNextjt=no(i)no(i)=no(k)no(k)=tt=a(i)a(i)=a(k)a(k)=tEndIfNextPrint"名次运动员运动员成绩"Fori=1To5Printi,no(i),NextiEnd函数过程的定Function过程名(形参表As型函数过程名=表达EndSub程序过程名EndCall程序过程名(实参表编写函数过程计算PrivateSubCommand1_Click()n=Val(Text1.Text)Text2.Text=fact(n)EndFunctionfact(n)f=1Fori=1Tonf=f*iNextifact=fEnd【例】子程序过程计算n!PrivateSubCommand1_Click()n=Val(Text1.Text)Callfact(n,f)Text2.Text=fEndSubPrivateSubfact(n,f)f=1Fori=2Tonf=f*iNextiEndSub计算若干值,只能用Sub程。7.3数传1传值方参:变形参前加关键字ByVal例:Subfact(ByValn)2址方式或形参前加ByRef例:Subfact(ByRefn)VB认方式为传址方式从过程中,返回计算结果,必须采用传址方式PrivateSubForm_Click()n=100m=Callabc(n,m)Printn,mEndPublicSubabc(ByValx,y)t=xx=y=tPrintx,yEndSub输出:200100变量的作用作用域指变量能被某一过程识别的范围1.全局变在标准模块的通用段用Public变PublicxAsInteger,yAsSingle用Private或Dim变作用域:在它的整个模块的所有过程有效。PrivatexAsInteger,yAs或DimxAsInteger,yAsSingle在过程中定义的作用域:为其所在的过程随过程的调用而分配单元,过程执行结束,所占用的单元被。静态变量用Static的局部变量,在过程调用结束后保留值【例】动态变量、静态变量和模块级变量的作用DimcAsPrivateSubForm_Click()a=1:b=2:c=3Print"a","b","c"Fori=1To3CalltestNextiPrint"A","B","Printa,b,cEndSubSubStatica=a+b=b+c=c+1Printa,b,cEndSub数据文1序文件的打格式:Open文件名For方式AsOutput—顺序写入方写顺序文件语句(建立文件格式:Write#文件号,输出项PrivateSubForm_Click()DimnoAsLong,namAsStringDimscoreAsSingleOpend:\chengji1.dat"ForOutputAs2no=InputBox("输入学号:")Whileno<>nam=InputBox$("输入学生:")scoreInputBox("输入学生成绩:")Write#2,no,nam,scorenoInputB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论