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

3.1.4. Datový typ výčet

Výčet je jednoduchý datový typ, který si uživatel může definovat podle svých požadavků. jednotlivé hodnoty mají svá ordinální čísla podle pořadí v zápisu a jejich počítání začíná nulou. Myslím, že příklad bude jasnější:

   type 

      tyden = (pondeliuterystredactvrtekpateksobotanedele); 

      obdobi = (jaroletopodzimzima); 

   var 

      dentyden

      dobaobdobi

Potom platí následující vztahy:

succ(podneli) = utery

pred(podzim) = leto

ord(patek) = 4

3.1.5. Datový typ interval

Tento datový typ specifikuje souvislou neprázdnou podmnožinu hodnot nějakého ordinálního typu. Dolní a horní mez této podmnožiny udávají dvě konstanty daného ordinálního typu. Např.: zápis 1 .. 100 definuje interval, specifikující množinu celočíselných hodnot. Typ interval však nemusí být definován pouze nad číselnými typy, může být definován i nad typy výčet či char, jak ukazuje následující příklad:

   type 

      pracovni_dny = pondeli .. patek

      velke_pismeno = 'A' .. 'Z'; 

Potom opět platí následující vztahy:

ord(patek) = 4

ord('A') = 65

'A' < 'B' < 'C' < ... < 'Z'

3.1.6. Datový typ real

Tento datový typ specifikuje konečnou podmnožinu reálných čísel. Používá se pro vyjádření hodnot s pohyblivou desetinnou čárkou. V paměti počítače se hodnoty vyjadřují jako dvojice (M,N), kde M je mantisa a N je exponent. Rozsahy hodnot jsou uvedeny v následující tabulce:

Typ

Rozsah

byte/bitů

real

2.9*10-39 .. 1.7*10+38

6/48

single

1.5*10-45 .. 3.4*10+38

4/28

double

5.0*10-324 .. 1.7*10+308

8/64

extended

3.4*10-4932 .. 1.1*10+4932

10/80

Tento typ, i když má největší rozsah, co se týče numerických hodnot, má také jedno omezení, a tím je tzv. strojová nula. Tato hodnota je určena intervalem (0, minreal), kde minreal je v absolutní hodnotě minimální zobrazitelná hodnota na daném počítači. Protože reálné číslo není možné zobrazit v počítači s libovolnou přesností, s konečnou přesností se vykonávají i operace a funkce, definované nad tímto typem. Toto je nutno brát v úvahu při tvorbě i ověřování správnosti programu.

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

+

sčítání

-

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

=

násobení

/

dělení

Dále jsou zde definovány relační operace stejně jako u typu integer a tyto standardní funkce:

abs(x)

absolutní hodnota

sqr(x)

druhá mocnina

sqrt(x)

druhá odmocnina

sin(x)

vypočte sin(x) - argument x je v radiánech

cos(x)

vypočte cos(x) - argument x je v radiánech

arctan(x)

vypočte arctan(x) - výsledek je v radiánech

ln(x)

přirozený logaritmus

exp(x)

funkce ex

Konverze mezi datovými typy integer a real:

integer --> real:

tato konverze je implicitní: pokud proměnná X typu integer má hodnotu 2 a Y je typu real, po přiřazovacím příkazu Y := X bude mít proměnná Y hodnotu 2.0

real --> integer:

tato konverze implicitní není a proto jsou pro ni zavedeny dvě funkce:

  • trunc(x) . . . vrací celou část reálného čísla x tím, že desetinnou část odstraní

  • round(x) . . . vrací zaokrouhlenou hodnotu reálného čísla x, definovanou takto:      round(x) = trunc(x + 0.5) pro x >= 0)      round(x) = trunc(x - 0.5) pro x <= 0)

Následující tabulky uvádějí povolené kombinace argumentů a odpovídající typy výsledků relačních operátorů, aritmetických a standardních funkcí:

a

b

a +, -, * b

a /b

a div, mod b

a =, <>, <, >, <=, >= b

integer

integer

integer

real

integer

boolean

integer

real

real

real

--

boolean

real

integer

real

real

--

boolean

real

real

real

real

--

boolean

a

abs(a), sqr(a)

sin(a), cos(a), arctan(a), ln(a), exp(a), sqrt(a)

odd(a)

integer

integer

real

boolean

real

real

real

--

Reálná čísla v Pascalu se zapisují ne s desetinnou čárkou, ale s desetinnou tečkou. Také pro exponent se používá neobvyklý zápis: místo 10-13 se používá e-13 nebo E-13. Pak tedy číslo 3,5478*10-14 se zapíše 3.5478E-14.

Běžně se používá k programování typ real. Rozšířené reálné typy singledouble a extended se mohou používat pouze se zabudovaným matematickým koprocesorem, nebo musíme jeho činnost emulovat. To se provádí pomocí direktiv. {$N+} je direktiva oznamující využití matematického koprocesoru, direktiva {$E+} zajistí emulaci matematického koprocesoru 80x86.

 

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