素数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谢谢!
祝考试顺利!

杭州王小玉网-美国CERA 2核8G内存19.9元/月,香港,日本E3/16G/20M CN2带宽150元/月,美国宿主机1500元,国内宿主机1200元

官方网站:点击访问王小玉网络官网活动方案:买美国云服务器就选MF.0220.CN 实力 强 强 强!!!杭州王小玉网络 旗下 魔方资源池 “我亏本你引流活动 ” mf.0220.CNCPU型号内存硬盘美国CERA机房 E5 2696v2 2核心8G30G总硬盘1个独立IP19.9元/月 续费同价mf.0220.CN 购买湖北100G防御 E5 2690v2 4核心4G...

ReliableSite:美国服务器租用,洛杉矶/纽约/迈阿密等机房;E3-1240V6/64GB/1TSSD,$95/月

reliablesite怎么样?reliablesite是一家于2006年成立的老牌美国主机商,主要提供独服,数据中心有迈阿密、纽约、洛杉矶等,均免费提供20Gbps DDoS防护,150TB月流量,1Gbps带宽。月付19美金可升级为10Gbps带宽。洛杉矶/纽约/迈阿密等机房,E3-1240V6/64GB内存/1TB SSD硬盘/DDOS/150TB流量/1Gbps带宽/DDOS,$95/月,...

TTcloud:日本独立服务器促销活动,价格$70/月起,季付送10Mbps带宽

ttcloud怎么样?ttcloud是一家海外服务器厂商,运营服务器已经有10年时间,公司注册地址在香港地区,业务范围包括服务器托管,机柜托管,独立服务器等在内的多种服务。我们后台工单支持英文和中文服务。TTcloud最近推出了新上架的日本独立服务器促销活动,价格 $70/月起,季付送10Mbps带宽。也可以跟进客户的需求进行各种DIY定制。点击进入:ttcloud官方网站地址TTcloud拥有自...

vb入门教程为你推荐
qq讨论组如何在手机qq上创建讨论组?雅虎社区有什么网站的论坛内容丰富 资讯较新 适合年轻人的?手机区号手机号码+86是移动区号还是联通的区号?网店推广网站开网店如何做推广?xp系统停止服务XP系统停止服务后怎么办?ios系统ios系统和安卓系统对比起来有什么优点和缺点?二层交换机什么是二层交换机云挂机云软件挂机赚钱是骗子虚拟机软件下载谁有虚拟机软件的网址要好用的怎么上传音乐怎么上传音乐到网上
com域名注册1元 美国vps评测 virpus 鲨鱼机 godaddy续费优惠码 警告本网站 全能主机 天互数据 空间出租 双线机房 免费mysql数据库 云营销系统 lamp兄弟连 空间服务器 阿里云邮箱申请 789电视剧网 电信主机托管 什么是dns apachetomcat ubuntu安装教程 更多