Poradové a vymenované typy údajov pre Delphi

Delphi programovací jazyk je príkladom silne napísaného jazyka. To znamená, že všetky premenné musia byť nejakého typu. Typ je v podstate názov pre určitý druh údajov. Keď deklarujeme premennú, musíme špecifikovať jej typ, ktorý určuje množinu hodnôt, ktoré môže premenná obsahovať, a operácie, ktoré s ňou možno vykonávať.

Mnoho zabudovaných typov údajov spoločnosti Delphi, napríklad Integer alebo povrázok, možno spresniť alebo kombinovať a vytvoriť nové typy údajov. V tomto článku sa dozvieme, ako vytvoriť vlastné poradové typy údajov v systéme Windows Delphi.

Radové typy

Definujúce charakteristiky radových dátových typov sú: musia pozostávať z obmedzeného počtu prvkov a musia byť nejakým spôsobom usporiadané.

Najbežnejšie príklady poradových typov údajov sú všetky typy Integer, Char a boolean typu. Presnejšie povedané, Object Pascal má 12 preddefinovaných radových typov: Integer, Shortint, Smallint, Longint, Byte, Word, Cardinal, Boolean, ByteBool, WordBool, LongBool a Char. Existujú tiež dve ďalšie triedy užívateľom definovaných poradových typov: vymenované typy a typy podradenia.

instagram viewer

V akomkoľvek poradí musí mať zmysel posúvať sa smerom dozadu alebo dopredu k nasledujúcemu prvku. Napríklad skutočné typy nie sú bežné, pretože pohyb dozadu alebo dopredu nemá zmysel. Otázka „Čo bude ďalej po 2,5?“ nemá zmysel.

Pretože podľa definície má každá hodnota okrem prvej jedinečného predchodcu a každá hodnota okrem poslednej má jedinečného nástupcu, niekoľko preddefinovaných funkcie sa používajú pri práci s ordinálnymi typmi:

funkcie účinok
Objednávka (X) Poskytuje index prvku
Pred (X) Prejde na prvok uvedený pred typom X
Succ (X) Prejde na prvok uvedený za typom X
Dec (X; n) Posunie n prvkov späť (ak je n vynechané, presunie sa o 1 prvok späť)
Inc (X; n) Posunie n prvkov vpred (ak je n vynechaný, posunie sa o 1 prvok vpred)
Nízka (X) Vráti najnižšiu hodnotu v rozsahu typu ordinálnych údajov X
Vysoká (X) Vráti najvyššiu hodnotu v rozsahu typu ordinálnych údajov X


Napríklad High (Byte) vráti 255, pretože najvyššia hodnota typu Byte je 255 a Succ (2) vráti 3, pretože 3 je nástupcom 2.

Poznámka: Ak sa pokúsime použiť Succ, keď na poslednom prvku Delphi vygeneruje a výnimka run-time ak je zapnutá kontrola rozsahu.

Delphi Enumerated Type

Najjednoduchší spôsob, ako vytvoriť nový príklad ordinálneho typu, je jednoducho vymenovať skupinu prvkov v určitom poradí. Hodnoty nemajú inherentný význam a ich ordinálnosť sa riadi sekvenciou, v ktorej sú uvedené identifikátory. Inými slovami, výpočet je zoznam hodnôt.

typ TWeekDays = (pondelok, utorok, streda, štvrtok, piatok, sobota, nedeľa);

Akonáhle definujeme vymenovaný dátový typ, môžeme deklarovať premenné, aby boli takého typu:

var SomeDay: TWeekDays;

Hlavným účelom vymenovaného typu údajov je objasniť, aké údaje máte program bude manipulovať. Vymenovaný typ je skutočne iba skrátený spôsob priradenia sekvenčných hodnôt konštantám. Vzhľadom na tieto vyhlásenia je utorok konštantným typom TWeekDays.

Delphi nám umožňuje pracovať s prvkami vymenovaného typu pomocou indexu, ktorý vychádza z poradia, v ktorom boli uvedené. V predchádzajúcom príklade v pondelok na TWeekDays deklarácia typu má index 0, utorok má index 1 atď. Funkcie uvedené v tabuľke skôr nám umožňujú napríklad „Succ (Friday)“ „ísť do“ soboty.

Teraz môžeme vyskúšať niečo ako:

pre SomeDay: = Monday na nedeľa robiťak SomeDay = Tuesday potom
ShowMessage ('Utorok je!');

Knižnica vizuálnych komponentov Delphi používa vymenované typy na mnohých miestach. Napríklad pozícia formulára je definovaná nasledovne:

TPosition = (poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter);

Používame pozíciu (prostredníctvom Object Inspector) na získanie alebo nastavenie veľkosti a umiestnenia formulár.

Druhy usporiadania

Jednoducho povedané, typ podrozsahu predstavuje podskupinu hodnôt v inom poradí. Všeobecne môžeme definovať ľubovoľné podoblasti začatím ľubovoľného poradového typu (vrátane predtým definovaného vymenovaného typu) a použitím dvojitej bodky:

typ TWorkDays = pondelok.. piatok;

Tu TWorkDays obsahuje hodnoty pondelok, utorok, streda, štvrtok a piatok.

To je všetko - teraz choďte vymenovať!