Jazyk Pascal nám ponúka užitočný typ premennej - množinu. Množina môže obsahovať celé čísla alebo iné ordinálne premenné, všetky však musia byť rovnakého typu. Počet prvkov je obmedzený na 256. Ordinálne hodnoty sa môžu pohybovať od 0 do 255.
Najprv si vytvoríme množinu, ktorá bude obsahovať celé čísla, každé typu byte
(celočíselný typ s rozsahom od 0 do 255).
Množinu definujeme kľúčovými slovami set of
a typom premennej. Všetky prvky množiny budú mať zadaný typ.
program mnoziny; var MnozinaCisel: set of byte; Mnozina2: set of 10..100;
Druhá vytvorené množina bude môcť obsahovať celé čísla od 10 do 100 (vrátane).
Teraz do množniny MnozinaCisel vložíme prvky - napr. čísla 5, 7 a 18. Použijeme hranaté zátvorky.
begin MnozinaCisel := [5, 7, 18];
Do druhej dáme najprv jediný prvok - číslo 100. Potom sa ale rozhodneme vložiť do nej naraz všetky čísla od 32 do 40 vrátane.
Mnozina2 := [100]; Mnozina2 := [32..40];Pascal ponúka zaujímavé operácie s množinami. Ich funkcia je podobná ako v matematike, preto si ukážeme len jednoduchý príklad a uvediem tabuľku všetkých operátorov.
Napríklad operátor +
slúži na vytvorenie zjednotenia dvoch množín. Nasledujúcim kódom teda pridáme do našej množiny prvky 3 a 4:
MnozinaCisel := MnozinaCisel + [3, 4];
Operácie s množinami | ||
---|---|---|
príklad | názov | výsledok |
m1 + m2 | zjednotenie | množina obsahujúca prvky, čo sú aspoň v jednej z množín |
m1 - m2 | doplnok | -II-, ktoré sú v 1., ale nie v 2. množine |
m1 * m2 | prienik | -II-, ktoré sú v 1. aj v 2. množine |
m1 <= m2 | je podmnožina | true , ak všetky prvky množiny m1 sú aj v m2 |
m1 >= m2 | je nadmnožina | to isté ako m2 <= m1 |
m1 = m2 | rovná sa | true , ak m1 obsahuje presne rovnaké prvky ako m2 |
m1 <> m2 | nerovná sa | true , ak m1 neobsahuje presne rovnaké prvky ako m2 |
p1 in m1 | rovnosť | true , ak sa prvok p1 nachádza v množnine m1 |
Napríklad, ak sa chceme presvedčiť, či sa číslo 4 naozaj nachádza v množine, použijeme operátor in
:
if 4 in MnozinaCisel then writeln('Prvok 4 sa nachadza v mnozine.'); end.
Prvkami množiny nemusia byť len čísla či znaky, ale i vymenovaný typ.
Vytvoríme si nový typ, ktorý nazveme TStyl. Bude predstavovať štýl písma v textovom editore. Písmo má vlastnosti: tučné, kurzíva, podčiarknuté. Môže však byť aj byť normálne (vtedy nemá ani jednu z vlastností). Existuje však aj písmo, ktoré je zároveň tučné a podčiarknuté a pod. Práve na tento účel sa hodí množina.
program pismo; type TVlastnosti = (psTucne, psKurziva, psPodciarknute); TPismo = set of TVlastnosti; var BeznyText, Nadpis: TPismo; begin BeznyText := []; Nadpis := [psTucne, psKurziva]; end.
Vidíme, že prázdnu množinu vytvoríme prázdnymi hranatými zátvorkami.