Kiểu tập hợp và kiểu mảng

7 279 0
Kiểu tập hợp và kiểu mảng

Đang tải... (xem toàn văn)

Thông tin tài liệu

– Giạo trçnh Láûp trçnh Pascal càn bn — – 36 — Trang 3 6 ChiSo = 1 50; { Kiãøu ChiSo gäưm cạc säú ngun tỉì 1 âãún 50 } Tuoi_Lam_Viec = 18 50; Kiãøu miãưn con giụp cho chỉång trçnh dãù âc, dãù kiãøm tra v tiãút kiãûm bäü nhåï. _________ o ² o _________ BI 6. KIÃØU TÁÛP HÅÜP V KIÃØU MNG I. Kiãøu táûp håüp: 1. Âënh nghéa: Dỉỵ liãûu kiãøu táûp håüp l mäüt táûp håüp ca nhỉỵng dỉỵ liãûu cng thüc mäüt kiãøu vä hỉåïng âãúm âỉåüc. Mäüt kiãøu táûp håüp âỉåüc khai bạo theo dảng sau: SET OF Kiãøu_cå_såí; 4 Vê dủ: Type Chu_so = Set of 0 9; Chu_hoa = Set of ‘A’ ‘Z’; Var So : Chu_so; Chu : Chu_hoa; Mau : Set of (Xanh, Vang, Tim); Ư Chụ : - Cạc giạ trë âỉåüc âỉa vo táûp håüp cáưn cọ säú thỉï tỉû trong khon tỉì 0 âãún 255. - Nhỉ váûy, våïi khai bạo: Type Tap_so = Set of 10 256; 1 Kãút qu khi dëch mạy s thäng bạo läùi: Set base type out of range. - Mäüt dỉỵ liãûu kiãøu táûp håüp cọ dảng cạc pháưn tỉí nàòm trong hai dáúu ngồûc [ ] . Vê dủ: [‘A’, ‘D’, ’E’ ], [3,5 9]; - Táûp håüp räùng k hiãûu l [ ]. - Biãún táûp håüp cho phẹp cọ tỉì 0 âãún 256 pháưn tỉí. - Cọ thãø thỉûc hiãûn phẹp gạn trãn kiãøu táûp håüp. Vê dủ: So := [0, 4, 9]; Chu := [ ]; {Táûp håüp räùng} – Giạo trçnh Láûp trçnh Pascal càn bn — – 37 — Trang 37 Mau := [Vang, Tim]; 2. Cạc phẹp toạn trãn táûp håüp: a. Phẹp toạn quan hãû: Phẹp toạn = ð cho giạ trë True nãúu hai táûp håüp bàòng nhau. Phẹp toạn < > ð cho giạ trë True nãúu hai táûp håüp khạc nhau. Phẹp toạn <= ð A <= B cho giạ trë True nãúu A l táûp con ca B. Phẹp toạn >= ð A >= B cho giạ trë True nãúu B l táûp con ca A. Ư Chụ : Khäng cọ phẹp toạn < v > cho kiãøu táûp håüp. Âãø kiãøm tra táûp håüp A cọ tháût sỉû nàòm trong B hay khäng ta dng cáu lãûnh: If (A< > B) and (A<=B) then Write( ‘A la tap con that su cua B ‘); b. Phẹp toạn IN: Phẹp toạn IN dng âãø xem xẹt mäüt pháưn tỉí no âọ cọ nàòm trong táûp håüp khäng ? Nãúu pháưn tỉí âọ cọ trong táûp håüp thç phẹp toạn s tr vãư giạ trë True , ngỉåüc lải cho giạ trë False. Vê dủ: ‘C’ In [‘A’, ’C’, ‘D’] cho kãút qu True. ‘E’ In [‘A’, ’C’, ‘D’] cho kãút qu False. c. Phẹp toạn håüp, giao, hiãûu: Gi A, B l hai táûp håüp cng kiãøu dỉỵ liãûu. A + B l håüp ca A v B : táûp håüp cạc pháưn tỉí thüc A hồûc thüc B. A * B l giao ca A v B : táûp håüp cạc pháưn tỉí thüc A v thüc B. A - B l hiãûu ca A v B : táûp håüp cạc pháưn tỉí thüc A v khäng thüc B. 4 Vê dủ: A := [1, 3, 9]; B := [9, 2, 5]; Váûy: A * B cọ giạ trë l [9]. A - B cọ giạ trë l [1, 3]. 4 Vê dủ: Viãút chỉång trçnh nháûp vo mäüt chỉỵ cại. Xẹt xem chỉỵ cại âọ l ngun ám hay phủ ám. Var ChuCai, NguyenAm : Set of Char; Ch : char; Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn 38 Trang 3 8 Begin ChuCai := [A Z, a z]; NguyenAm := [A, E, I, O, U]; Repeat Write( Nhap mot chu cai de kiem tra: ); Readln(Ch); Until Ch IN ChuCai; If Upcase(Ch) IN NguyenAm then Writeln(Ch, la nguyen am. ) Else Writeln(Ch, la phu am. ); Readln; End. II. Kióứu maớng: 1. Khaùi nióỷm: Maớng (Array) laỡ mọỹt kióứu dổợ lióỷu coù cỏỳu truùc bao gọửm mọỹt sọỳ cọỳ õởnh caùc thaỡnh phỏửn coù cuỡng kióứu, coù cuỡng mọỹt tón chung. Caùc thaỡnh phỏửn cuớa maớng õổồỹc truy xuỏỳt thọng qua caùc chố sọỳ. 4 Vờ duỷ: Maớng A gọửm nm phỏửn tổớ: A[1]=7, A[2]=9, A[3]=0, A[4]= -2, A[5]=3: Cọng duỷng cuớa maớng laỡ duỡng õóứ lổu trổợ mọỹt daợy sọỳ lióỷu coù cuỡng mọỹt tờnh chỏỳt naỡo õoù. Vờ duỷ: caùc õióứm kióứm tra mọỹt mọn hoỹc naỡo õoù cuớa mọỹt hoỹc sinh, caùc giaù trở cuớa mọỹt daợy sọỳ õổồỹc nhỏỷp tổỡ baỡn phờm. 2. Khai baùo maớng mọỹt chióửu: Type Tón _ kióứu _ maớng = ARRAY [Chố _ sọỳ] OF Kióứu _ phỏửn _ tổớ; Var Tón _ bióỳn _ maớng : Tón _ kióứu _ maớng; A[2]=9 A[5]=3 A[3]=0 A[4]=-2 A[1]=7 Maớng A Caùc chố sọỳ õóứ truy cỏỷp Caùc giaù trở cuớa maớng coù cuỡng kióứu dổợ lióỷu Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn 39 Trang 39 Trong õoù: - Kióứu _ phỏửn _ tổớ laỡ kióứu dổợ lióỷu cuớa mọựi phỏửn tổớ trong maớng (laỡ kióứu bỏỳt kyỡ). - Chố _ sọỳ laỡ danh saùch caùc chố sọỳ õóứ truy cỏỷp õóỳn caùc thaỡnh phỏửn cuớa maớng. Caùc chố sọỳ coù thóứ laỡ: + Mọỹt õoaỷn con, vờ duỷ: Type Ho _ Ten = Array[1 100] of String[30]; He _ so _ luong = Array[1 100] of Real; + Mọỹt danh saùch lióỷt kó, vờ duỷ: Type Toc _ do = Array[(Oto, Tai, Buyt, GanMay)] of Integer; + Mọỹt kióứu dổợ lióỷu, vờ duỷ: Type ASCIIType = Array[Byte] of Char; Xe = (Oto, Tai, Buyt, GanMay); Toc _ do = Array[Xe] of Integer; Vồùi caùc kióứu maớng trón, ta coù thóứ khai baùo caùc bióỳn maớng sau: Var HeSo : He _ so _ luong; HT : Ho _ Ten; Speed : Toc _ do; Ngoaỡi caùch õởnh nghộa Tón _ kióứu _ maớng nhổ ồớ trón ta cuợng coù thóứ khai baùo mọỹt bióỳn maớng trổỷc tióỳp sau lóỷnh VAR : Var ch : Array[0 25] of Char; Th : Array[-2 4] of Real; 3. Truy cỏỷp caùc phỏửn tổớ cuớa maớng: Vióỷc truy nhỏỷp vaỡo mọỹt phỏửn tổớ naỡo õoù cuớa bióỳn maớng õổồỹc thổỷc hióỷnh qua tón bióỳn maớng, theo sau laỡ giaù trở chố sọỳ õỷt trong dỏỳu [ ]. Vờ duỷ: Ch[2] := B; Th[1] := 12.5; HT[1] := Vu Duc Dung; Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn 40 Trang 40 4 Vờ duỷ 1: Nhỏỷp n sọỳ thổỷc tổỡ baỡn phờm vaỡo mọỹt maớng, tờnh trung bỗnh cọỹng cuớa caùc sọỳ naỡy. Uses CRT; Var i,n : Integer; s : Real; a : Array[1 100] of Real; Begin ClrScr; Write( Ban muon nhap bao nhieu PT cho mang : ); Readln(n); For i := 1 to n do Begin Write( PT A[ , i , ]= ); Readln(a[i]); End; s := 0; For i := 1 to n do s := s + a[i]; Write( Trung binh cong cua day so = , s / n : 0 : 4 ); Readln; End. 4 Vờ duỷ 2: Nhỏỷp tổỡ baỡn phờm n phỏửn tổớ thổỷc cuớa mọỹt maớng, sừp xóỳp daợy theo thổù tổỷ tng dỏửn, xuỏỳt giaù trở cuớa maớng lón maỡn hỗnh. Var a : array[1 10] of Real; b : array[1 10] of Real; temp : Real; i, j, n : integer; Begin n:=10; For i := 1 to n do Begin Write( ' PT thu ' , i , ':' ); Readln( a[i] ); End; Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn 41 Trang 41 For i := 1 to n - 1 do For j := n downto i do If a[i] > a[j] then Begin temp := a[i]; a[i]:=a[j]; a[j]:=temp; End; For i := 1 to n do Write( a[i] : 0 : 3 , ' ' ); Readln; End. 4. Maớng nhióửu chióửu: Phỏửn naỡy chuớ yóỳu trỗnh baỡy caùc maớng hai chióửu. Caùc maớng nhióửu hồn hai chióửu õổồỹc suy dióựn mọỹt caùch tổỷ nhión. Vióỷc khai baùo maớng hai chióửu cuợng giọỳng nhổ maớng mọỹt chióửu, chố coù õióửu khaùc laỡ noù coù hai tỏỷp chố sọỳ õổồỹc vióỳt caùch nhau bồới dỏỳu ,. 4 Vờ duỷ: Type Mang1 = Array[1 30, 1 50] of Integer; Mang2 = Array[1 3, 0 2] of Real; Var A : Mang1; B : Mang2; Trong õoù, sọỳ phỏửn tổớ cuớa maớng sọỳ thổỷc B laỡ 3 x 3 = 9 (phỏửn tổớ), sừp õỷt trong bọỹ nhồù theo thổù tổỷ nhổ sau: B[1, 0] B[1, 1] B[1 ,2] B[2, 0] B[2, 1] B[2 ,2] B[3, 0] B[3, 1] B[3 ,2] ệ Chuù yù: Maớng hai chióửu coỡn goỹi laỡ ma trỏỷn. Trong vờ duỷ trón, B laỡ ma trỏỷn cỏỳp 3 x 3 . Trong maớng hai chióửu, chố sọỳ sau truy cỏỷp nhanh hồn chố sọỳ trổồùc. óứ truy cỏỷp õóỳn phỏửn tổớ haỡng thổù i, cọỹt thổù j cuớa maớng hai chióửu B ta duỡng caùch vióỳt: B[ i ][ j ] Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn 42 Trang 42 hoỷc B[ i , j ] 4 Vờ duỷ: Nhỏỷp mọỹt ma trỏỷn m haỡng, n cọỹt tổỡ baỡn phờm. Tờnh vaỡ in ra maỡn hỗnh tọứng cuớa mọựi cọỹt vaỡ tọứng cuớa mọựi haỡng. Const mMax = 30, nMax = 30; Type Mang = Array[1 mMax, 1 nMax] of Real; Var n, m, i, j : Integer; sum : Real; a : Mang; Begin Write( Ban muon nhap ma tran bao nhieu hang va cot ? ); Readln( m, n ); For i := 1 to m do For j := 1 to n do Begin Write( ' PT thu [ ' , i , ' , , j, ] = ' ); Readln( a[ i, j ] ); End; For j := 1 to n do Begin sum := 0; For i := 1 to m do Sum := sum + a[ i, j ]; Write( Tong cot , j , = , sum : 0 : 5 ); End; For i := 1 to m do Begin sum := 0; For j := 1 to n do Sum := sum + a[ i, j ]; Write( Tong hang , i , = , sum : 0 : 5 ); End; Readln;

Ngày đăng: 02/10/2013, 21:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan