Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
datove typy.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
38.76 Кб
Скачать

3.1. Jednoduché datové typy

Jednoduché datové typy jsou definovány svým identifikátorem a typem v deklarační oblasti. Pro tyto typy jsou definovány relace rovnost a nerovnost dvou hodnot a dále relace větší a menší.

Jednoduché datové typy se dále ještě dělí na ordinální a neordinální typy. To, že některé typy mají vlastnost být ordinálníznamená, že hodnota, náležící do tohoto typu, má svého předchůdce, svého následovníka a její pozici lze číselně ohodnotit. Ordinálních typů je pět: integerbooleanchar a uživatelem definované typy interval a výčtový typ. Neordinální typ je pouze jeden a jmenuje se real.

Pro ordinální typy platí:

  • hodnoty ordinálního typu jsou uspořádanou množinou hodnot

  • každá hodnota je sdružena s ordinalitou, což je celočíselná hodnota, udávající pozici v uspořádané množině hodnot

  • první ordinální hodnota každého typu (kromě typu integer) je 0, další 1, 2, atd.

  • každá hodnota ordinálního typu má předchůdce (kromě první hodnoty) a následovníka (kromě poslední hodnoty)

  • pro zjišťování ordinální hodnoty argumentu, předchůdce a následovníka existují funkce:

    • succ(x)  . . . vrací ordinální hodnotu následovníka

    • pred(x)  . . . vrací ordinální hodnotu předchůdce

    • ord(x)    . . . vrací ordinální hodnotu argumentu, kde x je hodnota ordinálního typu

  • další funkce:

    • inc(v)     . . . zvětší hodnotu proměnné v o jedničku

    • inc(v,h)  . . . zvětší hodnotu proměnné v o h

    • dec(v)    . . . zmenší hodnotu proměnné v o jedničku

    • dec(v,h) . . . zmenší hodnotu proměnné v o h

3.1.1. Datový typ integer

Tento datový typ specifikuje konečnou souvislou podmnožinu celých čísel. Umožňuje uživateli využít pět datových typů, které se od sebe liší rozsahem hodnot a tím i použitou velikostí paměti. Přehled je v následující tabulce:

Typ

Rozsah

byte/bitů

shortint

-128 .. 127

1/8

integer

-32 768 .. 32 767

2/16

longint

-2 147 483 648 .. 2 147 483 647

4/32

byte

0 .. 255

1/8

word

0 .. 65 535

2/16

comp

-263 + 1 .. 263 - 1

8/64

Pro hlavního zástupce tohoto typu integer jsou hodnoty definovány v rozsahu -Maxint <= 0 <= Maxint, kde -Maxint = -32 768 a Maxint = 32 767. Všechny typy integer jsou použitelné i bez přítomnosti matematického koprocesoru. (I když v dnešní době asi tato poznámka ztrácí na významu.)

Pro hodnoty tohoto typu jsou definovány operace s výsledky rovněž typu integer:

+

sčítání

-

odčítání nebo unární operace změny znaménka

*

násobení

div

celočíselné dělení (celá část po dělení)

mod

zbytek po celočíselném dělení (Tato operace pro dva argumenty i mod j je definována takto: je-li j <= 0, nastane při výpočtu chyba. Jinak se i mod j rovná hodnotě i - (k * j) pro takové celé k, pro které je 0 <= i mod j < j

Operace +, - ,* jsou definovány pro všechny dvojice celých čísel, pokud výsledek leží v intervalu <-Maxint, Maxint>

Další operace, definované nad tímto typem, jsou relační:

=

rovnost

<>

nerovnost

<

menší než

>

větší než

<=

menší nebo rovno

>=

větší nebo rovno

Pokud hodnoty operandů splňují relaci, výsledkem je logická hodnota true (pravda), v opačné případě false (nepravda).

Standardní funkce, definované nad tímto typem (první dvě dávají výsledek typu integer, třetí typu boolean):

abs(i)

zjistí absolutní hodnotu čísla i

sqr(i)

vypočte druhou mocninu čísla i

odd(i)

vrátí logickou hodnotu true, pokud je i liché číslo, jinak vrátí logickou hodnotu false

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]