Pascal - Setler
Bir küme, aynı türden elemanların bir koleksiyonudur. Pascal, ayarlanan veri türünü tanımlamaya izin verir. Bir kümedeki elemanlara onun üyeleri denir. Matematikte kümeler, üyeler kaşlı ayraçlar {} içine alınarak temsil edilir . Bununla birlikte, Pascal'da, küme öğeleri, küme oluşturucu olarak adlandırılan köşeli parantezler [] içine alınır.
Küme Türlerini ve Değişkenlerini Tanımlama
Pascal Set türleri şu şekilde tanımlanır:
type
set-identifier = set of base type;
Küme türünün değişkenleri şu şekilde tanımlanır:
var
s1, s2, ...: set-identifier;
veya,
s1, s2...: set of base type;
Bazı geçerli küme türü bildirimlerine örnekler -
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;
Operatörleri Ayarla
Pascal setlerinde aşağıdaki set işlemlerini gerçekleştirebilirsiniz.
Sr.No | İşlemler ve Açıklamalar |
---|---|
1 | Union Bu, iki seti birleştirir ve her iki setten üyelerle yeni bir set verir. |
2 | Difference İki kümenin farkını alır ve her iki kümede ortak olmayan öğelerle yeni bir küme verir. |
3 | Intersection İki kümenin kesişimini alır ve her iki kümede ortak olan öğelerle yeni bir küme verir. |
4 | Inclusion P'deki tüm öğeler aynı zamanda Q'da ise ancak tersi değilse, Q kümesine bir P kümesi dahil edilir. |
5 | Symmetric difference İki kümenin simetrik farkını alır ve kümelerden birinde olan ve kesişiminde olmayan bir dizi öğe verir. |
6 | In Üyeliği kontrol eder. |
Aşağıdaki tablo, Free Pascal tarafından desteklenen tüm set operatörlerini göstermektedir. Varsayalım kiS1 ve S2 iki karakter kümesidir, öyle ki -
S1: = ['a', 'b', 'c'];
Ö2: = ['c', 'd', 'e'];
Şebeke | Açıklama | Misal |
---|---|---|
+ | İki setin birliği | S1 + S2 bir set verecek ['a', 'b', 'c', 'd', 'e'] |
- | İki setin farkı | S1 - S2 bir set verecek ['a', 'b'] |
* | İki setin kesişimi | S1 * S2 bir set verecek ['c'] |
> < | İki setin simetrik farkı | S1> <S2 ['a', 'b', 'd', 'e'] kümesi verecektir |
= | İki setin eşitliğini kontrol eder | S1 = S2, Boolean değerini False verecektir |
<> | İki setin eşit olmadığını kontrol eder | S1 <> S2, doğru boole değerini verecektir |
<= | İçerir (Bir setin diğerinin alt kümesi olup olmadığını kontrol eder) | S1 <= S2, Boolean değerini False verecektir |
Dahil etmek | Küme içinde bir öğe içerir; temelde bir kümenin Birliği ve aynı temel türden bir öğedir | Dahil et (S1, ['d']) bir küme verecektir ['a', 'b', 'c', 'd'] |
Hariç tut | Bir kümeden bir öğeyi hariç tutar; temelde bir küme ile aynı temel tipteki bir elemanın farkıdır | Hariç tut (S2, ['d']) bir küme verir ['c', 'e'] |
İçinde | Bir kümedeki bir elemanın set üyeliğini denetler | S2'deki ['e'] True boole değerini verir |
Misal
Aşağıdaki örnek, bu operatörlerden bazılarının kullanımını göstermektedir -
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.
Yukarıdaki kod derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verir -
[ red , blue , yellow , green , white , black , orange]
[ red , blue , yellow , green]
[ red , blue , yellow , black , orange]
[ green , white]
[ red , blue , white , black]