湖南省計算機等級考試輔導_第1頁
湖南省計算機等級考試輔導_第2頁
湖南省計算機等級考試輔導_第3頁
湖南省計算機等級考試輔導_第4頁
湖南省計算機等級考試輔導_第5頁
已閱讀5頁,還剩86頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

湖南省計算:機等級考試

輔導

2006年n月

計算機系一劉永逸

1

內容提要

院概括性指導

國重點結構、常用標準函數、自定

義函數、基本處理、邏輯表達式

日常用算法:窮舉法、遞推

更分類練習

Ci十多種常見類型

2

FoxPro程序的基本結構

配順序結構

紀選擇(分支)結構

■IF...ELSE...ENDIF

更多選擇(分支)結構

3D0CASE...ENDCASE

3

圮循環結構

HDOWHILE...ENDDO

HFOR...ENDFOR/NEXT

紀嵌套

島分支與分支

■循環與循環

■循環與分支

程序中可省代碼

Rsettalkon

比clear&&此句一般保留

Rsettalkoff

Rreturn

5

配給出兩種常用結構

比可作“模板”使用

紀學會填空!!!

配FOR...ENDFOR|NEXT結構

fbri=...to...step...

if...

(loop、exit)

endif

endfor計數循環!

7

RDOWHILE...ENDDO結構

s=...

i=...

dowhile...

enddo

?...一般的當型循環!

8

FoxPro程序中常用函數

W系統內部標準函數

島取整:int(x)

U求余數:mod(a,b)

11求平方根:sqrt(x)

II絕對值:abs(x)

U其它…

9

W用戶自定義函數

II邏輯函數判定:prime(x)

外部函數的方法(不講)

內部函數的方法(程序的一部分)

見:有關素數程序設計部分

II注:二級必備!

10

程序中最基本的處斌

W計數

■初值:n=0或…

■循環處理:n=n+l

回連加

口初值:s=0或…

U循環處理:s=s+i或...

11

紀連乘

國初值:t=l或…

循環處理:t=t*i或…

12

最常用的判斷

Ph被b整除(倍數、因子)

Hmod(a,b)=0

口a是整數

Mint(a)=a

?應用:求不定方程的整數解

13

多條件組合為邏輯表達式

PJx能被3整除但不能被4整除

■mod(x,3)=0andmod(x,4)#0

因x是能被3或5整除的偶數

Hmod(x,2)=0and(...or...)

14

精確與非精確編程思路

同精確編程:只輸出所需結果。

紀非精確編程:輸出相關的數據,

從中容易得出所需要的結果。

15

四例:設s=2+4+6+,求s的最

大值,使s〈=1000。#992

(下兩頁有程序)

16

