版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章數(shù)組與記錄類(lèi)型數(shù)組是一些具有相同類(lèi)型的元素按一定順序組成的序列。數(shù)組中的每一個(gè)數(shù)據(jù)元素都可以通過(guò)數(shù)組名唯一一個(gè)索引號(hào)來(lái)存取,它們被順序地安排在內(nèi)存中的一段連續(xù)的存儲(chǔ)區(qū)中。7.1數(shù)組及其應(yīng)用7.2記錄類(lèi)型17.1數(shù)組及其應(yīng)用在Delphi5/6版本中的ObjectPascal引入了動(dòng)態(tài)數(shù)組,數(shù)組的內(nèi)存分配不再局限于靜態(tài)的,可以采用動(dòng)態(tài)方式為數(shù)組分配內(nèi)存區(qū)。因此,數(shù)組可分為靜態(tài)數(shù)組和動(dòng)態(tài)數(shù)組兩種類(lèi)型。27.1.1靜態(tài)數(shù)組靜態(tài)數(shù)組在程序初始化時(shí)必須分配內(nèi)存單元,明確其固定的大小和元素的數(shù)據(jù)類(lèi)型。1.一維靜態(tài)數(shù)組數(shù)組通??煞譃橐痪S、二維和多維數(shù)組,在ObjectPascal中,定義一個(gè)一維數(shù)組類(lèi)型,其聲明格式為:Type〈數(shù)組類(lèi)型標(biāo)識(shí)符〉=array[〈下標(biāo)類(lèi)型〉]of〈基類(lèi)型〉;37.1.1靜態(tài)數(shù)組2.二維靜態(tài)數(shù)組二維數(shù)組是指一個(gè)一維數(shù)組中的元素類(lèi)型本身又是一個(gè)一維數(shù)組,其一般形式為;Type〈數(shù)組標(biāo)識(shí)符〉=Array[〈下標(biāo)類(lèi)型1〉]ofArray[〈下標(biāo)類(lèi)型2〉]of〈元素類(lèi)型〉;也可以把上述形式簡(jiǎn)寫(xiě)成下面的形式:Type〈數(shù)組標(biāo)識(shí)符〉=Array[〈下標(biāo)類(lèi)型1〉,〈下標(biāo)類(lèi)型2〉]of〈元素類(lèi)型〉;47.1.1靜態(tài)數(shù)組3.多維靜態(tài)數(shù)組 多維靜態(tài)數(shù)組的一般格式為:Type〈數(shù)組類(lèi)型標(biāo)識(shí)符〉=array[〈下標(biāo)類(lèi)型1〉,〈下標(biāo)類(lèi)型2〉,…,〈下標(biāo)類(lèi)型n〉]of〈基類(lèi)型〉;TypeTest1=array[1..10,1..10,1..30]ofinteger;VarMyarray:array[0..5,0..6,0..8]ofreal;57.1.1靜態(tài)數(shù)組4.使用靜態(tài)數(shù)組的本卷須知(1)零基準(zhǔn)數(shù)組。所謂零基準(zhǔn)數(shù)組,就是下標(biāo)從零開(kāi)始的數(shù)組,例如:array[0..5]ofchar(2)數(shù)組的整體賦值。 假設(shè)有兩個(gè)數(shù)組array1和array2,其變量定義如下:67.1.1靜態(tài)數(shù)組Vararray1,array2:[1..10]ofchar;如果要把a(bǔ)rray2中每一個(gè)元素的值相應(yīng)賦值給array1中的元素,一般是使用For語(yǔ)句,例如:ForI:=1To10Doarray1[i]:=array2[i];77.1.1靜態(tài)數(shù)組(3)把數(shù)組作為過(guò)程或函數(shù)的形參。
ProcedureMyProc(varArray1:Array[1..10]ofInteger);Began…End;上述程序中,數(shù)組的定義和傳遞并在一起進(jìn)行,并且Array1是作為變參傳遞的。另外,數(shù)組也可以作為函數(shù)的返回類(lèi)型,而在TurboPascal7.0是不允許的。87.1.1靜態(tài)數(shù)組(4)開(kāi)放式數(shù)組。ObjectPascal語(yǔ)言實(shí)現(xiàn)了開(kāi)放式數(shù)組。{定義兩個(gè)長(zhǎng)度不同的數(shù)組變量}VarX1:Array[1..10]ofreal;VarX2:Array[1..10]ofreal;{MyProc過(guò)程的定義,其形參是開(kāi)放式數(shù)組}ProcedureMyProc(X:ArrayofReal);Begin {過(guò)程體略}End;BeginMyProc(X1);MyProc(X2);End;9【例7-1】利用數(shù)組求出任意10個(gè)數(shù)中的最大及最小值。
如程序所示【例7-2】利用二維數(shù)組建立一個(gè)8×8的方陣,該矩陣對(duì)角線元素為8,其余元素為1,結(jié)果顯示在列表組件ListBox1中。
如程序所示107.1.2動(dòng)態(tài)數(shù)組1.一維動(dòng)態(tài)數(shù)組一維動(dòng)態(tài)數(shù)組的聲明格式為:Type〈數(shù)組類(lèi)型標(biāo)識(shí)符〉=arrayof〈基類(lèi)型〉;也可在變量聲明中直接聲明動(dòng)態(tài)數(shù)組,其格式為:Var〈變量名〉:arrayof〈基類(lèi)型〉;117.1.2動(dòng)態(tài)數(shù)組2.多維動(dòng)態(tài)數(shù)組Type〈數(shù)組類(lèi)型標(biāo)識(shí)符〉=arrayofarrayof…arrayof〈基類(lèi)型〉;Var〈變量名〉:〈動(dòng)態(tài)數(shù)組類(lèi)型標(biāo)識(shí)符〉;或
Var〈動(dòng)態(tài)數(shù)組變量名〉:arrayofarrayof…arrayof〈基類(lèi)型〉;例如,如下聲明了一個(gè)二維動(dòng)態(tài)數(shù)組變量TypeTMessageGrid=arrayofarrayofstringVarMsGS:TMessageGrid;12【例7-3】創(chuàng)立一個(gè)三角形的矩陣,并在一個(gè)ListBox列表框中顯示出來(lái)。如程序所示137.2記錄類(lèi)型ObjectPascal的記錄類(lèi)型跟數(shù)據(jù)庫(kù)中的記錄概念很相似,記錄類(lèi)型中的元素可以理解為數(shù)據(jù)庫(kù)中的字段。事實(shí)上,ObjectPascal正式借用了數(shù)據(jù)庫(kù)中的記錄和字段的概念。147.2.1記錄類(lèi)型的聲明聲明一個(gè)記錄類(lèi)型的一般格式為:Type〈記錄類(lèi)型標(biāo)識(shí)符〉=Record〈域名表1〉:〈類(lèi)型1〉;〈域名表2〉:〈類(lèi)型2〉;…〈域名表n〉:〈類(lèi)型n〉;End;157.2.2訪問(wèn)記錄域與With語(yǔ)句
在程序設(shè)計(jì)中,記錄類(lèi)型經(jīng)過(guò)聲明并建立實(shí)例之后就可以使用了。使用記錄類(lèi)型實(shí)際上是對(duì)記錄的字段進(jìn)行訪問(wèn),由于記錄類(lèi)型中元素的類(lèi)型不同,因此不能像使用數(shù)組一樣使用下標(biāo)。訪問(wèn)記錄域的方法有兩種:限定訪問(wèn)記錄字段和使用With語(yǔ)句。167.2.2訪問(wèn)記錄域與With語(yǔ)句1.限定訪問(wèn)記錄中的字段在ObjectPascal中,限定訪問(wèn)記錄中某個(gè)字段的格式是:〈記錄變量名〉.〈字段名〉;TypeTEmployee=recordName:string[20];YearHired:1990..2000;Salsry:Double;Position:string[20];end;
177.2.2訪問(wèn)記錄域與With語(yǔ)句(1)記錄的整體賦值。盡管記錄中的每一個(gè)字段可以進(jìn)行各種合法的運(yùn)算,但記錄作為一個(gè)整體,只能進(jìn)行賦值運(yùn)算,即把一個(gè)記錄整體賦給另一個(gè)類(lèi)型一致的記錄。例如:Var Cust1,Cust2:Customer;Cust1:=Cust2;賦值號(hào)右邊的記錄變量必須是有值的,所謂有值是指記錄的每個(gè)字段都賦值。187.2.2訪問(wèn)記錄域與With語(yǔ)句(2)記錄與數(shù)組。記錄與數(shù)組的相同點(diǎn)是:兩者都是構(gòu)造類(lèi)型,是多個(gè)相關(guān)數(shù)據(jù)的集合,都可以整體賦值。記錄如數(shù)組的不同點(diǎn)是:1)數(shù)組中元素的類(lèi)型是相同的,而記錄中的字段可以是不同類(lèi)型。2)數(shù)組中元素的個(gè)數(shù)在一定范圍內(nèi)是可變的,而記錄中字段的數(shù)量是固定的。3)數(shù)組的元素是通過(guò)數(shù)組變量名加方括號(hào)和下標(biāo)來(lái)訪問(wèn)的,而記錄中的字段是通過(guò)記錄變量名加一個(gè)小圓點(diǎn)和字段名來(lái)訪問(wèn)的。197.2.2訪問(wèn)記錄域與With語(yǔ)句2.使用With語(yǔ)句ObjectPascal提供了一個(gè)With語(yǔ)句,其格式是:With〈記錄變量名〉Do〈語(yǔ)句〉WithCust1DoBeginCustid:=2;Name:='ZHANG':Cpsl:=78.967;End;With語(yǔ)句中還可以有With語(yǔ)句,這稱(chēng)為With嵌套。207.2.3記錄的變體局部為了描述不確定一張履歷表,在聲明記錄類(lèi)型時(shí)就要用到記錄的變體局部。帶有變體局部的記錄類(lèi)型的聲明格式為:Type 〈記錄類(lèi)型標(biāo)識(shí)符〉=Record〈域名表1〉:〈類(lèi)型1〉;〈域名表2〉:〈類(lèi)型
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年軟件開(kāi)發(fā)合同詳細(xì)規(guī)定
- 2024年高層建筑防火門(mén)窗安裝驗(yàn)收合同
- 2024年股東間利潤(rùn)分配合同
- 2024版施工項(xiàng)目經(jīng)理聘用合同范本
- 2025年度甲醇項(xiàng)目環(huán)境影響評(píng)價(jià)合同3篇
- 2025年吉林建筑安全員《B證》考試題庫(kù)及答案
- 2024年法律口譯服務(wù)合同
- 2025年廣東建筑安全員B證考試題庫(kù)及答案
- 2025湖南建筑安全員《A證》考試題庫(kù)及答案
- 2025年重慶建筑安全員《A證》考試題庫(kù)及答案
- 2025年高考語(yǔ)文備考之名著閱讀《鄉(xiāng)土中國(guó)》重要概念解釋一覽表
- JG197-2006 預(yù)應(yīng)力混凝土空心方樁
- 醫(yī)院護(hù)理培訓(xùn)課件:《安全注射》
- 變、配電室門(mén)禁管理制度
- 11304+《管理案例分析》紙考2023.12
- 《淺談跳繩體育游戲的實(shí)踐研究》 論文
- 《勇敢面對(duì)挫折和困難》參考課件
- 小學(xué)體育期末檢測(cè)方案
- 2023-2024學(xué)年福建省莆田市荔城區(qū)中山中學(xué)、九中聯(lián)考九年級(jí)(上)期末數(shù)學(xué)試卷
- 接觸網(wǎng)設(shè)備故障應(yīng)急處理
- 2022年1月自考00850廣告設(shè)計(jì)基礎(chǔ)試題及答案含解析
評(píng)論
0/150
提交評(píng)論