Danh mục

Tập hợp trong Pascal

Số trang: 8      Loại file: doc      Dung lượng: 135.00 KB      Lượt xem: 20      Lượt tải: 0    
Thu Hiền

Hỗ trợ phí lưu trữ khi tải xuống: 4,000 VND Tải xuống file đầy đủ (8 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

I. Kiểu tập hợpMột tập hợp bao gồm một số đối tợng nμo đó có cùng bản chất. Trong Pascal điều đó cóngiã lμ mô tả cùng một kiểu, kiểu bμy gọi lμ kiểu cơ bản. Kiểu cơ bản bắt buộc phải lμmột kiểu vô hớng hay đoạn con vμ không đợc lμ số thực. Các đối tợng nμy gọi lμ các phầntử của tập. Số phần tử cực đại cho phép trong Boland Pascal lμ 256.Để mô tả kiểu vμ khai báo biến tập hợp, ngời ta dùng từ khoá SET OF theo sau lμ kiểu cơbản T (kiểu...
Nội dung trích xuất từ tài liệu:
Tập hợp trong Pascal KiÓu tËp hîpI. KiÓu tËp hîp Mét tËp hîp bao gåm mét sè ®èi tîng nµo ®ã cã cïng b¶n chÊt. Trong Pascal ®iÒu ®ã cãngi· lµ m« t¶ cïng mét kiÓu, kiÓu bµy gäi lµ kiÓu c¬ b¶n. KiÓu c¬ b¶n b¾t buéc ph¶i lµmét kiÓu v« híng hay ®o¹n con vµ kh«ng ®îc lµ sè thùc. C¸c ®èi tîng nµy gäi lµ c¸c phÇntö cña tËp. Sè phÇn tö cùc ®¹i cho phÐp trong Boland Pascal lµ 256. §Ó m« t¶ kiÓu vµ khai b¸o biÕn tËp hîp, ngêi ta dïng tõ kho¸ SET OF theo sau lµ kiÓu c¬b¶n T (kiÓu cña c¸c phÇn tö cña tËp) VD : TYPE Chu_Cai = SET OF CHAR; Chu_So = SET OF 0..9; VAR SO : CHU_SO; L : CHU_CAI; A : SET OF BYTE;II. X¸c lËp mét tËp Mét tËp hîp ®îc x¸c ®Þnh b»ng c¸ch liÖt kª c¸c phÇn tö cña tËp hîp, chóng c¸ch nhaub»ng dÊu phÈy vµ ®îc ®Æt gi÷a 2 dÊu ngoÆc vu«ng. VD : []; [3..5]; [3,4,5,8] hoÆc [3..5,8]; [A..C,Y,Z]; B¶n th©n c¸c phÇn tö cña tËp còng cã thÓ cho b»ng biÕn hoÆc biÓu thøc VD : [X+Y, I*J, 3, 4]III. C¸c phÐp to¸n trªn tËp 1. PhÐp g¸n Víi c¸ch m« t¶ ë trªn ta cã thÓ g¸n VD : SO := [3..5]; L := [A..E,Z]; A := [1..100,140..200]; L := []; Chóng ta kh«ng thÓ g¸n L := [3,5] v× kiÓu c¬ b¶n cña chóng kh«ng t¬ng thÝch víi nhau 2. PhÐp hîp Hîp cña 2 tËp lµ mét tËp cã c¸c phÇn tö thuéc hai tËp §îc kÝ hiÖu b»ng dÊu + VD : A := [3..5]; B := [4..6,10,123]; C := A+B; { TËp C sÏ lµ [3..6,10,123] } 3. PhÐp giao Giao cña 2 tËp lµ mét tËp cã c¸c phÇn tö n»m trong c¶ 2 tËp §îc kÝ hiÖu b»ng dÊu * VD : Víi VD trªn ta g¸n C := A*B; TËp C sÏ lµ [4,5] 4. PhÐp hiÖu HiÖu cña 2 tËp lµ tËp c¸c phÇn tö thuéc tËp thø nhÊt nhng khån thuéc tËp thø hai. VD : Víi VD trªn ta g¸n C := A-B; TËp C sÏ lµ [3]; C := B-A; TËp C sÏ lµ [6,10,123]; 5. PhÐp thö thuéc vÒ Lµ mét phÐp thö ®Ó xem mét biÕn, hay mét gi¸ trÞ cã thuéc mét tËp nµo ®ã kh«ng VD : §Ó thö biÕn ch cã n»m trong c©u tr¶ lêi Cã b»ng tiÕng ViÖt hoÆc b»ng tiÕng Anhlµ Yes kh«ng, b»ng c¸ch th«ng thêng ta viÕt IF(Ch=Y)or(Ch=y)or(Ch=C)or(Ch=c)THEN ... Song ta cã thÓ viÕt ng¾n gän víi phÐp thö IN nh sau : IF Ch in[Y,y,C,c] THEN 6. C¸c phÐp so s¸nh ,=,= Hai tËp ®îc ®em ra so s¸nh tríc hÕt ph¶i cã cïng kiÓu c¬ b¶n. KÕt qu¶ cña phÐp so s¸nhlµ gi¸ trÞ kiÓu Boolean tøc lµ : §óng(TRUE) hoÆc Sai(FALSE) Hai tËp b»ng nhau nÕu chóng cã phÇn tö nh nhau tõng ®«i mét (kh«ng kÓ thø tù s¾pxÕp trong 2 tËp) Ngîc l¹i víi phÐp = lµ phÐp so s¸nh kh¸c nhau PhÐp so s¸nh = sÏ cã gi¸ trÞ TRUE nÕu tÊt c¶ phÇn tö tËp thø hai ®Òu thuéc tËp thønhÊt Chó ý : Trong Pascal kh«ng tån t¹i phÐp so s¸nh . Muèn so s¸nh lín h¬n hay nhá h¬nta dïng thñ thuËt sau. IF (ABµi 1:{ ViÕt ch¬ng tr×nh nhËp tõ bµn phÝm tËp sè A gåm c¸c sè nguyªn trong kho¶ng 1..99b»ng c¸ch nhËp liªn tôc c¸c sè cho ®Õn khi nhËp sè 0 th× kÕt thóc T¬ng tù nhËp tËp B a. TÝnh giao cña 2 tËp. In ra mµn h×nh b. TÝnh hîp cña 2 tËp. In ra mµn h×nh}uses crt;var a,b,t:set of byte;{TËp a,b,t kiÓu byte} i:byte;{i kiÓu byte}begin clrscr;{Xo¸ mµn h×nh} a:=[];b:=[];{G¸n tËp A vµ B b»ng rçng} writeln(Nhap tap A); repeat readln(i);{§äc i} if i>0 then a:=a+[i];{NÕu i>0 th× céng i vµo tËp A} until i=0;{Cho ®Õn khi i=0} writeln(Nhap tap B); repeat readln(i);{§äc I} if i>0 then b:=b+[i];{NÕu i>0 th× céng i vµo tËp B} until i=0;{Cho ®Õn khi i=0} Writeln(Giao); t:=a*b;{G¸n t b»ng giao cña A vµ B} for i:=1 to 99 do{Cho i ch¹y tõ 1 ®Õn 99} if i in t then write(i, );{NÕu i thuéc t th× xuÊt i} writeln; writeln(Hop); t:=a+b;{G¸n t b»ng hîp cña A vµ B} for i:=1 to 99 do{Cho i ch¹y tõ 1 ®Õn 99} if i in t then write(i, );{NÕu i thuéc t th× xuÊt i} readln;end.Bµi 2:{ NhËp N. ViÕt ch¬ng tr×nh t¹o ra mét tËp sè ngÉu nhiªn trong kho¶ng tõ 0..255 b»ng c¸ch: - T¹o ra ngÉu nhiªn N sè trong kho¶ng tõ 0..255 TÝnh phÇn bï cña tËp ®ã VD : N=5 cã 6 sè : 0 1 2 3 6 2 th× tËp ®ã lµ [0..3,6] phÇn bï cña nã [4,5,7..255]}uses crt;var th:set of byte;{TËp th kiÓu byte} i,a,n:integer;{i,a,n kiÓu integer}begin clrscr;{Xo¸ mµn h×nh} randomize; write(N = );readln(n);{§äc N} th:=[];{G¸n tËp th b»ng rçng} for i:=1 to n do{Cho i ch¹y tõ 1 ®Õn n} begin a:=random(256);{G¸n a b»ng sè ngÉu nhiªn trong kho¶ng 0..255} th:=th+[a];{Céng a vµo th} end; writeln(Phan bu); th:=[0..255]-th;{G¸n th b»ng phÇn bï cña nã} for i:=0 to 255 do{Cho i ch¹y tõ 0 ®Õn 255} if i in th then write(i, );{NÕu i thuéc th th× xuÊt i} readln;end.Bµi 3:{ NhËp sè N (N begin a:=random(256);{G¸n a b»ng sè ngÉu nhiªn trong kho¶ng 0..255} th[i]:=th[i]+[a];{Céng a vµo th[i]} end; max:=0;{G¸n max b»ng 0} for i:=1 to n do{Cho i ch¹y tõ 1 ®Õn n} begin writeln(So phan tu tap ,i, : ,sopt(th[i]));{XuÊt sè phÇn tö tËp i} if max Híng dÉn G¸n th:=[2..N] Cho i ch¹y tõ 2 ®Õn trunc(sqrt(n)) NÕu i thuéc th th× xo¸ c¸c béi cña i trong kho¶ng i*i -> N ra khái th C¸c phÇn tö cßn l¹i chÝnh lµ c¸c sè nguyªn tè}uses crt;var i,n:byte;{i,n kiÓu byte} th:set of byte;{TËp th ...

Tài liệu được xem nhiều: