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]