




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.二级VB程序设计练习程序填空下面程序按每行10个数打印出30个介于-300到300间无重复的随机整数,并显示其中的最小值。数组b(30)存放所产生的无重复的随机整数,运行结果如下图。PrivateSubmand1_Click()Dimb(30),jAsInteger,kAsIntegerDimyAsInteger,*AsSingle,minAsIntegerForj=1To30lb:*=RndIf*>0.5Theny=1Elsey=-1b(j)=y*Int(Rnd*301)k=1DoWhilek<jIfb(j)=b(k)ThenGotolbk=k+1LoopPrintb(j);IfjMod10=0ThenPrintNe*tjmin=b(1)Forj=1To30Ifb(j)<minThenmin=b(j)Ne*tjPrintminEndSub下面程序用于对9位的号进展校验。参数mno存放号,mjy存放产生的校验位,tag判断校验正确否,假设校验正确tag置1,否则为0。产生校验位的算法为:取号右边的8位之和关于9的模作为校验值,号最左边的一位为校验位。PublicSubfoe(ByValmnoAsString,mjyAsInteger,TagAsInteger)DimmsumAsInteger,mAsStringmsum=0forj=2to9m=Mid(mno,j,1)msum=msum+Val(m)Ne*tjmjy=msummod9Ifmjy=val(left(mno,1))ThenTag=1ElseTag=0EndIfEndSubmand1_Click事件用于调用foe子过程,对输入到文本框Te*t1的号进展校验,如果校验正确,显示“正确〞,否则显示“错误〞,同时显示正确的校验码。PrivateSubmand1_Click()DimnnAsInteger,mtagAsIntegerIfLen(Te*t1)<>9OrNotIsNumeric(Te*t1)ThenMsgBo*"非法数据,请重新输入!"Te*t1=""Te*t1.SetFocusE*itSubEndIfCallfoe(Te*t1,nn,mtag)IfmtagThenPrint"正确"ElsePrint“错误〞;nnEndIfEndSub下面的程序按从小到大的顺序随机产生不超过20个介于100到400〔包括100、400〕的数,每次产生的一个数总大于它前面已产生的数,然后求产生的数的平均值。数组b(20)用于存放所产生的随机数,运行结果如下图。PrivateSubmand1_Click()Dimb(20),iAsInteger,jAsInteger,sumAsSinglej=1Dore:b(j)=Int(Rnd*301+100)Ifb(j)=400Orj=20ThenE*itDoElseIfb(j)<=b(j-1)ThenGoToreEndIfj=j+1Loopsum=0Fori=1TojPrintb(i);Sum=sum+b(i)Ne*tiPrint"aver=";sum/jEndSub新的号由18位组成,最低位〔右边〕为校验位,其算法是:10-〔前17位之和关于10的模〕。函数foe用于对18位的进展校验。参数mstr存放号,md为产生的校验位,假设校验正确,函数返回“True〞,否则返回“False〞。PublicFunctionfoe(ByValmstr$,md%)AsBooleanDimmpAsString,msumAsIntegermsum=0Fori=1To17mp=Mid(mstr,i,1)msum=msum+Val(mp)Ne*timd=10–msummod10Ifmd=val(right(mstr,1))Thenfoe=TrueElsefoe=FalseEndIfEndFunctionmand1_Click事件用于调用foe子过程,对输入到文本框Te*t1的号进展校验,如果校验正确,显示“True〞,否则显示“False〞和的校验码值。PrivateSubmand1_Click()DimmmAsIntegerIfLen(Te*t1)<>18OrNotIsNumeric(Te*t1)ThenMsgBo*"非法数据,请重新输入!"Te*t1=""Te*t1.SetFocusE*itSubEndIfIffoe(Te*t1,mm)=TrueThenPrint"True"ElsePrint“False〞;mmEndIfEndSubEndSub本程序随机产生N〔15〕个A到J的大写字母,按字母降序排序后,将连续出现的字用压缩形式显示。例如,连续5个H字母显示为5*H,参见图例。数组a()用于存放随机产生的字母。PrivateSubmand1_Click()ConstN=15Dima(1ToN)AsString*1,cDimcount%,i%,j%,k%Fori=1ToNa(i)=Chr(Int(Rnd*10+65))Printa(i);Ne*tiPrintFori=1ToN-1k=iForj=i+1ToNIfa(j)>a(k)Thenk=jNe*tjc=a(i):a(i)=a(k):a(k)=cNe*tiFori=1ToNPrinta(i);"";Ne*tiPrinti=1DoWhilei<=Ncount=1Ifi<NThenj=i+1DoWhilea(i)=a(j)count=count+1Ifj<NThenj=j+1ElseE*itDoLoopIfcount=1ThenPrinta(i);"";ElsePrintcount;"*";a(i);"";i=i+countLoopEndSub6.本程序的功能是在窗体随机产生10个长度为1~20之间的大写字母字符串,并同时显示最长字符串的字符数及容,如下图。PrivateSubmand1_Click()ClsDimst(1To10)AsString,cAsString*1Dimi%,n%Fori=1To10____Forj=1Tonc=Chr(Int(Rnd*26+65))st(i)=______Ne*tjPrintst(i)Ne*tima*len=0ma*str=""Fori=1To10If_____Thenma*len=Len(st(i))ma*str=______EndIfNe*ti____EndSub7.两素数的差为2,称此对素数为素数对,以下程序是成对显示100以的素数对。其中,函数isP的功能是判断参数m是否为素数,假设是返回True,否则返回False。PublicFunctionisP(m)AsBooleanDimi%Fori=2ToInt(Sqr(m))IfThenIsP=FalseNe*tiEndFunctionPrivateSubmand1_Click()Dimi%p1=IsP(3)'第一个可能的素数Fori=p2=IsP(i)IfThenPrinti2,i'相邻的两个是素数,则打印p1='处理下一个素数Ne*tiEndSub8.本程序的功能是求100以的素数,结果分三列输出,如样例所示。算法思想:从2开场,对每一个数判断是否是素数,假设是就输出,否则就继续,直至到100。PrivateSubmand1_Click()DimnAsInteger,mAsInteger,iAsIntegerMe.ClsForn=2To100Form=2Ton–1If=0ThenEndIfNe*tmIfThenPrintn,i=i+1IfiMod3=0ThenEndIfNe*tnEndSub9.子过程isH的功能是判断正整数n是否是回文数,假设为回文数,则参数Tag返回True。单击命令按钮,输出随机产生的10个[10,100]之间的回文数〔数字左右对称的正整数称为回文数〕。PrivateSubmand1_Click()Dimnn%,tAsBoolean,i%Fori=1To10nn=Int(Rnd*991+10)CallIftThenPrintnn;"是回文数"Ne*tiEndSubSubisH(ByValnAsInteger,)Dimlength%,i%,s1$s1=Trim(Str(n))tag=length=Fori=1Tolength\2IfMid(s1,i,1)<>Thentag=FalseNe*tiEndSub10.本程序的功能是判断一个5位数的最后二位构成的数是否为素数。在窗体的文本框Te*t1中输入一个5位数,判断该数的第4、5二位构成的数是否为素数,假设是显示“是素数〞否则为“非素数〞。例如,32517最后二17构成的数是素数。PrivateSubmand1_Click()DimtagAsBooleanm=m=Val(m)Fori=2ToIf=0Thentag=FalseNe*tiIfThenPrintm;"是素数"ElsePrintm;"非素数"EndIfEndSub11.随机产生100个在闭区间[30,80]之间的整数,存放于数组a中;并将其于50的偶数再存于数组b中;然后,对数组b用冒泡法从大到小排序后输出。子过程Output的功能是按每行十个元素输出数组容。PrivateSubForm_Click()Dima(1To100)AsInteger,b(100)AsInteger,mAsInteger,nAsIntegerRandomizen=0Fori=1To100a(i)=Int(Rnd*51+30)Ifa(i)Mod2=0Thenn=n+1b(n)=EndIfNe*tiCallOutput(a(),100)Fori=1ToForj=1Ton-iIfThent=b(j):b(j)=b(j+1):b(j+1)=tEndIfNe*tjNe*tiCallEndSubPrivateSubOutput(*()AsInteger,tAsInteger)Print"数组输出:"Fori=1TotPrint*(i);IfiMod10=0ThenPrintNe*tiPrintEndSub12.本程序的功能是用于判断输入的正整数是否为升序数。使用输入对话框输入数据,判断结果显示在标签框Lable1中。设正整数n=d1d2…dm,如果di<=di+1(i=1,2,…,m-1),则n是一个升序数〔即右边的数字大于等于左边的数字〕,如:1269,448是升序数,而2485不是升序数。PrivateSubForm_Click()DimnAsString,flagAsBooleann=(“请输入正整数〞)flag=ForI=1ToLen(n)–1IfMid(n,I,1)>Thenflag=FalseEndIfNe*tiIfThenLabel1.Caption=n&“是升序数〞ElseLabel1.Caption=n&“不是升序数〞EndIfEndSub13.以下程序将给定围的偶数〔大于等于4〕,表示为两个素数之和。图例所示为输入10和30后运行结果。函数子过程fun()的功能是判断数值n是否是为素数,假设是返回1,否则返回0。PrivateSubmand1_Click()Dima%,b%,i%,c%,d%a=Val(Te*t1.Te*t):b=Val(Te*t2.Te*t)IfThent=a:a=b:b=tEndIfFori=aTobStep2Doc=c+2d=i-cLoopUntil=1Picture1.Printi;"=";c;"+";dNe*tiEndSubFunctionfun(nAsInteger)Dim*!,k%Fork=2Ton-1IfnModk=0Thenfun=0EndIfNe*tkEndFunction14.下面程序的功能是统计文本框中每个数字字符(“0”-“9”)出现的次数。用num(0)来存放字符“0”的个数,用num(1)来存放字符“1”的个数,…PrivateSubmand1_Click()Dimnum(9)AsIntegerDimi%,m%,j%,cAsString*1,s$m=Fori=1Tomc=Mid(Te*t1.Te*t,i,1)IfThenj=Val(c)EndIfNe*tiFori=0To9IfThenPicture1.Print"数字";;"出现次数为";num(i)EndIfNe*tiEndSub15.以下程序将求出10000之的同构数。并且在窗体标题栏上显示找到同构数的个数,如下图。所谓同构数是指,该整数会出现在其平方数的最右端。例如:6出现在36的最右端,76出现在5776的最右端。子函数judge()的功能是判定同构数,假设是judge返回True,否则返回False。判定同构数算法思想:将数n逐位与n的平方数一样位置上的值相比拟。PrivateSubmand1_Click()DimiAsLongm=0Fori=1To10000IfThenm=m+1List1.AddItemStr(i)List2.AddItemStr(i*i)EndIfNe*ti="10000以的同构数:"&m&"个"EndSubPrivateFunctionjudge(ByValnAsLong)AsBooleanDimn2AsLongn2=n*njudge=TrueDoWhileIf(nMod10)=Thenn=n\10n2=n2\10ElseE*itDoEndIfLoopEndFunction16.以下程序中的子过程fenge用于实现函数split()的功能〔字符别离到数组〕。通过在文本框中输入一个以逗号分隔的数字序列,按回车后调用过程fenge,将数字序列别离后,——转换为数值型数据存放于数组shuzhi()中,并在Picturebo*中输出该数组的所有值〔假设不存在输入错误,输入的数字元素个数在100个以〕。PrivateSubTe*t1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenCallfenge()EndIfEndSubPrivateSubfenge(str1)DimiAsInteger,jAsInteger,shuzhi(100)AsSinglei=0j=InStr(str1,",")‘检测第一个逗号的位置DoWhilej>0shuzhi(i)=Val()‘别离数字序列str1=Mid()i=i+1j=InStr(str1,",")Loop‘最后一个数字Forj=0ToiNe*tjEndSub17.以下程序完成如下功能:在文本框中输入一个20以的正整数N,单击“开场〞按钮后,判断输入的有效性,如果文本框中输入数越界,给出如下图的相关提示,并要求重新输入,否则随机产生一个大写英文字母,然后以此英文字母为首字母,连续循环变化,输出一个N*N的字符矩阵,并显示“首字母*的N阶字符矩阵〞的说明,图示为首字母K的8阶字符矩阵。PrivateSubmand1_Click()Dimi%,k%,n%n=Val(Te*t1)Ifn<1Orn>20ThenTe*t1=""Te*t1.SetFocusE*itSubEndIfs=Int(Rnd*26)+65‘随机产生一个大写字母的Ascii码Label1="首字母"&"的"&n&"阶字符矩阵"ClsPrint:Printk=‘以下输出N*N的字符矩阵,K为字符控制变量Fori=1TonPrintTab(5);Forj=PrintChr(65+k);Space(1);k=k+1If‘对字符控制变量进展处理Ne*tjPrintNe*tiEndSub18.将100至150之间的偶数,拆分成两个素数之和〔只要一对就可以了〕,最后输出格式如下图。函数子过程prime用于判断一个数是否为素数。PrivateFunctionprime(ByVal*AsInteger)AsBooleanDimiAsIntegerprime=Fori=2ToSqr(*)IfThenprime=FalseE*itFunctionEndIfNe*tiEndFunctionPrivateSubForm_Cl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏省苏州市同里中学2024-2025学年初三年级第一次模拟考试(二)数学试题含解析
- 江苏省四校联考2025届高三第二学期月考(三)英语试题含解析
- 家具定制交易合同
- 版个人房屋建设承包协议案例
- 铝门采购合同
- 2《让家更美好》表格式公开课一等奖创新教学设计 统编版七年级上册道德与法治
- 建筑项目劳动力计划和主要设备供应计划
- 人教部编版二年级上册课文4口语交际:商量教案设计
- 经管营销多维-广东溢达-问题分析与解决培训核心片段记录-1021-22
- 八年级数学下册 第20章 数据的初步分析20.2 数据的集中趋势与离散程度 1数据的集中趋势第2课时 中位数与众数教学设计 (新版)沪科版
- 二年级下册道德与法治第8课《安全地玩》说课稿说课稿(第一课时)
- DBJ33T 1271-2022 建筑施工高处作业吊篮安全技术规程
- 一年级口算练习题-100以内无进退位
- 创新创业基础知到智慧树章节测试课后答案2024年秋哈尔滨理工大学
- 针刺伤警示教育课件
- 星际求职指南-札记
- 【MOOC】戏曲鉴赏-扬州大学 中国大学慕课MOOC答案
- 《初中生物实验教学的创新与实践》
- 企业合规管理体系建设与运行机制研究
- 写字楼项目招商方案
- 期中检测卷(试题)-2023-2024学年人教PEP版英语六年级下册
评论
0/150
提交评论