精確編程(不細講5

日clear

Rn=O

Rs=O

配dowhiles<1000

紀n=n+2

紀s=s+n

B*?n,s

Renddo

R?s-n17

非精確編程

Rclear

Ws=O

Rfbrn=2to100step2

Rs=s+n

R?n,s

Eendfor

18

1、簡單的求和問題

比數列求和

Hai=f(n),求Sn=ai+...+an,是數列

循環處理:a=f(i),s=s+a

或s=s+f(i)

和一定條件下的求和

19

配求1?108所有整數的平方和。

#425754

配求s=l*2+2*3+...+100*101

配求s=l*3+3*5+...+99*101

W可在Excel中求解

20

比求1?135的平方根的和。

#1051.31

國基本算法:循環、連加

可在Excel中求解

配求1?135的和的平方根。

21

日求[351,432]之間所有既不能被3

整除,又不能被8整除的整數的和。

#18413

w求1至U1ooo之內能被7或n整除,

但不能同時被7和11整除的所有

整數的個數。#208

22

2、等比數列及求和“

配求2+4+8+16+32+...,當累加

數大于9000時,則終止計算并

輸出結果。#16382

23

0已知Sl=l,S2=l+2,

S3=l+2+4,…,求

S=S1+S2+S3+S4+...+S20的值。

#2097130

24

比一球從100米高處落至平地并連

續反彈、落下。設每次反彈高度

按4/5倍遞減,試求出最小的自

然數n,使得此球從開始下落至

第n次著地時在垂直方向所經過

的總路程超過800米。

0基本算法:循環、(連乘、)連加

25

3、遞推問題(Excel時麻)

紀設有用26個表達式:a=l,

b=l/(a+l),c=l/(b+2),

z=1/(y+25),試泵出z的值。

#0.04

田基本算法:循環、單項遞推

助1尸1,f(n尸1/(f(n-l)+n-l)

26

紀斐波那契數歹!J{f(i)}:1,1,2,3,5,8,…,

試輸出前20項。

■基本算法:循環、遞推

Bf(l>1,f(2)=l,f(n>f(n-2)+f(n-l)

27

回基本算法(使用數組)

[1定義數組:dimensionf(50)

國循環初值:f⑴=l,f(2尸1;

國循環處理:f(n)=f(n-2)+f(n-1)

28

配clear

gdimef(20)

紀f⑴=1

紀f(2)=l

H?f(l),f(2)

Rfbrn=3to20

Kf(n>f(n-2)+f(n-l)

叵??f(n)

Flendfor

29

斐波那契數列{f⑴}:1,1,2,3,5,8,…

紀求F(45)值。#1134903170

紀求F(l)+F(2)+…+F(50)#32951280098

紀求F(l)+F(3)+...+F(49)#12586269025

紀求10000000內最大的#9227465

紀求10000000內的個數#35

30

斐波那契數列一相關問題(例1)

內求S=l/2+2/3+3/5+5/8+…的前30

項的和。#18.46

3{f(n)}:1,2,3,5,8,...,31項

■S=l/2

■S=S+f(n-l)/f(n),n=3,4,…,31

31

斐波那契數列一相關問題(例2)

同求S=l/2+3/5+8/13+21/34+…的

前30項的和。#18.40

■{f(n)}:123,5,8,…,60項

■S=l/2

■S=S+f(n-l)/f(n),n=4,6,8,…,60

32

三項遞推的數列

門一個數列,它的頭三個數為0,

0,1,以后的每個數都是其前

三個數的和,求此數列的前30

項之和。#18947744

33

4、常見數字問題的處誣

m水仙花數:三位數,等于其各位

數字之立方和。

,記住10000以內:

153、370、371、407

,考試中,有四位水仙花數之說。

看清題意!

34

W水仙花數的算法是數字問題之

根本!

?算法一:單循環(x:100?999)

由由數x得出數字abc???

熟練掌握一種從數中取數字的方法

國算法二:三重循環(a:l?9b,c:0?9)

由數字a、b、c組成數x(100?999)

35

W設X是一個四位數,千位到個位

分別是a、b、c、d,則:

3a=int(x/1000)

Bb=int((x-1000*a)/100)

■c=int((x-1OOO*a-l00*b)/10)

3d=mod(x,10)

■(或見下頁)

36

Hb=mod(int(x/100),10)

■c=mod(int(x/l0),10)

Cl或

Mb=int(mod(x?1000)/100)

Mc=int(mod(x,100)/10)

37

FJclear&&水仙花程序1

gn=O

紀forx=100to999

紀a=int(x/100)

Rb=int((x-a*100)/10)

紀c=mod(x510)

Wifx=a*a*a+b*b*b+c*c*c

紀n=n+1

S?n,x

配endif

F^endfbr

38

紀clear&&水仙花程序2

⑸n=0

Rfora=lto9

叵forb=0to9

紀forc=0to9

紀x=100*a+10*b+c

比ifx=a*a*a+b*b*b+c*c*c

紀??x

紀n=n+1

⑸endif

回endfor

gendfor

紀endfor

紀?n

39

比求在[100,999]內所有不含數字0

且各位數字之積被96整除的數之

和。#26640

Ua*b*c〈>0andmod(a*b*c,96)=0

40

配求[123,4321]內回文數的個數。

#120

■都看作四位數abed,兩種情況

處理:

a=0andb=d

Sa<>0anda=dandb=c

41

clear&&回文數程序1

紀n=0

紀forx=123to4321

Ra=int(x/1000)

紀b=int((x-a*1000)/100)

£c=int((x-a*1000-b*100)/10)

紀d=mod(x910)

gif(a=0andb=d)or(a<>0anda=dandb=c)

紀n=n+1

紀??x

紀endif

gendfor

紀?n

42

紀clear&&回文數程序2

紀n=0

Kfora=0to4

紀forb=0to9

Rforc=0to9

Rford=0to9

紀x=1000*a+100*b+10*c+d

£ifx>=123andx<=4321and((a=0andb=d)or(a<>0

anda=dandb=c))

紀??x

紀n=n+1

叵endif

紀endfor

紀endfor

紀endfor

紀endfor

紀?n

43

5、因子問題-因子個數、和

W問[100,200]之間有奇數個不同因

子的整數共有多少個?#5

國基本算法:二重循環

白外循環:forx=100to200窮舉!

內循環模塊一:求X之因子個數

內循環模塊二:判斷處理

44

阿clear

gn=0

gforx=100to200

紀k=0

£fori=ltox

Rifmod(x,i)=0

紀k=k+l

紀endif

£endfbr

Rifmod(k,2)=l

g??x

紀n=n+1

gendif

Rendfor

E?n45

完數

回求在[10,1000]之間的所有完數

之和。各真因子之和(不包括自

身)等于其本身的正整數稱為完

數。例如:6=1+2+3,6是完數。

#524

46

[1settalkoff

[1clear

nk=o

■forn=10to1000

ns=o

Elfori=1ton/2

3ifmod(n,i)=0

9s=s+i

[1endif

[1endfor

3ifs=n

[1k=k+n

[1endif

[1endfor

B?k

[1settalkon

[]return47

完備數

因已知24有8個正整數因子(即:

1,2,3,4,6,8,12,24),而24正好

能被其因子數8整除,求[10,

100]之間有多少個正整數能被

其因子的個數整除。#12

48

多因子完備數的概態

同若某整數N的所有因子之和等于

N的倍數,則N稱為多因子完備

數,如數28,其因子1、2、4、7、

14、28之和是56=2*28,28是多因

子完備數。

49

因求[1,200]之間有多少個多因子

完備數。#4

國基本算法:二重循環

外循環:forx=1to200窮舉!

內循環功能一:求x的因子之和

內循環功能二:判斷處理

50

最大公約數

日求出583573和559399的最大公

約數。#79

國基本算法:單循環求出所有因子

51

最小公倍數

力求出9269和8671的最小公倍

數。#268801

Ua和b最大公約數d與最小公倍

數k具有關系:a*b=d*k

52

6、組合問題:不定方直象解

紀大、號、小學生?36人消皂,

每大4元,每中2元,每小1元,

共120元,問大、中、小學生人

數組合有多少種可能?(每類學

生學生的人數均不為0。)

?基本算法:三重(或二重循環)

53

程序(三重循環)

Rclear

紀n=0

紀forx=lto36

紀fory=lto36

紀forz=lto36

紀ifx+y+z=36and4*x+2*y+z=120

紀n=n+1

紀?x,y,z

紀endif

紀endfor

回endfor

紀endfor

紀?n

54

配求方程3x-7y=1在條件岡v100且

|y|<40下的整數解的個數。#26

0■基本算法:二重或單循環

55

W已知正整數A,B(假定A<B),滿

足A*B=5432,^S=A+B的最小

值。#153

■數學結論:A與B相差小其和就小

?基本算法:二重或單循環求因子

56

(勾、股、)弦教”

門勾、股、弦(正整數)

a2+b2=c2(求組數:a<b<c)

基本算法(多重循環)

■(1)c:(有固定值或循環給出)

耿2)b:2?c-1

ffl(3)a:1?b-1

57

因求[121,140]之間的弦數的個

數。(如5是弦數:

3A2+4A2=5八2)#8

58

Eclear

回forc=121to140

叵forb=2toc-1

叵fora=ltob-1

叵ifa*a+b*b=c*c

叵?a,b,c

£endif

Rendf

紀endf

Flendf

59

一個特殊考題

月今有5羊4犬3雞2兔值錢1496,4羊2

犬6雞3兔值錢H75,3羊1犬7雞5兔

值錢958,,2羊3犬5雞1兔值錢861。

求羊價。#177(、121、23、29)

U5x+4y+3z+2w=1496

[14x+2y+6z+3w=l175

[13x+y+7z+5w=958

32x+3y+5z+w=80l

7、高精度計算一面丟

圮令a=113,b=355,不考慮四舍五

入,求a/b的結果中:

(1)小數點后第30位數字是幾?

(2)小數點后前30位數字之和是

多少?

?答案:(1)4(2)160(算法見下頁)

U計算器可得32位小數!

61

由a、b求q、r使10*a=6*q+r

配基本算法

I■循環:fori=lto30

■基本處理:模擬手工計算方法

EI每做一次除法,得一位商和余數

a=a*10

q=int(a/10)

a=mod(a,b)r就是下一次的a

62

程序

紀a=H3W*??str(q,1)

皎=355回s=s+q

配s=0Ra=mod(a,b)

Rfbri=lto30Rendfor

至a=a*10叵?q,s

紀q=int(a/b)^return

63

8、同構數

覺所謂“同構數”:一個數,它

出現在它的平方數的右側。

I■記住10000以內的:1、5、6、25、

76、376、625、9376

1朱點?mod(x*x,m)=x

Hm=10、100、1000

64

clear

n=0

forx=lto9999

docase

casex<10

m=10

casex<100

m=100

casex<1000

m=1000

casex<10000

m=10000

endcase

ifmod(x*x,m)=x

?x,x*x

n=n+l

endif

endfbr

?n

65

9、完全平方數

力完全平方數X(如144=122)

■y=int(sqrt(x))滿足條件:x=y*y

□1,4,9,25,...

日求1000以內完全平方數個數。

31,4,9,16,...,961

66

紀clear

Kn=0

Rforx=1to1000

紀y=int(sqrt(x))

配ifx=y*y

目??x

紀n=n+1

?endif

Rendfbr

紀?n

67

10、數制轉換’

日求出將十進制整數98765432等

值轉換為二進制形式表示后,

其中數字1的個數。#13

■算法提示:單循環(2除取余法,

直到余數為0)

I循環處理:r=x%2,x=int(x/2)

計算器!

68

紀clear程序

紀x=98765432

紀p=2

紀n=0

紀dowhilex>0

紀r=mod(x,p)

紀ifr=l

紀n=n+1

紀endif

紀?p,xj

Rx=int(x/p)

紀enddo

紀?str(x,20)

紀?n

69

日求出將十進制小數0.5432等值轉

換為二進制形式表示后,其中小

數點后第15位數字。#1

■算法提示:單循環(2乘取整法)

■循環處理:r=int(2*x),x=x-r

計算器:0.5432*2A156二進制

70

程序

Eclear

紀x=0.5432

£p=2

E?x

紀forn=lto15

紀y=p*x

紀?y

紀z=int(y)

Rx=y-z

紀endfor

紀?z

71

11、素數(質數)問題

紀一般算法(略)

紀使用自定義函數

72

使用自定義內部邏輯函數prime(x)

紀functionprimeRfbri=2tox-1

=

^parameters牢紀ifmod(x,i)0

紀privatei記Rreturn.f.

Rifx<2在紀endif

回return.f.Rendfor

Rreturn.t.

Rendif73

舉例

日求100以內素數個數。#25

配求[100,999]內素數和。#75067

配求[500,2500]內第25個素數#659

力求[3,1000]內最大的五個素數之

和。#4919

O(題1的程序見下頁)

74

clear

n=0

forx=lto100

ifprime(x)

??x

n=n+l

endif

endfor

?n

return

functionprime

parametersx

privatei

ifx<2

return.f.

endif

fori=2tox-1

ifmod(x,i)=0

return.f.

endif

endfor

return.t.

75

哥德巴赫猜測

院德國數學家哥德巴赫曾猜測:

任何大于4的偶數都可以分解成

兩個奇素數的和。

■有些偶數有多個分解式,如:

10=3+7,10=5+5。

76

紀試求6744可以分解成多少個不

同的分解式:6744=A+B

(A<=B)#144

ri基本算法:主程序用單循環

77

Rc=6744解答

紀n=0

Rfora=3toc/2step2

Rb=c-a

Eifprime(a)andprime(b)

£n=n+1

gendif

Kendfor

叵?n&&后接函數

78

雙胞胎素數

配若兩個素數之差為2,則稱

此兩數為雙胞胎數。求出

[200,1000]之間的最大一對

雙胞胎數的和。#1764

■基本算法:主程序用單循環

fbra=200to1000-2

79

Rfora=200to1000-2

Rifprime(a)andprime(a+2)

Rs=2*a+2

R?a,a+2,s

Rendif

Rnext

R?s&&后接函數

80

友素數

門若兩個連續的自然數的乘積減1

后是素數,則稱此兩數為友數對

該素數稱為友素數。例如,由于

8*9-1=71,因此,8與9是友數

對,71是友素數。求[100,200]

之間的友數對的數目。#40

81

Qk=O

比forn=100to200-1

Rifprime(n*(n+l)-l)

Ek=k+l

比endif

Knext

R?k&&后接函數

82

第一類超級素

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論