素数vb入门教程

vb入门教程  时间:2021-02-27  阅读:()
湖南省计算机等级考试VB程序设计辅导2007年10月计算机系—刘永逸内容提要概括性指导基础知识、重点结构、常用标准函数、自定义函数、基本处理、逻辑表达式常用算法:穷举法、递推分类练习十多种常见类型(详见下页)1、简单的求和问题2、等比数列及求和3、递推问题(Excel可解)4、常见数字问题的处理5、因子问题--因子个数、和6、组合问题:不定方程求解7、高精度计算—除法8、同构数9、完全平方数10、数制转换11、素数(质数)问题12、猴子选大王VB面向对象基本概念对象、事件、方法对象:窗体、标签、文本框、命令按钮、计时器、……事件:Load、Unload、Chang、Click、KeyPress、LostFocus、GotFocus、…方法:Print、Cls、Show、Move对象属性Name、Caption/Text、Left、Top、Width、Height、Enabled、Visible、Font、…VB程序执行方式事件驱动编程机制VB常用数据类型数值型Integer(%)、Long(&)Single(!
)、Double(#)字符串型String($)变体型VariantVB常用运算符数值运算^、-(负号)Mod、+、-字符串运算&、+逻辑运算And、Or、NotVB常用函数系统内部标准函数取整:Int(x)求余数:aModb求平方根:Sqr(x)绝对值:Abs(x)四舍五入:Round(x,n)其它.
.
.
用户自定义函数逻辑函数判定:prime(x)外部函数的方法(不讲)内部函数的方法(程序的一部分)见:有关素数程序设计部分注:二级必备!
VB基本输入、输出InputBox输入和MsgBox输出文本框输入、输出x=Val(Text1)、Text1=…窗体和立即窗口输出Print和Debug.
PrintTab(x)、Format(x,"…")VB程序基本结构与示例顺序结构选择(分支)结构If.
.
.
Then…Else.
.
.
If.
.
.
Then…Else.
.
.
EndIf判断成绩是否合格x=Val(Text1)Ifx=60ThenText2="合格"或(第2、3行为)IfxCaseCaseElse…EndSelect表达式列表:(三种形式,见例题)判断成绩等级PrivateSubCommand1_Click()SelectCaseVal(Text1)CaseIs0x是能被3或5整除的偶数xMod2=0and(…or…)或xMod6=0andxMod10=0精确与非精确编程思路精确编程:只输出所需结果.
非精确编程:输出相关的数据,从中容易得出所需要的结果.
例:设s=2+4+6+…,求s的最大值,使s=1000ThenExitForNextPrints-kEndSubVB程序改错考题1:计算1000以内,既能被6整除又能被8整除的数的个数.
程序中有两行有错误.
改正错误,使它能输出正确的结果.
容易得到答案:1000\24=41原程序PrivateSubCommand1_Click()DimnAsIntegerDimxAsIntegerx=1n=0DoWhilex0ORMOD(I+J,7)=0thenn=n+1EndIfJ=J+1Loopi=i-1LoopPrintn/2EndSub错误、改正If中的条件:ijAnd((i+j)Mod3=0Or(i+j)Mod7=0)i=i-1:i=i+1运行结果VB窗体代码窗口中复制程序代码,改错后启动,单击窗体,得结果:2121VB程序填空(二级)考题1:金星和地球在某一时刻相对于太阳处于某一确定位置,已知金星绕太阳一周为225日,地球绕太阳一周为365日,问两个行星至少经过多少日仍同时回到原来的位置上易得答案(公倍数):16425原程序PrivateSubForm_Click()Dimm0&,n0&DimmAsLongDimnAsLongDimrAsLongm0=365n0=225m=m0n=n0r=mModnWhilem=nn=rr=mModnWendPrintm0*n0/nEndSub填空r>0(去掉横线!
)运行结果VB窗体代码窗口中复制程序代码,填空后启动,单击窗体,得结果:16425考题2:找出1-1000之间的全部同构数的个数.
同构数是指一个数,它出现在它的平方数的右端.
例如,5的平方是25,5是25中右端的数,5就是一个同构数.
同理,25也是一个同构数.
原程序PrivateSubForm_click()Fori=1To999j=i*iSelectCasejCaseIs9000ThenExitForNextPrintsEndSub程序2PrivateSubForm_Click()a=1:s=0Forn=1To20a=2*a:s=s+aPrintn,a,sIfs>9000ThenExitForNextPrintsEndSub已知S1=1,S2=1+2,S3=1+2+4,…,求S=S1+S2+S3+S4+…+S20的值.
#2097130可Excel中求解A1=1,B1=1,C1=1A2=2*A1,B2=B1+A2,C2=C1+B2将A2:C2填充至第20行程序PrivateSubForm_Click()s=0:t=0Forn=1To20a=2^(n-1)s=s+at=t+sPrintn,a,s,tNextPrinttEndSub一球从100米高处落至平地并连续反弹、落下.
设每次反弹高度按4/5倍递减,试求出最小的自然数n,使得此球从开始下落至第n次着地时在垂直方向所经过的总路程超过800米.
基本算法:循环、(连乘、)连加初值:h=100,s=h循环:h=h*4/5,s=s+2*h程序PrivateSubForm_Click()h=100:s=hForn=2To100h=h*4/5:s=s+2*hPrintn,h,sIfs>800ThenExitForNextPrintnEndSub3、递推问题(Excel可解)设有用26个表达式:a=1,b=1/(a+1),c=1/(b+2),…,z=1/(y+25),试求出z的值.
#0.
04基本算法:循环、单项递推f=1,n=2~26:f=1/(f+n-1)斐波那契数列{f(i)}:1,1,2,3,5,8,…,试输出前20项.
基本算法:循环、递推三种方法:f(1)=1:f(2)=1,f(n)=f(n-2)+f(n-1)f1=1:f2=1,f1=f1+f2:f2=f2+f1f1=1:f2=1,f=f1+f2:f1=f2:f2=f基本解法(使用数组)定义数组:Dimf(20)循环初值:f(1)=1,f(2)=1;循环处理:f(n)=f(n-2)+f(n-1)程序PrivateSubForm_Click()Dimf(20)f(1)=1:f(2)=1Debug.
Printf(1)Debug.
Printf(2)Forn=3To20f(n)=f(n-2)+f(n-1)Debug.
Printf(n)NextEndSub斐波那契数列{f(i)}:1,1,2,3,5,8,…求F(45)值.
1134903170求F(1)+F(2)+…+F(50)#32951280098求F(1)+F(3)+…+F(49)#12586269025求10000000内最大的#9227465求10000000内的个数#35均可在Excel中容易求得结果!
斐波那契数列—相关问题(例1)求S=1/2+2/3+3/5+5/8+…的前30项的和.
#18.
46{f(n)}:1,2,3,5,8,…,31项S=1/2S=S+f(n-1)/f(n),n=3,4,.
.
.
,31斐波那契数列—相关问题(例2)求S=1/2+3/5+8/13+21/34+…的前30项的和.
#18.
40{f(n)}:1,2,3,5,8,…(共60项)S=1/2S=S+f(n-1)/f(n),n=4,6,8,.
.
.
,60程序PrivateSubForm_Click()Dimf(60)f(1)=1:f(2)=2:s=1/2Debug.
Printf(1),f(2),sForn=3To60f(n)=f(n-2)+f(n-1)IfnMod2=0Thens=s+f(n-1)/f(n)Debug.
Printf(n-1),f(n),sEndIfNextPrintFormat(s,"0.
00")EndSub三项递推的数列一个数列,它的头三个数为0,0,1,以后的每个数都是其前三个数的和,求此数列的前30项之和.
#18947744Excel中求解:A1=0,A2=0,A3=1A4=A1+A2+A3,填充至30行单击A列,状态行中有求和结果4、常见数字问题的处理水仙花数:三位数,等于其各位数字之立方和.
记住10000以内:153、370、371、407考试题中,曾有四位水仙花数之说.
看清题意!
水仙花数的算法是数字问题之根本!
算法一:单循环(x:100~999)由数x得出数字abc(下页)熟练掌握一种从数中取数字的方法算法二:三重循环(a:1~9b,c:0~9)由数字a、b、c组成数x(100~999)设x是一个三位数,百位到个位分别是a、b、c,则:a=Int(x/100)b=Int((x-100*a)/10)c=xMod10Int(a/b)可替换为a\b,如:a=x\100b=(x-100*a)\10求水仙花数之程序(一)PrivateSubForm_Click()Forx=100To999a=Int(x/100)b=Int((x-100*a)/10)c=xMod10Ifx=a^3+b^3+c^3ThenPrintxNextEndSub求水仙花数之程序(二)PrivateSubForm_Click()Fora=1To9Forb=0To9Forc=0To9x=a*100+b*10+cIfx=a^3+b^3+c^3ThenPrintxNextc,b,aEndSub设x是一个四位数,千位到个位分别是a、b、c、d,则:a=Int(x/1000)或x\1000b=Int((x-1000*a)/100)c=Int((x-1000*a-100*b)/10)d=xMod10(或见下页)b=(x\100)Mod10c=(x\10)Mod10或b=(xMod1000)\100c=(xMod100)\10求在[100,999]内所有不含数字0且各位数字之积被96整除的数之和.
#26640a*b*c0anda*b*cmod96=0求[123,4321]内回文数的个数.
#120都看作四位数abcd,两种情况处理:a=0andb=da0anda=dandb=c程序PrivateSubForm_Click()Forx=123To4321a=x\1000b=(x\100)Mod10c=(x\10)Mod10d=xMod10If(a=0Andb=d)Or(a0Anda=dAndb=c)Thenn=n+1NextPrintnEndSub5、因子问题--因子个数、和问[100,200]之间有奇数个不同因子的整数共有多少个#5基本算法:二重循环外循环:forx=100to200穷举!
内循环模块一:求x之因子个数内循环模块二:判断处理程序PrivateSubForm_Click()Forx=100To200k=0Fori=1ToxIfxModi=0Thenk=k+1NextIfkMod2=1ThenPrintxn=n+1EndIfNextPrintnEndSub完数一个数如果刚好与它所有的因子之和相等,则称该数为"完数",如6=1+2+3,则6就是个完数,求200到500之间所有的完数之和.
#496#程序PrivateSubForm_click()s=0Forx=200To500k=0Fori=1Tox/2IfxModi=0Thenk=k+iEndIfNextIfx=kThen'Printxs=s+xEndIfNextPrintsEndSub完备数已知24有8个正整数因子(即:1,2,3,4,6,8,12,24),而24正好能被其因子数8整除,求[10,100]之间有多少个正整数能被其因子的个数整除.
#12多因子完备数的概念若某整数N的所有因子之和等于N的倍数,则N称为多因子完备数,如数28,其因子1、2、4、7、14、28之和是56=2*28,28是多因子完备数.
求[1,200]之间有多少个多因子完备数.
#4基本算法:二重循环外循环:forx=1to200穷举!
内循环功能一:求x的因子之和内循环功能二:判断处理最大公约数求出583573和559399的最大公约数.
#79基本算法:单循环求出所有因子程序PrivateSubForm_Click()a=583573:b=559399Forc=1TobIfaModc=0AndbModc=0ThenPrintcEndIfNextEndSub最小公倍数求出9269和8671的最小公倍数.
#268801a和b最大公约数d与最小公倍数k具有关系:a*b=d*k程序PrivateSubForm_Click()a=9269:b=8671Forc=1TobIfaModc=0AndbModc=0Thend=cEndIfNextPrinta*b/dEndSub6、组合问题:不定方程求解大、中、小学生共36人消费,每大4元,每中2元,每小1元,共120元,问大、中、小学生人数组合有多少种可能(每类学生学生的人数均不为0.
)基本算法:三重(或二重循环)程序(三重循环)PrivateSubForm_Click()n=0Forx=1To36Fory=1To36Forz=1To36Ifx+y+z=36And4*x+2*y+z=120Thenn=n+1Printx,y,zEndIfNextz,y,xPrintnEndSub求方程3x-7y=1在条件|x|B,且A和B均不为0).
#509(二级要求!
)程序PrivateSubForm_Click()s=0Forb=1To100Fora=b+1To100c=Int(Sqr(a+b))d=Int(Sqr(a-b))Ifc*c=a+bAndd*d=a-bThens=s+a-bDebug.
Printa,b,a+b,a-b,sEndIfNextNextPrintsEndSub10、数制转换求出将十进制整数98765432等值转换为二进制形式表示后,其中数字1的个数.
#13算法提示:单循环(2除取余法,直到余数为0)循环处理:r=xMod2,x=Int(x/2)计算器!
程序PrivateSubForm_click()x=98765432p=2n=0Whilex>0r=xModpIfr=1Thenn=n+1EndIfPrintp,x,rx=Int(x/p)WendPrintx,,nEndSub求出将十进制小数0.
5432等值转换为二进制形式表示后,其中小数点后第15位数字.
#1算法提示:单循环(2乘取整法)循环处理:r=int(2*x),x=x-r计算器:0.
5432*2^15二进制程序PrivateSubForm_click()x=0.
5432p=2PrintxForn=1To15y=p*xz=Int(y)x=y-zPrintz,xNextPrintzEndSub11、素数(质数)问题素数(质数)正整数P>1,只有1和P两个因子一般算法判断在1~P,有两个因子判断在2~P-1,没有因子判断在2~P0.
5,没有因子使用自定义函数(二级考生用)例:输出100以内的所有素数(普通算法)PrivateSubForm_click()Forx=2To100k=0Fori=2ToSqr(x)IfxModi=0Thenk=1ExitForEndIfNextIfk=0ThenPrintxNextEndSub思考题求100以内素数个数.
#25求[100,999]内素数和.
#75067求[500,2500]内第25个素数#659求[3,1000]内最大的五个素数之和.
#4919一级完毕二级继续判断素数的自定义内部逻辑函数prime(x)PrivateFunctionprime(x)AsBooleanIfx<2Thenprime=FalseExitFunctionEndIfFori=2ToSqr(x)IfxModi=0Thenprime=FalseExitFunctionEndIfNextprime=TrueEndFunction求出100以内素数个数PrivateSubForm_click()k=0Forn=1To100Ifprime(n)ThenDebug.
Printnk=k+1EndIfNextPrintkEndSubPrivateFunctionprime(x)AsBooleanIfx<2Thenprime=FalseExitFunctionEndIfFori=2ToSqr(x)IfxModi=0Thenprime=FalseExitFunctionEndIfNextprime=TrueEndFunction哥德巴赫猜想德国数学家哥德巴赫曾猜想:任何大于4的偶数都可以分解成两个奇素数的和.
有些偶数有多个分解式,如:10=3+7,10=5+5.
试求6744可以分解成多少个不同的分解式:6744=A+B(A<=B)#144基本算法:主程序用单循环主程序PrivateSubForm_Click()c=6744n=0Fora=3Toc\2Step2b=c-aIfprime(a)Andprime(b)Thenn=n+1Debug.
Printa,bEndIfNextPrintnEndSub'后接函数prime(x)双胞胎素数若两个素数之差为2,则称此两数为双胞胎数.
求出[200,1000]之间的最大一对双胞胎数的和.
#1764基本算法:主程序用单循环fora=200to1000-2主程序PrivateSubForm_Click()Fora=200To1000-2b=a+2Ifprime(a)Andprime(b)ThenDebug.
Printa,bc=a+bEndIfNextPrintcEndSub'后接函数prime(x)友素数若两个连续的自然数的乘积减1后是素数,则称此两数为友数对,该素数称为友素数.
例如,由于8*9-1=71,因此,8与9是友数对,71是友素数.
求[100,200]之间的友数对的数目.
#40主程序PrivateSubForm_Click()k=0Forn=100To200-1m=n*(n+1)-1Ifprime(m)Thenk=k+1Debug.
Printn,n+1,mEndIfNextPrintkEndSub'后接函数prime(x)第一类超级素数(不含0的)素数,且去掉前面一位或多位后仍是素数.
如1223基本算法:单循环处理:求有关数、判断素数对三位数x(如x=223):y=xMod100z=y=xMod10求[100,9999]内第一类超级素数个数.
可分别求出[100,999]和[1000,9999]的个数下面求[1000,9999]内的个数.
#99.
主程序PrivateSubForm_Click()n=0Forx=1000To9999y=xMod1000z=xMod100w=xMod10IfInStr(x,0)=0Andprime(x)Andprime(y)Andprime(z)Andprime(w)ThenDebug.
Printx,y,z,wn=n+1EndIfNextPrintnEndSub'后接函数prime(x)第二类超级素数(不含0的)素数,且去掉后面一位或多位后仍是素数.
如2333基本算法:单循环处理:求有关数、判断素数对三位数x(如x=233):y=Int(x/10)z=Int(y/100)求[100,9999]内第二类超级素数个数.
可分别求出[100,999]和[1000,9999]的个数下面求[1000,9999]内的个数.
#16主程序PrivateSubForm_Click()n=0Forx=1000To9999y=Int(x/10)z=Int(x/100)w=Int(x/1000)IfInStr(x,0)=0Andprime(x)Andprime(y)Andprime(z)Andprime(w)ThenDebug.
Printx,y,z,wn=n+1EndIfNextPrintnEndSub'后接函数prime(x)12、猴子选大王教材上例题(可耐心点,手工求)n个人围坐一圈,并顺序编号1~n,从1号开始数,每数到m个就让其出局,重复.
.
.
.
求最后出局者的编号.
当n=50,m=3时,答案为11谢谢!
祝考试顺利!

inlicloud48元/月,云主机,2核1G/200Mbps,可选安徽/上海联通/广州移动/江门移动NAT

inlicloud怎么样?inlicloud(引力主机)主要产品为国内NAT系列VPS,目前主要有:上海联通NAT(200Mbps带宽)、宿州联通NAT(200Mbps带宽)、广州移动NAT(200Mbps带宽)。根据官方的说法国内的NAT系列VPS不要求备案、不要求实名、对中转要求也不严格,但是,禁止任何形式的回国!安徽nat/上海联通/广州移动/江门移动nat云主机,2核1G/200Mbps仅...

陆零(¥25)云端专用的高性能、安全隔离的物理集群六折起

陆零网络是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护 为核心数据库、关键应用系统、高性能计算业务提供云端专用的高性能、安全隔离的物理集群。分钟级交付周期助你的企业获得实时的业务响应能力,助力核心业务飞速成...

青云互联-洛杉矶CN2弹性云限时五折,9.5元/月起,三网CN2gia回程,可选Windows,可自定义配置

官方网站:点击访问青云互联官网优惠码:五折优惠码:5LHbEhaS (一次性五折,可月付、季付、半年付、年付)活动方案:的套餐分为大带宽限流和小带宽不限流两种套餐,全部为KVM虚拟架构,而且配置都可以弹性设置1、洛杉矶cera机房三网回程cn2gia 洛杉矶cera机房                ...

vb入门教程为你推荐
视频截图软件我想知道什么软件可以从视频中截图?spgnuxPC操作系统如何描述flash导航条谁来帮我看看这样的flash导航条 下面的页面该怎么设计网站联盟网站联盟的运作流程办公协同软件协同企业办公的软件有哪些?怎么点亮qq空间图标QQ空间图标怎么点亮?雅虎天盾雅虎天盾、瑞星杀毒软件、瑞星防火墙、卡卡上网安全助手能同时使用吗?手工杀毒怎样不用杀毒软件自己手动查毒?手工杀毒手工杀毒与杀毒软件杀毒有什么区别?厦门铁通厦门铁通和电信哪个好点?
猫咪永久域名收藏地址 中国万网域名注册 上海服务器租用 北京租服务器 河南vps 中文域名交易中心 唯品秀 联通c套餐 百度云100as 美国主机评论 parseerror 个人空间申请 全站静态化 anylink 193邮箱 我爱水煮鱼 有益网络 双十一秒杀 安徽双线服务器 七夕快乐英语 更多