第十章集合與記錄_第1頁
第十章集合與記錄_第2頁
第十章集合與記錄_第3頁
第十章集合與記錄_第4頁
第十章集合與記錄_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、第十章 集合與記錄集合    記錄記錄和集合都屬于比較復(fù)雜的構(gòu)造類型的數(shù)據(jù)。集合是系統(tǒng)類型對象的聚集,構(gòu)成集合的每一個(gè)對象稱為集合的元素。記錄則是由多個(gè)類型不同的成分所組成的數(shù)據(jù)。10.1集合1、定義:以已知序數(shù)類型值的集合為值,所構(gòu)成的類型是集合類型,已知序數(shù)類型稱為基類型。集合類型的定義形式為:集合類型標(biāo)識符set of基類型限定基類型為枚舉類型、字符型、布爾型以及它們的子界和整型子界。由于基類型中不能超過256個(gè)可能值,且它們的序數(shù)值應(yīng)在0255之間,因此基類型不能是短整型、整型、長整型。表示一個(gè)集合值的最通用的方法是逐個(gè)枚舉集合的元素,下面是集合值標(biāo)記的例

2、子:3,9,15,20   由3,9,15,20組成的集合             空集'l'.'p','z' 由字符l,m,n,o,p,z組成的集合2、運(yùn)算:兩個(gè)相連的集合對象之間,可以通過下列運(yùn)算符進(jìn)行運(yùn)算:(1)集合運(yùn)算符:+產(chǎn)生一個(gè)包含兩個(gè)集合元素的集合 *產(chǎn)生一個(gè)只包含兩個(gè)集合元素公共元素的集合 -產(chǎn)生一個(gè)包含所有屬于第一個(gè)集合、但不屬于第二個(gè)集合的元素的集合 例如:A,B,C+D等于A,B,C,D 

3、;    A,B,C*A等于A     A,B,C-A等于B,C(2)關(guān)系運(yùn)算符= 檢查兩個(gè)集合所包含的元素相同 <> 檢查兩個(gè)集合不相等 <= 檢查第一個(gè)集合中的元素都在第二個(gè)集合中出現(xiàn) >= 檢查第一個(gè)集合中的元素包含第二個(gè)集合中的所有元素 in 檢查集合基類型的一個(gè)元素屬于集合 例如:A,B,C=A,B,C等于true     A,B,C<>C,B,A等于FALSE3、集合的賦值與輸出賦值語句同樣適用于集合類型數(shù)據(jù)

4、。利用賦值語句,可以將計(jì)算集合表達(dá)式所得結(jié)果的值賦給集合變量。集合的值不能直接以其書寫的形式輸出,還需要增加一些必要的語句,如利用選擇語句和保留字IN等。例 集合變量說明var A,B,C,D,E,F:set of 1.7;I:INTEGER;賦值語句D:=1,3,5,7;E:=2,4,6;F:=1,2,3;A:=D+(E-F); A的值為1,3,4,5,6,7B:=D+(E*F); A的值為1,2,3,5,7C:=D+E+F; A的值為1,2,3,4,5,6,7A:=(F-D)-E; A的值為輸出E的集合值FOR I:=1 TO 9 DOIF I IN E THEN WRITE(I:2);輸

5、出結(jié)果為:2 4 610.2記錄1、定義:記錄是描述同一對象的一組類型可能不同的數(shù)據(jù)的集合。使用記錄類型可以實(shí)現(xiàn)數(shù)據(jù)邏輯關(guān)系和存放形式上的一致。定義記錄類型的一般形式是:記錄類型名record域名1:類型1;域名2:類型2;域名m:類型m;end;例如:表示學(xué)生信息的記錄定義typestype=recordname:string20;number:integer;sex:(male,female);class:1.20;address:stringend;域?yàn)橛涗涱愋偷脑亍S涗浀拿總€(gè)域都有名稱,不同域的數(shù)據(jù)類型可以各不相同,這一點(diǎn)是數(shù)組所不能做到的。2、引用:引用記錄變量的元素采用以下標(biāo)記法

6、以上例定義的記錄來說明(1)直接引用,其形式為記錄變量名.域名例如:var str1,str2:stype; 則表示學(xué)生str1的姓名,str2.sex表示學(xué)生str2的性別。(2)使用with開域語句,其形式為with 記錄變量名 do 語句在with語句中,引用記錄變量名不再冠以記錄變量名,以簡化對記錄中域的引用寫法。例如描述100個(gè)學(xué)生的數(shù)據(jù)信息,引入元素類型為stype的數(shù)組students。varstudents:array1.100 of stype;number_of_boy,number_of _girl,k:integer:例 下面是一段統(tǒng)計(jì)一個(gè)班級中男生人

7、數(shù)和女生人數(shù)的程序。beginnumber_of_boy:=0;number_of_girl:=0;for k:=1 to 100 dowith studentk doif sex=male then number_of_boy:=number_of_boy+1else number_of_girl:=number_of_girl+1end;注意:with語句的嵌套結(jié)構(gòu)的一般形式是:with <記錄變量名1>dowith <記錄變量名2>dowith <記錄變量名n>do<語句>;使用with嵌套結(jié)構(gòu)時(shí),with的嵌套順序必須和所打開的記錄的嵌套

8、順序一致,也就是說外層with打開外層記錄,內(nèi)層with打開內(nèi)層記錄。上面的嵌套格式也可以簡寫為:with <記錄變量名1,記錄變量名2,記錄變量名n> do<語句>3、變體記錄:若記錄是由固定不變的一部分和可變的另一部分(變化部分是隨固定部分中的某個(gè)數(shù)據(jù)項(xiàng)的具體取值而定)的數(shù)據(jù)項(xiàng)所組成的,稱為記錄變體。帶記錄變體的記錄類型定義有以下形式:type<類型標(biāo)識符>=record<域名1>:<類型1><域名2>:<類型2><域名n-1>:<類型n-1>case <標(biāo)志域>:<

9、;類型n> of<常量表1>:<域表1><常量表2>:<域表2><常量表m>:<域表m>end;例:重新定義描述學(xué)生信息的記錄類型stype,對于大專生,不需要增加其他信息,對于本科生,增加專業(yè)信息。typestype=recordname:string20;number:integer;sex:(male,female);class:1.20;address:string;case studtype:(s,u) ofs:( );u:(major:string)end;4、賦值:對記錄的賦值操作與數(shù)組的賦值操作一樣,

10、有兩種形式:一是對記錄中的某一元素的賦值,相應(yīng)于對某一數(shù)組元素賦值,如:='張三'二是對記錄的整體賦值,相應(yīng)于對數(shù)組的整體賦值,如str2:=str1; 等等。練習(xí)與作業(yè): 1、輸入5位學(xué)生的學(xué)號、姓名、性別、電話號碼及住址到記錄中,然后按行寫入磁盤文件。2、閱讀下列程序,并分析輸入、輸出結(jié)果。program jilu;type ab=record num:integer; name:string; sex:string; tel:string; address:string; end;var a:array1.3 of ab;abc:text;b:integer;const n=5;begin assign(abc,'jilu.txt'); rewrite(abc); for b:=1 to n do begin read(ab.num,,ab.sex

溫馨提示

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

評論

0/150

提交評論