计算机等级考试VB程序设计辅导_第1页
计算机等级考试VB程序设计辅导_第2页
计算机等级考试VB程序设计辅导_第3页
计算机等级考试VB程序设计辅导_第4页
计算机等级考试VB程序设计辅导_第5页
已阅读5页,还剩123页未读 继续免费阅读

下载本文档

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

文档简介

计算机等级考试

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论