Pascal - Set
Satu set adalah kumpulan elemen dengan tipe yang sama. Pascal memungkinkan pendefinisian tipe data set. Unsur-unsur dalam suatu himpunan disebut anggotanya. Dalam matematika, himpunan direpresentasikan dengan mengapit anggota dalam tanda kurung {} . Namun, di Pascal, elemen himpunan diapit oleh tanda kurung siku [], yang disebut sebagai konstruktor himpunan.
Mendefinisikan Jenis dan Variabel Set
Jenis Pascal Set didefinisikan sebagai
type
set-identifier = set of base type;
Variabel dari jenis himpunan didefinisikan sebagai
var
s1, s2, ...: set-identifier;
atau,
s1, s2...: set of base type;
Contoh dari beberapa deklarasi tipe set yang valid adalah -
type
Days = (mon, tue, wed, thu, fri, sat, sun);
Letters = set of char;
DaySet = set of days;
Alphabets = set of 'A' .. 'Z';
studentAge = set of 13..20;
Atur Operator
Anda dapat melakukan operasi set berikut pada set Pascal.
Sr Tidak | Operasi & Deskripsi |
---|---|
1 | Union Ini menggabungkan dua set dan memberikan satu set baru dengan anggota dari kedua set. |
2 | Difference Mendapat perbedaan dua himpunan dan memberikan himpunan baru dengan elemen yang tidak umum untuk kedua himpunan. |
3 | Intersection Mendapat perpotongan dua himpunan dan memberikan himpunan baru dengan elemen yang sama untuk kedua himpunan. |
4 | Inclusion Himpunan P termasuk dalam himpunan Q, jika semua item di P juga ada di Q tapi tidak sebaliknya. |
5 | Symmetric difference Mendapat perbedaan simetris dari dua himpunan dan memberikan himpunan elemen, yang berada di salah satu himpunan dan bukan di persimpangannya. |
6 | In Ia memeriksa keanggotaan. |
Tabel berikut menunjukkan semua operator set yang didukung oleh Free Pascal. Asumsikan bahwaS1 dan S2 adalah dua himpunan karakter, sehingga -
S1: = ['a', 'b', 'c'];
S2: = ['c', 'd', 'e'];
Operator | Deskripsi | Contoh |
---|---|---|
+ | Gabungan dua set | S1 + S2 akan memberikan satu set ['a', 'b', 'c', 'd', 'e'] |
- | Selisih dua set | S1 - S2 akan memberikan satu set ['a', 'b'] |
* | Persimpangan dua set | S1 * S2 akan memberikan satu set ['c'] |
> < | Perbedaan simetris dari dua set | S1> <S2 akan memberikan himpunan ['a', 'b', 'd', 'e'] |
= | Memeriksa kesetaraan dua set | S1 = S2 akan memberikan nilai boolean False |
<> | Memeriksa ketidaksetaraan dua set | S1 <> S2 akan memberikan nilai boolean True |
<= | Berisi (Memeriksa apakah satu set adalah bagian dari yang lain) | S1 <= S2 akan memberikan nilai boolean False |
Sertakan | Termasuk elemen di set; pada dasarnya ini adalah gabungan dari satu set dan elemen dengan tipe dasar yang sama | Sertakan (S1, ['d']) akan memberikan satu set ['a', 'b', 'c', 'd'] |
Mengecualikan | Mengecualikan elemen dari set; pada dasarnya itu adalah Perbedaan himpunan dan elemen dengan tipe dasar yang sama | Kecualikan (S2, ['d']) akan memberikan satu set ['c', 'e'] |
Di | Memeriksa keanggotaan set suatu elemen dalam satu set | ['e'] di S2 memberikan nilai boolean True |
Contoh
Contoh berikut menggambarkan penggunaan beberapa operator ini -
program setColors;
type
color = (red, blue, yellow, green, white, black, orange);
colors = set of color;
procedure displayColors(c : colors);
const
names : array [color] of String[7]
= ('red', 'blue', 'yellow', 'green', 'white', 'black', 'orange');
var
cl : color;
s : String;
begin
s:= ' ';
for cl:=red to orange do
if cl in c then
begin
if (s<>' ') then s :=s +' , ';
s:=s+names[cl];
end;
writeln('[',s,']');
end;
var
c : colors;
begin
c:= [red, blue, yellow, green, white, black, orange];
displayColors(c);
c:=[red, blue]+[yellow, green];
displayColors(c);
c:=[red, blue, yellow, green, white, black, orange] - [green, white];
displayColors(c);
c:= [red, blue, yellow, green, white, black, orange]*[green, white];
displayColors(c);
c:= [red, blue, yellow, green]><[yellow, green, white, black];
displayColors(c);
end.
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
[ red , blue , yellow , green , white , black , orange]
[ red , blue , yellow , green]
[ red , blue , yellow , black , orange]
[ green , white]
[ red , blue , white , black]