數(shù)組教學課件2_第1頁
數(shù)組教學課件2_第2頁
數(shù)組教學課件2_第3頁
數(shù)組教學課件2_第4頁
數(shù)組教學課件2_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第5章數(shù)組

封售機假件技術基礎

5.1數(shù)組的基本概念P105

數(shù)組概念的引出

舉一個例子:求XLX2,…,X100這100個數(shù)的和,用

簡單變量的方法是:

SUM=X1+X2+...+X100

可以看出,語句很長,書寫費事且容易出錯,如果數(shù)據(jù)再多,

就更難處理。若用數(shù)組編程,則求和程序為:

DIMX(100)<=1數(shù)組說明符

SUM=0

FORA%=1TO100

SUM=SUM+X(A%)

NEXT

上述程序精練,通用性好。這種用一組具有相同名稱、

不同下標的變量來表示同一屬性的一組數(shù)據(jù)稱為數(shù)組,它能清

楚的表示數(shù)據(jù)間的關系,并且方便編程。

封售機假件技術基礎EB?

在上例中,X為數(shù)組名,括號中的值稱為下標。數(shù)

組中的每個值稱為數(shù)組元素。一個數(shù)組可以有若干個數(shù)

組元素,下標用來指出某個數(shù)組元素在數(shù)組中的位置,

如X(8)代表數(shù)組中的第8個元素。

具有一個下標的數(shù)組元素所組成的數(shù)組稱為一維

數(shù)組;而具有兩個或多個下標的數(shù)組元素所組成的數(shù)組

稱為二維數(shù)組或多維數(shù)組。

為了描述一個數(shù)組的大小,即指定各維的下標界

限,需要使用數(shù)組定義語句。

封售機假件技術基礎EB?

一、數(shù)組的定義

格式:Dim數(shù)組名(下標)[As數(shù)組類型]

功能:定義一個數(shù)組各維的大小,并分配相應的存儲空間。

說明:

①數(shù)組必須先聲明后使用。

②數(shù)組名與簡單變量的命名規(guī)則相同。

③下標是數(shù)組的維數(shù),可用來定義多維數(shù)組,系統(tǒng)允許的

最大維數(shù)是63,其格式如下:

[下界To]上界[,[下界To]上界]…

該格式用來說明數(shù)組各維的上下界。一般情況下,當[下界To]

缺省時,數(shù)組元素下標的下界值為0;當使用[下界To]上界

時,下標的范圍在土32K之間,并且下界必須小于上界。

封售機假件技術基礎

④[As數(shù)組類型]是選擇項,用來說明數(shù)組的類型。默認為

是變體類型數(shù)組。例如:

Dima(12)AsSingle

'聲明a數(shù)組為單精度型,下標范圍為0?12

Dimx(1To50)AsInteger

'x數(shù)組為整型,下標范圍為1?50。

Dimy(lTo10)

'聲明y是一個下標范圍為1到10的變體數(shù)組。

⑤Dim語句中的下標可以是常數(shù),也可以是表達式。下標全

為常數(shù)的稱為靜態(tài)數(shù)組,即數(shù)組大小在編譯時是確定的;下

標中有變量則稱為動態(tài)數(shù)組,即數(shù)組的大小是可變的,只有

在程序運行時,變量有確定的值后,數(shù)組的大小才確定。

封售機假件技術基礎EB?

⑥Dim語句聲明的數(shù)組,為系統(tǒng)編譯程序提供了數(shù)組名、

數(shù)組類型、數(shù)組的維數(shù)和各維的大小。該語句把數(shù)值數(shù)組

中的全部數(shù)組元素都初始化為0,而把字符串數(shù)組中的全

部數(shù)組元素都初始化為空字符串。

⑦如果在數(shù)組的下標說明中不使用[下界T0],則缺省為

0o如果希望下標從1開始,可以通過OPTIONBASE語句實

現(xiàn)。

格式:OptionBasen(n只能是0或1)

功能:在模塊級別中使用,聲明數(shù)組下標的缺省下界。

說明:由于下界的缺省設置是0,因此無需使用

OptionBase語句。如果使用該語句,則必須寫在模塊

的所有過程之前。一個模塊中只能出現(xiàn)一次Option

Base,且必須位于帶維數(shù)的數(shù)組聲明之前。

封售機假件技術基礎EB?

☆數(shù)組元素是帶有下標的變量,其一般形式為:

數(shù)組名(下標表達式,……)

如:A(2)B(l,2)C(l,3,l)

數(shù)組元素是由數(shù)組名和圓括號中的下標表達式組成。下標表達

式是任意算術表達式,當其值為實型時,系統(tǒng)自動轉換為整型。

Dima(5)asIntegerDimb(1,2)asSingle

A(0)B(0,0)

A⑴數(shù)組元素B(O,1)

A(2)帶下標的變量B(0,2)

A⑶B(1,O)

A(4)B(14)

A⑸B(l,2)

封售機假件技術基礎EB?

☆數(shù)組元素的下標:

數(shù)組元素在數(shù)組中的順序號稱為下標。下標的個數(shù)決定了

數(shù)組的維數(shù),下標所代表的每一維大小的乘積是數(shù)組的體積。

例如:Dima(5)asInteger'元素個數(shù)6個

Dimb(l,2)asSingle,元素個數(shù)2*3=6個

☆數(shù)組聲明和數(shù)組元素的區(qū)別:

數(shù)組聲明中定義的數(shù)組名(包括維數(shù)、大小說明),用來

說明數(shù)組的名字、維數(shù)、大小和類型。數(shù)組元素是數(shù)組中的一

個成員,只能放在可執(zhí)行語句中。

例如Dimb(l^)asSingle'數(shù)組說明符,聲明2行3列的二維數(shù)組

bp,2)=下云^且元素名,給數(shù)組元素b(1,2)賦值

封售機假件技術基礎EB?

士,三、數(shù)組的物理存儲和邏輯存儲

數(shù)組是由一組具有同一類型的變量組成的。數(shù)組元素是連續(xù)

存放的。

普通變量:獨立存放

A1...AOA5...A3A2A4

數(shù)組元素變量:連續(xù)存放(帶下標的變量)

A(l,l)A(2,l)A(l,2)A(2,2)A(l,3)A(2,3)

封售機假件技術基礎EB?

一維數(shù)組的存儲方式

Dimx(5)asIntegerx(0)

存儲結構

X(1)

邏輯存儲結構XQ)

X(0)X(1)X(2)X(3)X(4)X(5)X⑶

X(4)

X⑸

按下標由小到大的順序存放在一串連續(xù)的內存單元中。

封售機假件技術基礎EB?

二維數(shù)組的存儲方式

Dimb(l,2)asSingleDimb(2J)asSingle

A(0,0)A”第一行

〉第一行邏輯存儲結構

邏輯存儲結構A(O,1)A(OJ)J

A(0,2)A(0,0)A(O,1)A(i,o)n

A(0,0)A(0,l)A(0,2)卜第二行

A(1,O)A(l,l)A(1,1)P

A(l,0)A(l,l)A(l,2)A(1,O)

A第二行A(2,0)A(2,l)A(2,0)H

A(l,l)卜第三行

A(l,2)A(2,l)J

二維數(shù)組的數(shù)組元素是“按行”的順序存放的。

封售機假件技術基礎EB?

S(OAO)

三維數(shù)組的存儲方式

s(o,o,i)

先頁后行最后列。是由若干頁組成的二維數(shù)組s(0,0⑷o

s(o9i,o)

S(2,0,0)S(2,0,l)S(2,0,2)

S(2,l,0)S(2,1,DS(2,l,2)S(0,2,2)

S(1AO)S(1A1)S(l,0,2)(2,2,2)s(i,o,o)第

*1

S(LLO)S(l,l,l)S(l,l,2)頁

S(l,2,2)

S(0,0,0)S(OA1)S(0,0,2)1,2,2)

S(2,0,0)第

S(0,l,0)S(O,1,DS(0,l,2)2

S(0,2,0)S(0,2,l)S(0,2,2)頁

SQ,2,2)

封售機假件技術基礎

士15.2靜態(tài)數(shù)組和動態(tài)數(shù)組P107

定義數(shù)組后,為了使用數(shù)組,必須為數(shù)組開辟所需要的

內存區(qū)。根據(jù)內存區(qū)開辟時間的不同,數(shù)組分為靜態(tài)數(shù)組和

動態(tài)數(shù)組。通常把需要在編譯時開辟內存區(qū)的數(shù)組叫做靜態(tài)

數(shù)組,而把需要在運行時開辟內存區(qū)的數(shù)組叫做動態(tài)數(shù)組。

靜態(tài)數(shù)組和動態(tài)數(shù)組由定義方式來決定,即用數(shù)值常量

或符號常量作為下標界限的數(shù)組是靜態(tài)數(shù)組;而用變量作為

下標界限的數(shù)組是動態(tài)數(shù)組。前面例子都是靜態(tài)數(shù)組。

1.動態(tài)數(shù)組的定義

①首先在窗體層或標準模塊中用Dim、Public等語句聲明

一個沒有下標的數(shù)組。

如:DimDyn()AsInteger

②然后在過程中用fedim語句指明該數(shù)組的大小。

格式:RedimDyn(下標1[,下標2…])

功能:聲明動態(tài)數(shù)組的大小。

封售機救件技木基礎后I回臼

說明:①在靜態(tài)數(shù)組聲明中的下標只能是常數(shù),在動態(tài)數(shù)組

ReDim語句中的下標可以是常量,也可以是有了確定值的變量。

②在過程中可以多次使用ReDim語句來改變數(shù)組的大小

③每次使用Redim語句都會使原來數(shù)組中的值丟失,即

數(shù)組中的內容全部被清為零。為了保留數(shù)組中的數(shù)據(jù),可以在

Redim語句中加Preserve參數(shù)來保留數(shù)組中的數(shù)據(jù)。

例如:DimsArray()AsSingle:在窗體級聲明了數(shù)組sArray為

SubFormLoad,八

一:可變長數(shù)組,在Form_Load()

ReDimsArray(4,8):事件函數(shù)中重新指明該數(shù)組的

:大小是5行9列

EndSub

例Ii3-217Redim語句的使用。輸入若干學生的成績,計算平

均分和高于平均分的人數(shù),并將平均分和人數(shù)放在該數(shù)組的最后。

封售機假件技術基礎

士,5.3數(shù)組的基本操作d

數(shù)組在定義時用數(shù)組名表示該數(shù)組的整體,但在具體操作

時是針對每個數(shù)組元素進行的。

1.數(shù)組元素的引用

要使用數(shù)組中的元素,應使用這樣的格式:

格式:數(shù)組名(下標,…)

說明:①下標的個數(shù)必須與數(shù)組定義時的維數(shù)一致。對于多

維數(shù)組元素,下標之間用逗號隔開。

②下標可以是表達式,如果表達式的值是實型數(shù),系

統(tǒng)自動取整。

“③下標的值必須在數(shù)組定義的各維的上下界之內。

④要嚴格區(qū)分數(shù)組聲明中的下標和數(shù)組引用中的下標。

兩者的寫法相同,但意義不一樣。

封售機假件技術基礎EB?

2.數(shù)組元素初始化

(1)利用循環(huán)結構

DimTestArray(10)AsInteger

DimiAsInteger

Fori=0To10

TestArray(i)=0^TestArray數(shù)組的每個元素值為0

NextI

再例如:

Dimsc(4,4)AsInteger

Fori=0To4

Forj=0To4

sc(ij尸i*5+j,給數(shù)組元素賦一個固定的初值

Nextj

Nexti

封售機假件技術基礎EB?

(2)利用Array函數(shù)

對于較大的數(shù)組,一般不用賦值語句,而使用Array函數(shù)為

數(shù)組元素賦值。

格式:數(shù)組變量名二Array(arglist)

功能:把一組數(shù)據(jù)賦給一個數(shù)組。

DimaAsVariant,bAsVariant,1%

a=Array。,2,3,4,5)一數(shù)組有5個元素,數(shù)組上界為4

b=Array(“abc”,“def5:“67”)6b數(shù)組有3個元素,數(shù)組上界為2

ForI=0ToUBound(a),函數(shù)返回a數(shù)組的最大下標值4

Picturel.Printa(I);nn;

NextI

Picturel.Print

ForI=0ToUBoimd(b),函數(shù)返回b數(shù)組的最大下標值3

Picturel.Printb(I)

NextI

例Ii3-21-3

封售機假件技術基礎EB?

說明:所需的arglist參數(shù)是一個用逗號隔開的值表,這些值

用于給Variant所包含的數(shù)組的各元素賦值。如果不提供參數(shù),

則創(chuàng)建一個長度為0的數(shù)組。

注意:

(?)利用Array對數(shù)組各元素賦值,聲明的數(shù)組是可調數(shù)組或

連圓括號都可省略的數(shù)組,并且其類型只能是Variant。

(2)數(shù)組的下界默認為0,也可通過OpenBase語句設定;上

界由Array函數(shù)括號內的參數(shù)個數(shù)決定,也可通過Ubound函數(shù)

獲得。例如:

DimbAsVariant

b=Array(l,2,3,4,5)

For1=0ToUbound(b),函數(shù)返回b數(shù)組的最大下標值4

Picturel.Printb(i);"”;

Nexti

封售機假件技術基礎EB?

3.數(shù)組元素的輸出

數(shù)組元素的輸出可以使用For循環(huán)和Print語句來實現(xiàn)。

例3.22用Array函數(shù)給數(shù)組例H3-22-1輸出方陣sc中的下

提供初值,然后用For循環(huán)將二角兀素。

數(shù)組的值輸出。PrivateSub

溫馨提示

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

評論

0/150

提交評論