Dátový typ union
Samotný názov – union by sme si mohli preložiť ako únia alebo spojenie, čo presne vystihuje ako sa správa tento dátový typ. Je to dátový typ, ktorý používa to isté miesto v pamäti pre alokáciu viacerých premenných. Premenné pod touto deklaráciu sa však správajú ako časti unionu. Prístup k týmto častiam je podobný ako je tomu u štruktúry. Pamäť sa alokuje spôsobom, že sa vyhradí pre celý union veľkosť najväčšej zložky. Ak však zapisujeme do unionu nejakú hodnotu, reťazec alebo inú premennú – tým sa zmažú všetky ostatné premenné uložené v ostatných
častiach unionu. Deklarácia vyzerá nasledovne:
union cislo_text{
char k[200];
int p;
}premenna;
Prístup k jednotlivým častiam sa vykonáva takto:
premenna.p = 4;
strcpy(premenna.k,"skuska");
Avšak ako som spomínal, keby sme chceli po predchádzajúcom zápise do unionu vypísať obsah časti premenna.p, neuspeli by sme. Je to tým, že posledná deklarácia automaticky vymaže všetky ostatné časti unionu. Hlavnou výhodou unionu je, že ak potrebujeme viac premenných a často ich striedať a nepoužívať ich naraz, tak je union ideálny pre toto použitie. Sprehľadní program a môžeme používať jednu premennú pre viac vecí.
Dátový typ množina
Množina je veľmi užitočný dátový typ ak potrebujeme prácu, ktorá vyžaduje rady čísel iba v určitom obore. Množina určuje obor čísel, ktoré do nej môžu patriť. Zo začiatku je prázdna a na pridávanie alebo odoberanie prvkov z množiny sa používa operátor << pre pridanie prvku a >> pre odobratie prvku. Deklarácia množiny je nasledovná:
typedef Set<int,1,250> mnozina;
Parametre v zátvorkách sú aký typ čísel bude množina obsahovať, potom nasleduje prvé číslo množiny a posledné. Okrajové body množiny môžu byť tiež súčasťou tejto množiny. Pridávanie prvkov do množiny vyzerá takto:
mnozina m; //vytvorenie premennej typu množina
m << 25 << 26; //vozenie dvoch čísel do množiny
Testovanie, či sa nachádza nejaký prvok v množine sa robí pomocou
funkcie Contains( ).
Testovanie v praxi vyzerá takto:
if(m.Contains(1)){
ShowMessage("prvok sa nachadza v množine");
}
Výpočtové dátové typy
Sú to dátové typy, ktorým sú automaticky priraďované hodnoty od nuly vyššie. Používanie tohto dátového typu je výhodne, ak chceme priradiť hodnoty napr. mesiacom v roku, dni v týždni, alebo iné prvky, ktoré systematicky stúpajú. Deklarácia takéhoto dátového typu je nasledovná:
typedef enum {
januar,februar,marec,april,
maj,jun,jul,august,september,oktober,november,december
}ROK;
Ak bude deklarácia takáto, tak bude mať január hodnotu 0, február
hodnotu 1 a tak ďalej. Ale môžeme vopred určiť začiatok priraďovania
hodnôt.
typedef enum {
januar = 1,februar = 2,marec,april,
maj,jun,jul,august,september,oktober,november,december
}ROK;
V budúcom dieli si povieme čo je to a ako funguje rekurzia –
rekurzívne funkcie.
Súvisiace články: Prehľad všetkých dielov