Typy proměnných Pascal. Ordinální datové typy v Pascalu. Booleovský formát deklarace proměnné
Koncept dat je jedním z klíčových v programování a obecně v informatika. Zhruba řečeno, data v informatice jsou informace, které jsou ve stavu uložení, zpracování nebo přenosu po určitou dobu. V Turingových strojích má informace svůj typ a ten zase závisí na typu informace.
Datové typy v Pascalu definují možné hodnoty proměnné, konstanty, výrazy a funkce. Jsou vestavěné a na zakázku. Vestavěné typy jsou zpočátku přítomny v programovacím jazyce a vlastní typy vytváří programátor.
Podle způsobu prezentace a zpracování jsou datové typy:
- jednoduchý
- strukturovaný
- ukazatele
- objektů
- postupy
Tento článek se bude zabývat pouze tím nejvíce jednoduché typyúdaje, od počáteční fázeškolení, bude pro váš program snazší obejít se například bez souborů a záznamů než bez celočíselných nebo řetězcových proměnných.
Celočíselný typ
To zahrnuje několik celočíselné typy, které se liší rozsahem hodnot, počtem bajtů přidělených pro jejich uložení a slovem, kterým je typ deklarován.
Typ | Rozsah | Velikost v bajtech |
zkratka | -128…127 | 1 |
celé číslo | -32 768…32 767 | 2 |
longint | -2 147 483 648…2 147 483 647 | 4 |
byte | 0…255 | 1 |
slovo | 0…65 535 | 2 |
V sekci Var můžete deklarovat celočíselnou proměnnou, například:
Proměnné v této kategorii lze použít k provádění všech aritmetických a logické operace S výjimkou dělení (/) vyžaduje skutečný typ. Některé lze také aplikovat standardní funkce a postupy.
Skutečný typ
V Pascalu jsou následující skutečné typy data:
Typ | Rozsah | Paměť, byte | Počet číslic |
Nemovitý | 2,9e-39 … 1,7e38 | 6 | 11-12 |
Singl | 1,5e-45 … 3,4e38 | 4 | 7-8 |
Dvojnásobek | 5,0e-324…1,7e308 | 8 | 15-16 |
Rozšířené | 3,4e-4932 … 1,1e493 | 10 | 19-20 |
Comp | -9,2e63…(9,2e63)-1 | 8 | 19-20 |
Dá se na nich udělat více operací a funkcí než na celých číslech. Například tyto funkce vrátí skutečný výsledek:
sin(x) – sinus;
cos(x) – kosinus;
arctan(x) – arkustangens;
ln(x) – přirozený logaritmus;
sqrt(x) – druhá odmocnina;
exp(x) – exponent;
Booleovský typ
Proměnná typu Boolean může nabývat pouze dvou hodnot: true a false. Zde true odpovídá hodnotě 1 a false odpovídá nule. Booleovskou proměnnou můžete deklarovat takto:
S daty tohoto typu lze provádět porovnávání a logické operace: not, a, nebo, xor.
Typ postavy
Znakový datový typ je kolekce znaků používaných v konkrétním počítači. Proměnná tohoto typu nabývá hodnoty jednoho z těchto znaků a zabírá 1 bajt v paměti počítače. Slovo Char definuje hodnotu tohoto typu. Existuje několik způsobů, jak zapsat znakovou proměnnou (nebo konstantu):
- jako jeden znak uzavřený v apostrofech: ‚W‘, ‚V‘, ‚p‘;
- zadáním kódu znaku, jehož hodnota musí být v rozsahu od 0 do 255.
- pomocí konstrukce ^K, kde K je kód řídicího znaku. Hodnota K musí být o 64 větší než odpovídající kód řídicího znaku.
Relační operace a následující funkce jsou použitelné pro hodnoty znakového datového typu:
Succ(x)- vrátí další znak;
Před(x)- vrátí předchozí znak;
Ord(x)- vrátí hodnotu kódu znaku;
Chr(x)- vrátí hodnotu symbolu jeho kódem;
Velká písmena (x)- převádí písmena z intervalu ‚a‘...‘z‘ na velká písmena.
Pro efektivní práci s typem postavy doporučuji používat .
Typ řetězce
Řetězec v Pascalu je posloupnost znaků uzavřená v apostrofech a je označena slovem Řetězec. Počet znaků (délka řádku) nesmí přesáhnout 255. Pokud není délka řádku uvedena, bude automaticky určena na 255 znaků. Celkový pohled Deklarace proměnné řetězce vypadá takto:
Var<имя_переменной>:string[<длина строки>];
Každý znak v řádku má svůj vlastní index (číslo). Index prvního bajtu je 0, ale neukládá první znak, ale délku celého řetězce, což znamená, že proměnná tohoto typu bude zabírat 1 bajt další číslo proměnné v něm. Číslo prvního znaku je 1, máme-li například řetězec S=‘stroka‘, pak S=s;. V jedné z následujících lekcí bude datový typ string probrán podrobněji.
Výčtový datový typ
Výčtový datový typ představuje omezený počet identifikátorů. Tyto identifikátory jsou uzavřeny v závorkách a odděleny čárkami.
Typ Den=(pondělí, úterý, středa, čtvrtek, pátek, sobota, neděle);
Proměnná A může nabývat pouze hodnot specifikovaných v části Typ. Můžete také deklarovat proměnnou výčtového typu v sekci Var:
Var A: (pondělí, úterý);
NA tento typ jsou použitelné relační operace a je předem určeno, že pondělí Když je potřeba zadat rozsah hodnot, pak se v takových situacích použije datový typ interval. Konstrukce použitá pro prohlášení je m..n, Kde m je minimální (počáteční) hodnota a n– maximální (konečná); zde m a n jsou konstanty, které mohou být celé číslo, znak, výčet nebo booleovský typ. Hodnoty typu interval lze popsat jak v sekci typy, tak v sekci popis proměnných. Celkový pohled: TYP<имя_типа> = <мин. значение>..<макс. значение>; Znalost a pochopení datových typů je nedílnou součástí programování. V této lekci se seznámíme s datovými typy v programovacím jazyce Turbo Pascal. V jazyce Pascal jsou libovolné objekty, tzn. konstanty, proměnné, funkční hodnoty nebo výrazy jsou charakterizovány svými typy. Typ definuje sadu platných hodnot pro objekt a také sadu operací, které se na něj vztahují. Typ navíc určuje formát vnitřní reprezentace dat v paměti počítače. Pokud jde o typy objektů, Pascal je statický jazyk. To znamená, že typ objektu, například proměnné, je určen při jeho deklaraci a nelze jej později změnit. Struktura datových typů v Pascalu: Jednoduché typy jazyků Řadové typy
vyznačující se tím, že každá z nich má konečný počet možných hodnot, mezi nimiž je stanoven lineární řád. Každá hodnota může být spojena s určitým celým číslem - jeho pořadovým číslem. Celočíselné typy- označují množiny celých čísel v různých rozsazích. Existuje pět celočíselných typů, které se liší rozsahem platných hodnot a velikostí paměti RAM, kterou zabírají. Integer typy jsou určeny identifikátory: Byte, ShortInt, Word, Integer, LongInt; jejich charakteristiky jsou uvedeny v následující tabulce. Hodnoty celočíselných typů se zapisují do programu obvyklým způsobem: Platné operace: Typ komp ačkoli je klasifikován jako skutečný typ, je to ve skutečnosti celé číslo s velmi velkým rozsahem hodnot. Bylo by chybou napsat reálné číslo takto: Reálné číslo ve formě s plovoucí desetinnou čárkou (vědecká forma) se zapisuje jako dvojice Platné operace: Při porovnávání reálných čísel byste měli pamatovat na to, že kvůli nepřesnosti jejich znázornění v paměti počítače (kvůli nevyhnutelnosti zaokrouhlování) byste se měli vyhnout pokusům o stanovení striktní rovnosti dvou reálných hodnot. Existuje šance, že rovnost bude falešná, i když ve skutečnosti není. Rozsah nebo (omezený typ) není předdefinovaným jazykovým typem (jako je Integer nebo Char), a proto k němu není přidružen žádný identifikátor. Tento typ je uživatelským vstupem. Pomocí něj můžeme definovat nový typ, který bude obsahovat hodnoty pouze z omezeného podrozsahu nějakého základního typu. Základním typem může být pouze celočíselný typ, typ Char (znak) a jakýkoli typ výčtu zavedený programátorem. Chcete-li zavést nový typ - rozsah - musíte v bloku popisu typu TYP označit název zadávaného typu a hranice rozsahu pomocí speciálního symbolu rozsahu ".." (dvě tečky za sebou): Typy strukturovaných jazyků Mezi strukturované typy patří: pole, záznam, sada, soubor atd. Všechny definují typ (nebo typy) nějaké datové struktury. Pole- uspořádaná struktura dat stejného typu, která je ukládá sekvenčně. Pole musí mít rozměry, které určují, kolik prvků je ve struktuře uloženo. K jakémukoli prvku v poli lze dosáhnout jeho indexem. Typ pole je určen konstrukcí: Rozsah v hranatých závorkách označuje hodnoty indexu prvního a posledního prvku ve struktuře. Příklady deklarací typů a proměnných: TYPE Vector = pole Real; VAR V1: Vektor; Zde je proměnná V1 definována pomocí výše popsaného typu Vector; typ proměnné V2 je konstruován přímo ve fázi jejího popisu. K prvku pole se přistupuje zadáním jeho indexu, například: Writeln(V1); (zobrazení prvního prvku pole V1) readln(M2) (zadání třetího prvku druhého řádku matice M2); Při popisu proměnné musíte uvést její typ. Typ proměnné popisuje sadu hodnot, které může nabývat, a akce, které s ní lze provádět. Deklarace typu určuje identifikátor, který představuje typ. Jednoduché typy se dělí na standardní (ordinální) a výčtové (omezené). Turbo Pascal má čtyři vestavěné standardní typy: integer, real, boolean a char. Turbo Pascal má pět vestavěných celočíselných typů: shortint, integer, longint, byte a word. Každý typ označuje určitou podmnožinu celých čísel, jak ukazuje následující tabulka. Vestavěné celočíselné typy. Rozsah Formát 8 bitů se znaménkem 16 bitů se znaménkem 2147483648 +2147483647 32 bit podepsaný 8 bitů bez znaménka 16 bitů bez znaménka Aritmetické operace s operandy celočíselného typu se provádějí podle následujících pravidel: Operace prováděné na celých číslech: "+" - sčítání "-" - odčítání "*" - násobení SQR - kvadratura DIV - po dělení zahodí zlomkovou část MOD - získání celočíselného zbytku po dělení ABS - číselný modul RANDOM(X) - získání náhodného čísla od 0 do X A:=100; b:=60; a DIV b výsledek - 1 a MOD b výsledek - 40 Proměnné typu integer jsou popsány takto: var seznam proměnných: typ; Například: var а,р,n:integer; Typ reál je podmnožinou reálných čísel, která mohou být reprezentována ve formátu s plovoucí desetinnou čárkou s pevným počtem číslic. Zápis hodnoty ve formátu s plovoucí desetinnou čárkou obvykle zahrnuje tři hodnoty – m, b a e – takové, že m*b e, kde b je vždy 10 a mae jsou celočíselné hodnoty v reálném rozsahu. Tyto hodnoty m a e dále určují rozsah a přesnost skutečného typu. Existuje pět typů reálných typů: real, single, double, exnende, comp. Skutečné typy se liší v rozsahu a přesnosti hodnot s nimi spojených Rozsah a desetinné číslice pro reálné typy Rozsah Čísla 2,9x10E-39 až 1,7x10E 38 1,5x10E-45 až 3,4x10E 38 5,0x10E-324 až 1,7x10E 308 3,4x10E-493 až 1,1x10E 403 2E 63 až 2E 63 Operace prováděné na reálných číslech: Proměnné reálného typu jsou popsány takto: Například: Typ char je jakýkoli znak uzavřený v apostrofech. Chcete-li reprezentovat apostrof jako znakovou proměnnou, musíte jej uzavřít do apostrofu: ''''. Každý znak má svůj kód a číslo. Sériová čísla číslic 0,1..9 jsou řazena vzestupně. Sériová čísla písmen jsou také řazena vzestupně, ale nemusí nutně následovat za sebou. Pro znaková data platí následující znaky porovnání: > , < , >=, <=, <> . Například: 'A'< ‘W’ Funkce, které se vztahují na znakové proměnné: Výčtový datový typ je tak pojmenován, protože je specifikován jako seznam konstant v přesně definovaném pořadí a v přesně definovaném množství. Výčtový typ se skládá ze seznamu konstant. Proměnné tohoto typu mohou nabývat hodnoty kterékoli z těchto konstant. Popis typu výčtu vypadá takto: Kde<список констант>- jedná se o speciální typ konstant, které se oddělují čárkami a mají vlastní pořadové číslo, začínající od 0. Například: var turn:(sever, jih, západ, východ) ; odjezd: (červen, červenec, srpen, leden) ; objem: (kbelík, sud, kanystr, nádrž); Můžete provádět následující operátory přiřazení: Rotace:=jih; odjezd:=srpen; objem:=nádrž; ale nemůžete dělat smíšené úkoly: Odjezd:=jih; svazek:=srpen; Následující funkce platí pro proměnné výčtového typu: 1. ORD - sériové číslo 2. PRED - předchozí prvek PRED (hlaveň) = vědro; SUCC (jih) =západ; ORD (červenec) =1;< юг, июнь < январь имеют значения TRUE, а юг>Proměnné výčtového typu lze porovnávat, protože jsou seřazeny a očíslované. Tedy výrazy: sever<бочка значение FАLSE. Omezený typ Pokud proměnná nepřijímá všechny hodnoty svého typu, ale pouze v určitém rozsahu, lze ji považovat za proměnnou omezeného typu. Každý typ s omezeními je definován uložením omezení na základní typy. =konstanta1 ..konstanta2 index typu =0 ..63 ; písmeno=’a’..’z’; var char1,char2:dopis; a,g:index ; var a,g:0 ..63 ; char1,char2:'a'...'z'. Stejně jako v jiných programovacích jazycích na vysoké úrovni jsou typy proměnných v Pascalu optimalizovány pro provádění úkolů různých typů, mají různý rozsah hodnot a délku v bajtech. Typy proměnných v Pascalu se dělí na jednoduché a strukturované. Jednoduché typy zahrnují skutečné a ordinální typy. Strukturované zahrnují pole, záznamy, sady a soubory. Samostatně se rozlišují ukazatele, objekty a procedurální typy. Podívejme se na ordinální a reálné typy. Ordinální typy zahrnují 5 celočíselných typů, typ výčtu a typ rozsahu. Existuje 5 celočíselných typů, které se liší délkou bajtu a rozsahem hodnot. Délka Byte a ShortInt je 1 bajt. Rozdíl mezi nimi je v tom, že Byte ukládá pouze nezáporné hodnoty, zatímco ShortInt umožňuje ukládat záporné (od -128 do +127). Typy Word a Integer spolu souvisí podobným způsobem, jen s tím rozdílem, že jejich velikost je 2 bajty. A konečně, LongInt umožňuje ukládat záporné i kladné hodnoty pomocí 4 bajtů - v 16. mocnině číselné dimenze na obou stranách nuly. Různé typy proměnných v Pascalu přispívají k efektivnímu řešení uživatelských úloh, protože v každém konkrétním případě může být vyžadován malý i velký rozsah hodnot a také může existovat omezení na množství přidělené paměti. Je důležité pochopit, že nula zabírá tolik místa v paměti jako jakékoli jiné číslo. Při vytváření rozsahu hodnot bude tedy minimální záporné číslo v absolutní hodnotě o jednu větší než kladné: například od -128 do +127. Proměnné patřící do mohou mít hodnotu TRUE (true) nebo FALSE (false) a vyžadují 1 bajt paměti. Typ CHAR umožňuje uložit libovolný z mnoha znaků, které existují v paměti počítače. Přitom v symbolických proměnných v Pascalu je skutečně uložen pouze kód znaku, podle kterého se zobrazuje jeho grafická podoba. Mezi typy proměnných v Pascalu existuje několik číselných s možností zápisu zlomkové části. Rozdíly mezi typy Single, Real, Double a Extended spočívají v rozsahu přijatých hodnot, počtu platných číslic za desetinnou čárkou a velikosti v bajtech. Podle výše uvedeného pořadí bude proměnná každého typu zabírat 4, 6, 8 nebo 10 bajtů. Strukturované datové typy jsou složité a umožňují kombinovat řadu jednoduchých hodnot v rámci jedné proměnné. Ukázkovým příkladem je pole, které lze definovat takto: String=pole znaků; Získali jsme tak typ nazvaný String, který nám umožňuje definovat proměnné dlouhé až 100 znaků. Poslední řádek přímo určuje jednorozměrné pole Y typu String. Proměnné v Pascalu jsou popsány umístěním identifikátoru na levou stranu a hodnoty proměnné napravo za rovnítko. Rozsah zapsaných indexů umožňuje přístup ke každému konkrétnímu prvku pole: V tomto případě čteme druhý prvek dříve vytvořeného pole Y. Řetězcové proměnné v Pascalu jsou také speciálním případem jednorozměrného pole, protože řetězec je posloupnost znaků, tedy prvků typu char. Záznam se skládá z několika polí vyplněných daty libovolného typu kromě souboru. Obecně je tento typ proměnné podobný databázovému prvku. Můžete například zadat jméno a telefonní číslo osoby: typ NTel = Záznam První řádek vlevo označuje název typu a vpravo záznam servisního slova. Druhý řádek obsahuje pole se jménem, třetí - telefonní číslo. Slovo „end“ znamená, že jsme zadali všechna pole, která jsme chtěli, a tím je proces vytváření záznamu dokončen. Nakonec v posledním řádku nastavíme proměnnou One, která je typu NTel. Můžete přistupovat jak k záznamu jako celku, tak k jeho jednotlivým komponentám, například: one.NAME (tj. název_proměnné. název_pole_záznamu). Pascal umožňuje pracovat s textem, psanými a nepsanými soubory, což je strukturovaná sekvence komponent, které mají stejný typ. Při čtení nebo zápisu do souboru lze použít buď celou adresu, nebo její zkrácenou formu: „C:\Složka\Soubor2.txt“ Krátká forma se používá, když je soubor umístěn ve složce, kde je uložen program, který k němu přistupuje. Plnou formu lze použít za jakýchkoliv okolností. Proměnnou typu souboru můžete nastavit následovně: f1: soubor celého čísla; Pro práci se soubory se používají různé funkce a procedury, které přidruží proměnnou k souboru na disku, otevřou ji pro čtení, zápis a přepis, po dokončení zavřou, umožní vytvořit nový název a soubor z počítače smazat. Bez možnosti používat různé typy proměnných v Pascalu nebude uživatel schopen realizovat ani ten nejjednodušší úkol. Aby program mohl provést algoritmus bez chyb, je nutné se naučit funkční slova i syntaxi, protože stroj „rozumí“ příkazům pouze tehdy, jsou-li napsány jediným správným způsobem. Federální agentura pro vzdělávání Abstraktní "TYPY DAT V PASCALU" 1. Datové typy Jakékoliv údaje, tzn. konstanty, proměnné, vlastnosti, funkční hodnoty nebo výrazy jsou charakterizovány svými typy. Typ definuje sadu platných hodnot, které může objekt mít, a také sadu platných operací, které na něj lze použít. Kromě toho typ určuje také formát vnitřní reprezentace dat v paměti PC. Obecně se jazyk Object Pascal vyznačuje rozvětvenou strukturou datových typů (obr. 1.1). Jazyk poskytuje mechanismus pro vytváření nových typů, díky němuž může být celkový počet typů použitých v programu libovolně velký. Data zpracovávaná v programu jsou rozdělena na proměnné, konstanty a literály: Konstanty
reprezentují data, jejichž hodnoty jsou nastaveny v sekci deklarace konstant a během provádění programu se nemění. Proměnné
jsou deklarovány v sekci deklarace proměnných, ale na rozdíl od konstant dostávají své hodnoty během provádění programu a tyto hodnoty lze měnit. Na konstanty a proměnné lze odkazovat jménem. Doslovný
nemá žádný identifikátor a je reprezentován přímo hodnotou v textu programu. Typ definuje množinu hodnot, které mohou datové prvky nabývat, a množinu operací s nimi povolených. Tato a čtyři následující kapitoly poskytují podrobné popisy každého typu.
1.1 Jednoduché typy Jednoduché typy zahrnují ordinální, reálné a datum a čas. Řadové typy se liší tím, že každá z nich má konečný počet možných hodnot. Tyto hodnoty mohou být určitým způsobem seřazeny (odtud název typů), a proto může být každá z nich spojena s nějakým celým číslem - pořadovým číslem hodnoty. Skutečné typy, přísně vzato, mají také konečný počet hodnot, který je určen formátem vnitřní reprezentace reálného čísla. Počet možných hodnot reálných typů je však tak velký, že ke každé z nich není možné přiřadit celé číslo (jeho počet). Typ data a času navržený pro ukládání data a času. Ve skutečnosti pro tyto účely používá skutečný formát. 1.1.1 Pořadové typy K ordinálním typům patří (viz obrázek 1.1) celočíselné, logické, znakové, výčtové a rozsahové typy. Na kteroukoli z nich lze aplikovat funkci Ord(x), která vrací pořadové číslo hodnoty výrazu X. Rýže. 1.1 - Struktura datových typů Pro celý typů, funkce ord(x) vrací hodnotu samotného x, tj. Ord(X) = x pro x patřící libovolnému celý typ. Použití Ord(x) na logický
, symbolické a vyčíslitelné typy dává kladné celé číslo v rozsahu 0 až 1 ( booleovský typ), od 0 do 255 ( symbolický), od 0 do 65535 ( spočítatelný). Typová řada zachovává všechny vlastnosti základního ordinálního typu, takže výsledek aplikace funkce ord(x) na něj závisí na vlastnostech tohoto typu. Funkce můžete také použít na řadové typy: před(x)- vrátí předchozí hodnotu ordinálního typu (hodnotu, která odpovídá ordinálnímu číslu ord(x) -1, tj. ord(pred(x)) = ord(x) - 1; succ(x)- vrátí další hodnotu ordinálního typu, která odpovídá řadovému číslu ord(x) +1, tedy ord(Succ(x)) = ord(x) + 1. Například pokud program definuje proměnnou pak funkce PRED(c) vrátí znak "4" a funkce SUCC(c) vrátí znak "6". Představíme-li si jakýkoli ordinální typ jako uspořádanou množinu hodnot, rostoucí zleva doprava a zabírající určitý segment na číselné ose, pak funkce pred(x) není definována pro levou a succ (x) pro pravou konec tohoto segmentu. Celočíselné typy
. Rozsah možných hodnot celočíselných typů závisí na jejich vnitřní reprezentaci, která může být jeden, dva, čtyři nebo osm bajtů. V tabulce 1.1 ukazuje názvy celočíselných typů, délku jejich vnitřní reprezentace v bajtech a rozsah možných hodnot. Tabulka 1.1 - Typy celých čísel Typy LongWord A Int64 byly poprvé představeny ve verzi 4 a typy Smallint A Kardinál není k dispozici v Delphi 1. Typ celé číslo pro tuto verzi trvá 2 bajty a má rozsah hodnot od -32768 do +32767, tedy stejný jako Smallint
. Při používání procedur a funkcí s celočíselnými parametry byste se měli řídit „vnořováním“ typů, tzn. kdekoli jej lze použít slovo, povoleno používat Byte(ale ne naopak), v Longint"vstoupí" Smallint, což zase zahrnuje Shortint
. Seznam procedur a funkcí použitelných pro celočíselné typy je uveden v tabulce. 1.2. Písmena b, s, w, i, l označují výrazy následujících typů: Byte
, Shortint, Word, Integer a Longint
, x je výraz kteréhokoli z těchto typů; písmena vb, vs, vw, vi, vl, vx označují proměnné odpovídajících typů. Nepovinný parametr je uveden v hranatých závorkách. Tabulka 1.2 - Standardní postupy a funkce platné pro celé typy Při práci s celými čísly bude typ výsledku odpovídat typu operandů, a pokud jsou operandy různých celočíselných typů, společný typ, který zahrnuje oba operandy. Například při provozu s zkratka A slovo běžný typ bude celé číslo. Ve výchozím nastavení kompilátor Delphi nevytváří kód pro kontrolu, zda je hodnota mimo rozsah, což může vést k nedorozuměním. Booleovské typy
. Mezi logické typy patří Boolean, ByteBool, Bool, wordBool A LongBool. Ve standardním Pascalu je definován pouze typ Boolean, jsou do Object Pascal zavedeny další logické typy kvůli kompatibilitě s Windows: typy Boolean A ByteBool každý zabírá jeden bajt, Bool A WordBool- 2 bajty každý, LongBool- 4 bajty. Booleovské hodnoty mohou být jednou z předem deklarovaných konstant False nebo True. Protože booleovský typ je ordinální typ, lze jej použít v příkazu smyčky počitatelného typu. V Delphi 32 pro Boolean význam Ord (True) = +1, zatímco pro ostatní typy ( Boole, WordBool atd.) Ord(True) = -1, takže tyto druhy operátorů je třeba používat opatrně! Například pro verzi Delphi 6 je spustitelný příkaz showMessage(" --- ") v následující smyčce pro nikdy nebude provedeno: for L:= False to True do ShowMessage("--); Pokud nahradíme parametr smyčky typu L v předchozím příkladu za Boolean, smyčka se spustí a zpráva se na obrazovce objeví dvakrát. [Pro verze Delphi 1 a 2 ord (True) =+1 pro jakýkoli booleovský typ.] Typ postavy
. Hodnota typu znaku je množina všech znaků PC. Každému znaku je přiřazeno celé číslo v rozsahu 0...255. Toto číslo slouží jako kód pro interní reprezentaci symbolu, je vráceno funkcí ord. Pro kódování ve Windows se používá kód ANSI (pojmenovaný podle American National Standard Institute, amerického standardizačního institutu, který tento kód navrhl). První polovina znaků PC s kódy 0...127 odpovídá tabulce 1.3. Druhá polovina znaků s kódy 128...255 se pro různá písma liší. Standardní písma Windows Arial Cyr, Courier New Cyr a Times New Roman používají posledních 64 kódů (od 192 do 256) k reprezentaci znaků azbuky (bez písmen „ё“ a „Ё“): „A“... „Z“ jsou zakódovány hodnoty 192..223, „a“... „i“ - 224...255. Symboly „Ё“ a „е“ mají kódy 168 a 184. Tabulka 1.3 - Kódování znaků v souladu se standardem ANSI Znaky s kódy 0...31 odkazují servisní kódy. Pokud jsou tyto kódy použity ve znakovém textu programu, jsou považovány za prázdné znaky.Datový typ intervalu
Mezi jednoduché typy patří ordinální, reálný, řetězcový a adresový (ukazatel). Všechny definují typ pouze jedné jediné hodnoty.
123 4 -3 +345 -699
Přítomnost desetinné čárky v zápisu celého čísla je nepřijatelná. Bylo by chybou napsat celé číslo takto:
123.0
Kromě obvyklé desítkové formy zápisu je možné zapsat celá čísla v hexadecimálním formátu pomocí předpony $, například:
$01AF $FF $1A $F0A1B
Na velikosti písmen A, B, ..., F nezáleží.
Booleovský typ- sestává pouze ze dvou hodnot: False (false) a True (true). Slova False a True jsou v jazyce definována a jsou to ve skutečnosti logické konstanty. Velikost písmen v jejich psaní není důležitá: FALSE = false. Hodnoty tohoto typu jsou výsledkem vyhodnocení podmíněných a logických výrazů a účastní se všech druhů podmíněných operátorů jazyka.
Platné operace:
Typ postavy (Char) je datový typ skládající se z jednoho znaku (znak, písmeno, kód). Hodnota znaku může být libovolný znak ze znakové sady ASCII. Pokud má symbol grafické znázornění, pak je v programu napsán v jednoduchých uvozovkách (apostrofech), například:
"w" "s" "." "*" " "-(mezera)
Pro znázornění samotného apostrofu je jeho obraz zdvojen: """".
Pokud znak nemá grafické znázornění, například znak tabulátoru nebo znak pro návrat vozíku, můžete použít ekvivalentní formu zápisu hodnoty znaku, která se skládá z předpony # a kódu ASCII znaku:
#9 #32 #13
Platné operace:
Typ řetězce (String, String[n])- Tento datový typ definuje sekvence znaků - řetězce. Parametr n určuje maximální počet znaků na řádek. Pokud není specifikováno, předpokládá se n=255. Hodnota typu „string“ v programu je zapsána jako sekvence znaků uzavřených v jednoduchých uvozovkách (apostrofech), např.
"Toto je řetězec"
"1234" je také řetězec, nikoli číslo
"" - prázdný řetězec
Platné operace:
Skutečné typy- označují množiny reálných čísel v různých rozsazích. Existuje pět skutečných typů, které se liší rozsahem přípustných hodnot a velikostí obsazené paměti RAM. Reálné typy jsou určeny identifikátory: Real, Single, Double, Extended, Comp; jejich charakteristiky jsou uvedeny v následující tabulce.
Hodnoty reálných typů lze v programu zapsat několika způsoby:
1.456 0.000134 -120.0 65432
+345 0 -45 127E+12
-1,5E-5 -1,6E+12 5E4 0,002E-6
0,5 (správně 0,5)
12. (správně 12.0 nebo 12)
<мантисса>E<порядок>
Toto označení je chápáno jako „mantisa vynásobená deseti na sílu rovnou řádu“. Například,
-1,6E+12 odpovídá -1,6 1012
- zadání;
- všechny aritmetiky: +, - ,*, /;
- srovnání:<, >, >=, <=, <>, =.
TYP
Století = 1..21; (podrozsah celočíselného typu)
CapsLetters = "A"."Z"; (podrozsah typu Char)
Pole [rozsah] ElementType;
V2: pole Byte;
Jako typ prvku pole můžete také zadat pole, čímž vytvoříte vícerozměrné struktury. Například popis dvourozměrné struktury (matice) bude vypadat takto:
VAR M1: pole pole Byte; Totéž lze napsat mnohem kompaktněji: VAR M2: pole Byte;
Tím končí lekce o datových typech, text byl téměř kompletně zkopírován a vložen (odkaz bude níže), protože Nevidím smysl vyprávět tento materiál vlastními slovy. Pokud je rozdíl mezi datovými typy alespoň trochu jasný, je to již dobré.Standardní typy
Typ celého čísla (integer)
Skutečný typ (skutečný)
Typ znaku (znak)
SUCC(X) - vrátí znak následující za znakem X succ (‘A‘) =‘B‘;
západ a tank
Počáteční hodnota při definování omezeného typu nesmí být větší než konečná hodnota. Rozdělení typů proměnných
Řadové typy
Skutečné typy
Pole
Příspěvky
Soubory
Na závěr
Jméno
Délka, bajty
Rozsah hodnot
Kardinál
4
0. .. 2 147 483 647
Byte
1
0...255
Shortint
1
-128...+127
Smallint
2
-32 768...+32 767
Slovo
2
0...65 535
Celé číslo
4
Longint
4
-2 147 483 648...+2 147 483 647
Int64
8
-9*1018...+9*1018
LongWord
4
0. . .4 294 967 295
Odvolání
Typ výsledku
Akce
abs(x)
x
Vrátí modul x
chr(b)
Char
Vrátí znak podle jeho kódu
dec(vx[,i])
-
Snižuje hodnotu vx o i, a pokud není i - o 1
inc(vx[,i])
-
Zvýší hodnotu vx o i, a v nepřítomnosti i - o 1
ahoj(w)
Byte
Vrátí nejvyšší úklon argumentu
ahoj (já)
Stejný
Vrátí třetí bajt
Lo(i)
“
Vrátí dolní bajt argumentu
Nízký)
“
Stejný
lichý(l)
Boolean
Vrátí hodnotu True, pokud je argumentem liché číslo
Náhodné (w)
Stejné jako parametr
Vrátí pseudonáhodné číslo rovnoměrně rozložené v rozsahu 0...(w-l)
sqr(x)
X
Vrátí druhou mocninu argumentu
vyměnit (i)
Celé číslo
Vymění bajty ve slově
vyměnit (w)
Slovo
Stejný
Kód
Symbol
Kód.
Symbol
Kód.
Symbol
Kód
Symbol
0
NUL
32
B.L.
64
@
96
"
1
ZON
33
!
65
A
97
A
2
STX
34
“
66
V
98
b
3
ETX
35
#
67
S
99
S
4
EOT
36
$
68
D
100
d
5
ENQ
37
%
69
E
101
E
6
ACK
38
&
70
F
102
F
7
BEL
39
"
71
G
103
d
8"
B.S.
40
(
72
N
104
h
9
HT
41
)
73
já
105
i
10
LF
42
*
74
J
106
j
11
VT
43
+
75
NA
107
k
12
FF
44
F
76
L
108
1
13
ČR
45
-
77
M
109
m
14
TAK
46
78
N
110
n
15
S.I.
47
/
79
0
111
Ó
16
DEL
48
0
80
R
112
P
17
DC1
49
1
81
Q
113
q
18
DC2
50
2
82
R
114
r
19
DC3
51
3
83
S
115
s
20
DC 4
52
4
84
T
116
t
21
N.A.K.
53
5
85
U
117
u
22
SYN
54
6
86
PROTI
118
proti
23
ETB
55
7
87
W
119
W
24
CAN
56
8
88
X
120
x
25
E.M.
57
9
89
Y
121
U
26
SUB
58
:
90
Z
.122
z
27
ESC
59
;
91
t
123
{
28
FS
60
<
92
\
124
1
29
G.S.
61
=
93
]
125
}
30
R.S.
62
>
94
L
126
~
31
NÁS
63
F
95
127
r