版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机等级考试
VB程序设计辅导
1
内容提要
⑸概括性指导
:■基础知识、重点结构、常用标准
函数、自定义函数、基本处理、
逻辑表达式
口常用算法:穷举法、递推
e分类练习
[■十多种常见类型(详见下页)
2
目5、因子问题-因子个数、和
曰6、组合问题:不定方程求解
3
67、高精度计算一除法
08、同构数
比9、完全平方数
010、数制转换
011、素数(质数)问题
@12、猴子选大王
4
VB面向对象基本概念”
⑸对象、事件、方法
口对象:窗体、标签、文本框、命
令按钮、计时器....
U事件:Load、Unload、Chang>
Click、KeyPress>LostFocus、
GotFocus>...
U方法:Print>Cis、Show、Move
5
⑸对象属性
HName>Caption/Text>Left、Top
Width、Height、Enabled>Visible
Font>...
河VB程序执行方式
U事件驱动编程机制
6
VB常用数据类型
©数值型
■Integer(%)>Long(&)
MSingle(!)>Double(#)
解字符串型
HString($)
。变体型
[■Variant
7
VB常用运算符
回数值运算
・八、,(负号)、*、/\、Mod、
+、-
同字符串运算
U&、+
纪逻辑运算
BAnd>Or、N®t
VB常用函数
日系统内部标准函数
U取整:Int(x)
口求余数:aModb
■求平方根:Sqr(x)
[■绝对值:Abs(x)
U四舍五入:Round(x,n)
U其它…9
回用户自定义函数
U逻辑函数判定:prime(x)
外部函数的方法(不讲)
内部函数的方法(程序的一部分)
见:有关素数程序设计部分
U注:二级必备!
10
VB基本输入、输出
纪InputBox输入和MsgBox输出
■文本框输入、输出
Bx=Val(Text1)>Textl=...
・窗体和立即窗口输出
■Print和Debug.Print
Tab(x)>Format(x,0...n)
11
VB程序基本结构与未初
■顺序结构
W选择(分支)结构
Ulf...Then...Else...
Ulf...Then
•••
Else
EndIf
12
yklE二_,
•I二叵区I
日判断成绩是否合格成绩结论
I
Ux=Val(Text1)计算|结束
[1Ifx<60ThenText2="不合格”
■Ifx>=60ThenText2="合格"
U或(第2、3行为)
nIfx<60ThenText2="不合格”
ElseText2="合格"
也可写成多行形式:
回多选择(分支)结构(一)
3If...Then
•••
Elself…Then
•••
Else
EndIf
14
•FQE目回区]
e判断成绩等级成绩等级
ElPrivateSubCommand1_Click()
nx=Val(Textl)计算结束
[1Ifx<60Then
口Text2="不及格”
nElselfx<70Then
口Text2=”及格”
■Elselfx<85Then
口Text2="良好”
[1Else
■Text2=”优秀”
■EndIf
HEndSub15
日多选择(分支)结构(二)
■SelectCase<测试表达式,
Case〈表达式歹ll表1>
•••
CaseElse
•••
EndSelect
表达式列表:(三种形式,见例题)
16
e判断成绩等级成绩等级
nPrivateSubCommand1Click。
nSelectCaseVal(Textl)计算结束
nCaseIs<60
3Text2="不及格”
HCase60,61,62,63,64,65,66,67,68,69
■Text2=”及格”
口Case70To84
3Text2="良好”
nCaseElse
口Text2=”优秀”
ElEndSelect
MEndSub17
©循环结构
[■For...Next
•While…Wend(无退出中途语句)
MDoWhile...Loop(共4种形式)
中途退出:ExitFor/Do
回嵌套
口分支与分支
口循环与循环
口循环与分支
18
©For循环输出20以内的奇数
[■PrivateSubForm_Click()
nFork=1To20Step2
nPrintk;
ElNext
DEndSub
19
awhile循环输出20以内的奇数
[■PrivateSubFormClickQ
Ok=1
[1Whilek<=20
3Printk;
Ok=k+2
[1Wend
DEndSub
20
©Do循环输出20以内的奇数
[■PrivateSubFormClickQ
Ok=1
[1DoWhilekv=20
3Printk;
Ok=k+2
nLoop
DEndSub
VB程序设计重点结构
⑸给出一种最常用的形式
■可作“模板”使用
【1学会填空!!!
22
©FOR结构
■Fori=.・.To...Step.
UIf...Then
(ExitFor)
EndIf
[■Next
23
程序中最基本的处斌
©计数
[■初值:n=0或…
口循环处理:n=n+1
比连加
[■初值:s=0或…
EI循环处理:s=s+i或…
24
e连乘
U初值:t=l或…
循环处理:t=t*i或…
25
最常用的判断
Wa被b整除(倍数、因子)
HaModb=0或a/b=a\b
日a是整数
UInt(a)=a
■应用:求不定方程的整数解
26
多条件组合为逻辑表达式
9x能被3整除但不能被4整除
MxMod3=0andxMod4)<>0
[Rx是能被3或5整除的偶数
UxMod2=0and(...or...)
U或xMod6=0andxMod10=0
27
精确与非精确编程思路
日精确编程:只输出所需结果。
⑸非精确编程:输出相关的数据,
从中容易得出所需要的结果。
28
日例:设s=2+4+6+,求s的最
大值,使s<=1000。#992
B(下两页有程序)
29
的非精确编程
■PrivateSubForm_Click()
ffls=0
[1Fork=2To100Step2
口s=s+k
nDebug.Printk,s
nNext
MEndSub
30
日精确编程(不细讲)
[■PrivateSubForm_Click()
口s=0
ElFork=2To100Step2
[Is=s+k
口Debug.Printk,s
ElIfs>=1000ThenExitFor
□Next
ElPrints-k
UEndSub31
VB程序改错
日考题1:计算1000以内,既能
被6整除又能被8整除的数的个
数。程序中有两行有错误。改
正错误,使它能输出正确的结
果。
U容易得到答案:1000\24=41
32
©原程序
MPrivateSubCommand1_Click()
[1DimnAsInteger
ElDimxAsInteger
[1x=1
[In=0
[1DoWhilexv=1000
ElIfxMod6=0OrxMod8=0Then
[In=n+1
11Endcase
[1x=x+1
ElLoop
DPrintn
IlEndSub
33
日错误、改正
DOr:And
MEndcase:EndIf
日运行结果
口VB窗体上添加命令按钮,再复制
代码,改错后启动程序,单击命
令按钮,得结果:41
34
纪考题2:求1〜100中,两个不同
的数之和能被3或7整除的“数
对”的对数(注意:3+5和5+3认
为是同一“数对”)?程序中
有两行有错误。改正错误,使
它能输出正确的结果。
35
回原程序
ElPrivateSubForm_Click()
ElDimnAsInteger,iAsInteger
nn=0
Ui=1
UDoWhilei<=100
OJ=1
ODoWhileJ<=100
OIFMOD(I+J,3)<>0ORMOD(I+J,7尸0then
Iln=n+1
ElEndIf
3J=J+1
nLoop
Ui=i-l
nLoop
[1Printn/2
ElEndSub36
⑸错误、改正
■If中的条件:i<>jAnd((i+j)
Mod3=0Or(i+j)Mod7=0)
Mi=i-1:i=i+l
日运行结果
■VB窗体代码窗口中复制程序代码,
改错后启动,单击窗体,得结果:
2121
37
VB程序填空(二级
⑸考题1:金星和地球在某一时
刻相对于太阳处于某一确定位
置,已知金星绕太阳一周为
225日,地球绕太阳一周为365
日,问两个行星至少经过多少
日仍同时回到原来的位置上?
口易得答案(公倍数):16425
38
回原程序
[1PrivateSubFormClickQ
ElDimm0&,n0&
ClDimmAsLong
DDimnAsLong
DDimrAsLong
[ImO=365
nnO=225
[Im=mO
[In=nO
Hr=mModn
nWhile_____
[Im=n
[In=r
Clr=mModn
[1Wend
[IPrintmO*nO/n
[1EndSub
39
❷填空
■r>0(去掉横线!)
日运行结果
UVB窗体代码窗口中复制程序代码,
填空后启动,单击窗体,得结果:
16425
40
间考题2:找出1-1000之间的全
部同构数的个数。同构数是指
一个数,它出现在它的平方数
的右端。例如,5的平方是25,
5是25中右端的数,5就是一个
同构数。同理,25也是一个同
构数。
41
回原程序
ElPrivateSubForm_click()
[1Fori=1To999
Hj=i*i
[1SelectCasej
ElCaseIs<99
01k=jMod10
[1CaseIs<999
01k=jMod100
flCaseElse
Ok=jMod1000
[IEndSelect
UIf________________Thens=s+1
[INexti
[1Prints
0EndSub
42
纪填空
■i=k(去掉横线!)
日运行结果
UVB窗体代码窗口中复制程序代码,
填空后启动,单击窗体,得结果:
6
口在If语句后增加:Printi,j,k
则可得中间结果。
VB编程题
©整理成十多种类型
44
1、简单的求和问题
⑸数列求和
■数列aj=f(i),求Sn=ai+...+an
Fori=lTon
a=Ri):s=s+a或s=s+Ri)
Next
⑸一定条件下的求和
45
©求1〜108所有整数的平方和。
#425754
Hi:1-108,f(i尸i*i
的求$=1*2+2*3+...+100*101
©求s=1*2+3*4+…+99*100
Hi:1,3,5,…,99,f(i)=i*(i+l)
46
纪求1〜135的平方根的和。
#1051.31
Hi:1-135,f(i)=sqr(i)
0求1〜135的和的平方根。
■s=sqr((135+l)*135/2)
©以上各题均可在Excel中求解
47
©求[351,432]之间所有既不能被3
整除,又不能被8整除的整数的和。
#18413
©求1到looo之内能被7或n整除,
但不能同时被7和11整除的所有
整数的个数。#208
48
特殊题
e求一正整数等差数列的前六项的
和,该数列前四项之和是26,四
项之积是880。
比求一正整数等差数列的前六项
的平方和,该数列的前四项之
和是26、之积是880。
口手工分解880易得数列前4项:
2、5、8、1149
2、等比数列及求和“
的求2+4+8+16+32+...,当累加
数大于9000时,则终止计算并
输出结果。#16382
■直接公式:f⑴=2。
■递推公式:a=2、a=2*a
U可Excel中求解
50
e程序i
[■PrivateSubForm_Click()
■s=0
nForn=1To20
na=2△n:s=s+a
ElPrintn,a,s
nIfs>9000ThenExitFor
nNext
nPrints
[■EndSub
51
e程序2
[■PrivateSubForm_Click()
na=1:s=0
nForn=1To20
na=2*a:s=s+a
ElPrintn,a,s
nIfs>9000ThenExitFor
nNext
nPrints
[■EndSub
52
W已知Sl=l,S2=l+2,S3=l+2+4,…,求
S=Sl+S2+S3+S4+...+S20的值。
#2097130
U可Excel中求解
A1=1,B1=1Q=1
A2=2*A1,B2=B1+A2,C2=C1+B2
将A2:C2填充至第20行
53
e程序
[■PrivateSubForm_Click()
ns=o:t=o
nForn=1To20
na=2A(n-1)
ns=s+a
nt=t+s
nPrintn,a,s51
[1Next
nPrintt
口EndSub
54
e一球从100米高处落至平地并连续
反弹、落下。设每次反弹高度按4/5
倍递减,试求出最小的自然数n,
使得此球从开始下落至第n次着地
时在垂直方向所经过的总路程超过
800米。
U基本算法:循环、(连乘、)连加
初值:h=1009s=h
循环:h=h*4/5,s=s+2*h
55
e程序
[■PrivateSubForm_Click()
nh=100:s=h
nForn=2To100
nh=h*4/5:s=s+2*h
nPrintn,h,s
nIfs>800ThenExitFor
nNext
ElPrintn
MEndSub
56
3、递推问题(Exce同辟)
口设有用26个表达式:a=l,
b=l/(a+l),c=l/(b+2),
z=l/(y+25),试泵出z的值。
#0.04
[■基本算法:循环、单项递推
UfM,n=2〜26:41/(计n-1)
57
因斐波那契数歹U{f(i)}:1,1,2,3,5,8,…,
试输出前20项。
口基本算法:循环、递推
U三种方法:
f⑴=1:出2)=1,f(n)=f(n-2)+出n-1)
fl=l:f2=l,fl=fl+f2:f2=f2+fl
fl=l:f2=l,Ffl+f2:fl=f2:f2=f
58
⑸基本解法(使用数组)
■定义数组:Dimf(20)
口循环初值:f⑴=l,f(2尸1;
口循环处理:f(n)=f(n-2)+f(n-1)
59
回程序
[■PrivateSubForm_Click()
口Dimf(20)一
Hf(l)=1:f(2)=1
[IDebug.Printf(l)
■Debug.Printf(2)
nForn=3To20
口f(n)=f(n-2)+f(n-1)
nDebug.Printf(n)
nNext
UEndSub
60
斐波那契数列{f⑴}:1,1,2,3,5,8,…
e求F(45)值。#1134903170
配求F(l)+F(2)+…+F(50)#32951280098
配求F(l)+F(3)+…+F(49)#12586269025
©求10000000内最大的#9227465
©求10000000内的个数#35
U均可在Excel中容易求得结果!
61
斐波那契数列一相关问题(例1)
日求S=l/2+2/3+3/5+5/8+…的前30
项的和。#18.46
■{f(n)}:1,2,3,5,8,…,31项
□S=l/2
■S=S+f(n-l)/f(n),n=3,4,…,31
62
斐波那契数列一相关问题(例2)
配求S=l/2+3/5+8/13+21/34+…的
前30项的和。#18.40
■{f(n)}:1,2,3,5,8,…(共60项)
BS=l/2
■S=S+f(n-l)/f(n),n=4,6,8,…,60
63
目程序
nPrivateSubForm_Click()
[1Dimf(60)一
Of(l)=l:f(2)=2:s=l/2
■Debug.Printf(l),f(2),s
ClForn=3To60
Hf(n)=f(n-2)+f(n-1)
[1IfnMod2=0Then
Ds=s+f(n-1)/f(n)
ElDebug.Printf(n-1),f(n)9s
[IEndIf
ElNext
■PrintFormat(s,n0.00n)
MEndSub
64
三项递推的数列
⑸一个数列,它的头三个数为0,
0,1,以后的每个数都是其前
三个数的和,求此数列的前30
项之和。#18947744
•Excel中求解:
Al=0,A2=0,A3=l
A4=A1+A2+A3,填充至30行
单击A列,状态行中有求和结果
65
4、常见数字问题的处理
日水仙花数:三位数,等于其各位
数字之立方和。
U记住10000以内:
153、370、371、407
[■考试题中,曾有四位水仙花数之
说。看清题意!
66
⑸水仙花数的算法是数字问题之
根本!
口算法一:单循环(x:100〜999)
由数x得出数字abc???(下页)
熟练掌握一种从数中取数字的方法
U算法二:三重循环(a:l〜9b,c:0〜9)
由数字a、b、c组成数x(100〜999)
67
e设x是一个三位数,百位到个位
分别是a、b、c,则:
Ma=Int(x/100)
■b=Int((x-100*a)/10)
Hc=xMod10
Int(a/b)可替换为a\b,如:
a=x\100
Mx-100*a)\10
68
⑸求水仙花数之程序(一)
BPrivateSubForm_Click()
nForx=100To999
[Ia=Int(x/100)
nb=Int((x-100*a)/10)
Elc=xMod10
nIfx=aA3+bA3+cA3ThenPrintx
HNext
UEndSub
69
e求水仙花数之程序(二)
[■PrivateSubForm_Click()
[1Fora=1To9
ElForb=0To9
nForc=0To9
[1x=a*100+b*10+c
nIfx=aA3+bA3+cA3ThenPrintx
flNextc,b,a
MEndSub
70
⑸设乂是一个四位数,千位到个位
分别是a、b、c、d,则:
ma=Int(x/1000)或x\1000
Mb=Int((x-lOOO*a)/lOO)
Mc=Int((x-1000*a-l00*b)/10)
Ud=xMod10
n(或见下页)
71
Bb=(x\100)Mod10
Uc=(x\10)Mod10
口或
Ub=(xMod1000)\100
Uc=(xMod100)\10
72
©求在[100,999]内所有不含数字0
且各位数字之积被96整除的数之
和。#26640
Ua*b*c〈>0anda*b*cmod96=0
73
回求[123,4321]内回文数的个数。
#120
U都看作四位数abed,两种情况
处理:
a=0andb=d
a<>0anda=dandb=c
74
£程序
MPrivateSubForm_Click()
OForx=123To4321
na=x\1000
nb=(x\100)Mod10
nc=(x\10)Mod10
Hd=xMod10
[1If(a=0Andb=d)Or(a<>0Anda
=dAndb=c)Thenn=n+1
ElNext
nPrintn
DEndSub
75
5、因子问题-因子个贰和
e问[1oo,2oo]之间有奇数个不同因
子的整数共有多少个?#5
:■基本算法:二重循环
外循环:forx=100to200穷举!
内循环模块一:求x之因子个数
内循环模块二:判断处理
76
目程序
MPrivateSubForm_Click()
ElForx=100To200
口k=0
CiFori=1Tox
ElIfxModi=0Thenk=k+1
HNext
nIfkMod2=1Then
ElPrintx
Eln=n+1
nEndIf
ElNext
■Printn
ElEndSub
77
完数
■一个数如果刚好与它所有的因
子之和相等,则称该数为“完
数”,如6=1+2+3,则6就是个
完数,求200到500之间所有的完
数之和。#496#
78
9程序
ElPrivateSubForm_click()
Hs=0
ElForx=200To500
Uk=0
ClFori=1Tox/2
ClIfxModi=0Then
Elk=k+i
ElEndIf
ClNext
UIfx=kThen
ElPrintx
ns=s+x
nEndIf
[INext
ElPrints
ElEndSub
79
完备数
E已知24有8个正整数因子(即:
1,2,3,4,6,8,12,24),而24正好
能被其因子数8整除,求[10,
100]之间有多少个正整数能被
其因子的个数整除。#12
80
多因子完备数的概态
日若某整数N的所有因子之和等于
N的倍数,则N称为多因子完备
数,如数28,其因子1、2、4、7、
14、28之和是56=2*28,28是多因
子完备数。
81
©求[1,200]之间有多少个多因子
完备数。#4
口基本算法:二重循环
外循环:forx=1to200穷举!
内循环功能一:求x的因子之和
内循环功能二:判断处理
82
最大公约数
©求出583573和559399的最大公
约数。#79
[■基本算法:单循环求出所有因子
83
⑸程序
MPrivateSubFormClickQ
na=583573:b=559399
nForc=1Tob
[IIfaModc=0AndbModc=0Then
nPrintc
[1EndIf
[1Next
HEndSub
84
最小公倍数
日求出9269和8671的最小公倍
数。#268801
■a和b最大公约数d与最小公倍
数k具有关系:a*b=d*k
85
e程序
[■PrivateSubForm_Click()
Ha=9269:b=8671
[IForc=1Tob
nIfaModc=0AndbModc=0Then
[Id=c
UEndIf
口Next
■Printa*b/d
HEndSub
86
6、组合问题:不定方瘠全解
©大、"小学生?36人消豆,
每大4元,每中2元,每小1元,
共120元,问大、中、小学生人
数组合有多少种可能?(每类学
生学生的人数均不为0。)
U基本算法:三重(或二重循环)
87
©程序(三重循环)
ElPrivateSubForm_Click()
■n=0
ElForx=1To36
ElFory=1To36
HForz=1To36
ElIfx+y+z=36And4*x+2*y+z=120Then
Hn=n+1
ElPrintx,y,z
DEndIf
ElNextz,y,x
■Printn
BEndSub
88
求方程3x-7y=l在条件|x|〈100且
|y|<40下的整数解的个数。#26
U基本算法:二重或单循环
89
©已知正整数A,B(假定A<B),满
足A*B=5432,^S=A+B的最小
值。#153
[■数学结论:A与B相差小其和就小
U基本算法:二重或单循环求因子
90
(勾、股、)弦薮“
陀勾、股、弦(正整数)
a2+b2=c2(求组数:a<b<c)
■基本算法(多重循环)
Uc:(有固定值或循环给出)
b:2〜c-1
a:1〜b-1
91
纪求[121,140]之间的弦数的个
数。(如5是弦数:32+42=52)
#8
■752+1002=125
口442+1172=125
不能因此说125是2个弦数!
92
目程序c
MPrivateSubForm_Click()
■n=0
ElForc=121To140
[1Forb=2Toc-1
nFora=1Tob-1
[IIfa*a+b*b=c*cThen
[1Printa,b,c
[In=n+1
Ha=c:b=c,此语句的作用是去掉重复!
[|EndIf
DNexta,b,c
01Printn
MEndSub
93
一个特殊考题
W今有5羊4犬3鸡2兔值钱1496,4羊2
犬6鸡3兔值钱1175,3羊1犬7鸡5兔
值钱958,,2羊3犬5鸡1兔值钱861。
求羊价。#177(、121、23、29)
[15x+4y+3z+2w=1496
D4x+2y+6z+3w=l175
U3x+y+7z+5w=958
M2x+3y+5z+w=861
7、高精度计算一面丢
©令a=113,b=355,不考虑四舍五
入,求a/b的结果中:
(1)小数点后第30位数字是几?
(2)小数点后前30位数字之和是
多少?
■答案:(1)4(2)160(算法见下页)
U计算器可得32位小数!
95
由a、b求q、r使10*a=6*q+r
比基本算法
[■循环:fori=lto30
[■基本处理:模拟手工计算方法
U每做一次除法,得一位商和余数
a=a*10
q=Int(a/b)或a\10
a=aModbr就是下一次的a
96
⑸程序
[■PrivateSubForm_Click()
na=113:b=355―
■s=0
ElForn=1To30
Ela=a*10
Elq=Int(a/b)
Els=s+q
[1a=aModb
[1'Printq,a
HNext
[1Printq,s
MEndSub97
8、同构数
内所谓“同构数”:一个数,它
出现在它的平方数的右侧。
II记住10000以内的:1、5、6、25、
76、376、625、9376
U特点:x*xModm尸x
Um=10、100、1000、10000
98
回程序
[1PrivateSubFormClickQ
[In=0
9Forx=1To9999
DSelectCasex
[ICaseIs<10
Hm=10
[ICaseIs<100
01m=100
01CaseIs<1000
[Im=1000
[ICaseElse
DIm=10000
[1EndSelect
[1Ifx*xModm=xThen
[1Printx,x*x
DIn=n+1
ElEndIf
DNext
nPrintn
99
[1EndSub
9、完全平方数
和完全平方数x(如144=122)
□y=int(sqr(x))满足条件:x=y*y
mi,4,9,25,...
■求1000以内完全平方数个数。
■1,4,9,16,...,961
■n=Int(Sqr(1000))
100
⑸程序
MPrivateSubFormClickQ
Ein=0
[1Forx=1To1000
Ely=Int(Sqr(x))
[1Ifx=y*yThen
[1Debug.Printx
[1n=n+1
口EndIf
nNext
[1Printn
UEndSub
101
因自然数对是指两个自然数的
和与差都是平方数,如17和8
的和17+8=25与其差17-8=9
都是平方数,则称17和8是自
然数对(17,8)o求所有自
然数对(A,B)中A-B之差的
和(其中A〈二100,B<=100,
A〉B,且A和B均不为0)o
#509(二级要求!)
102
⑸程序
DPrivateSubForm_Click()
Hs=0
0Forb=1To100
ElFora=b+1To100
[1c=Int(Sqr(a+b))
[1d=Int(Sqr(a-b))
0Ifc*c=a+bAndd*d=a-bThen
Hs=s+a-b
DDebug.Printa,b,a+b,a-b,s
flEndIf
口Next
ElNext
[1Prints
DEndSub
103
10、数制转换
日求出将十进制整数98765432等值
转换为二进制形式表示后,其中
数字1的个数。#13
U算法提示:单循环(2除取余法,直到
余数为0)
■循环处理:r=xMod2,x=Int(x/2)
计算器!
104
回程序
nPrivateSubForm_click()
Ux=98765432―
np=2
nn=0
nWhilex>0
[1r=xModp
ElIfr=1Then
Eln=n+1
0EndIf
[1Printp,x,r
[Ix=Int(x/p)
[1Wend
0Printx,,n
ElEndSub
105
e求出将十进制小数0.5432等值转
换为二进制形式表示后,其中小
数点后第15位数字。#1
口算法提示:单循环(2乘取整法)
■循环处理:r=int(2*x),x=x-r
计算器:0.5432*2A15”二进制
106
©程序
MPrivateSubForm_click()
口x=0.5432—
Up=2
ElPrintx
ElForn=1To15
Dy=p*x
Elz=Int(y)
Dx=y_z
ElPrintz,x
口Next
■Printz
MEndSub
107
1K素数(质数)问题
纪素数(质数)
・正整数P>I,只有1和P两个因子
比一般算法
[■判断在1〜P,有两个因子
口判断在2〜P-1,没有因子
■判断在2〜pg,没有因子
因使用自定义函数(二级考生用)
108
e例:输出ioo以内的所有素数(普通算法)
DPrivateSubForm_click()
nForx=2To100
口k=0
nFori=2ToSqr(x)
[1IfxModi=0Then
口k=1
ElExitFor
口EndIf
[1Next
nIfk=0ThenPrintx
nNext
MEndSub109
思考题
■求100以内素数个数。#25
日求[100,999]内素数和。#75067
日求[500,2500]内第25个素数#659
⑸求[3,1000]内最大的五个素数之
和。#4919
110
一级完毕
二级继续
111
⑸判断素数的自定义内部逻辑函数prime(x)
DPrivateFunctionprime(x)AsBoolean
nIfx<2Then
[1prime=False
[1ExitFunction
■EndIf
[1Fori=2ToSqr(x)
ElIfxModi=0Then
[1prime=False
ElExitFunction
[1EndIf
[1Next
Elprime=True
MEndFunction
112
求出100以内素数个数
DiPrivateSubForm_click()
Clk=0
ClForn=1To100
DiIfprime(n)Then
ClDebug.Printn
Clk=k+1
ClEndIf
ClNext
nPrintk
DiEndSub
DiPrivateFunctionprime(x)AsBoolean
ClIfx<2Then
Clprime=False
HiExitFunction
ClEndIf
[1Fori=2ToSqr(x)
ClIfxModi=0Then
[1prime=False
ClExitFunction
ElEndIf
ClNext
Clprime=True
[1EndFunction
113
哥德巴赫猜想
日德国数学家哥德巴赫曾猜想:
任何大于4的偶数都可以分解成
两个奇素数的和。
[■有些偶数有多个分解式,如:
10=3+7,10=5+5。
114
⑸试求6744可以分解成多少个不
同的分解式:6744=A+B
(A<=B)#144
U基本算法:主程序用单循环
115
回主程序
MPrivateSubForm_Click()
口c=6744―
Hn=0
nFora=3Toc\2Step2
[Ib=c-a
■Ifprime(a)Andprime(b)Then
[In=n+1
nDebug.Printa,b
口EndIf
■Next
[1Printn
DEndSub后接函数Mgne(x)
双胞胎
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 43924.2-2024航空航天MJ螺纹第2部分:螺栓和螺母螺纹的极限尺寸
- 工程师个人述职报告
- 大学教师工作总结(精)
- 爱中国的观后感参考7篇
- 拍卖师聘用合同
- 家纺品牌招商加盟合同10年执行版
- 塔吊顶升加节安全技术交底
- 石方开挖工程检验批质量验收记录
- 储罐年度检查报告
- 地下综合管廊项目投标联合体协议
- MOOC 地球科学概论-中国地质大学(武汉) 中国大学慕课答案
- 2024-2030年中国SOC芯片及系统集成产品市场前景预测及投资规划研究报告
- 2024-2029年中国刹车鼓行业发展前景分析及趋势预测报告预测
- 2024年中考语文【热点重点难点】专练(北京专用)热点08古诗文默写(原卷版+解析)
- 大单元视域下小学语文的单篇教学
- 新能源汽车的物流运输应用分析
- 【默克尔钢琴曲的演奏技巧探析实例-蝴蝶为例5200字(论文)】
- 初中地理家长会课件:了解地球与环境培养地理思维
- 环境治理与生态保护的协同机制
- 营销管理方案中的产品生命周期管理策略和控制
- 2024保密工作总结参考8篇
评论
0/150
提交评论