Type |
Rozsah |
Format |
Shortint |
–128..127 |
signed 8-bit |
Smallint |
–32768..32767 |
signed 16-bit |
Longint |
–2147483648..2147483647 |
signed 32-bit |
Int64 |
–2^63..2^63–1 |
signed 64-bit |
Byte |
0..255 |
unsigned 8-bit |
Word |
0..65535 |
unsigned 16-bit |
Longword |
0..4294967295 |
unsigned 32-bit |
zahŕňa podmnožinu množiny celých čísel
všetky operácie vykonávané s dátami typu
integer sú presné a spĺňajú bežné aritmetické pravidlá (ak je výsledok
operácie mimo reprezentovanej množiny, výpočet programu sa preruší)
operácie: +
, -, *, div (celočíselný podiel), mod (zvyšok po celočíselnom delení)
14
: 3 = 4 -> 14 div 3
2
-> 14 mod 3
porovnávanie (relačné operátory):
=, >, <, <>, <=, >=
výsledkom porovnávania je true - pravda alebo
false - nepravda,
štandardné funkcie:
pred(i)
– predchodca i
succ(i)
– následník i
abs(i)
– absolútna hodnota
sqr(i)
– druhá mocnina i2
sqrt(i)
– druhá odmocnina
odd(i)
– funkcia vracia hodnotu true, ak číslo i je nepárne, v opačnom
prípade vráti hodnotu false
trunc(i)
– funkcia ureže desatinnú časť reálneho čísla a vráti celočíselnú
časť, s touto časťou sa ďalej pracuje ako s integer (konvertuje typ
real na integer)
round(i)
– funkcia vráti zaokrúhlenú hodnotu reálneho čísla i, ... s touto
časťou sa ďalej pracuje ako s integer, čísla, ktoré sú uprostred
intervalu (napr. 2,5) sa zaokrúhľujú na číslo, ktoré ma väčšiu absolútnu
hodnotu
inc(i)
– i+1
dec(i)
– i-1
Type
|
Rozsah | Significant digits | Size in bytes |
Real48
|
2.9 x 10^–39 .. 1.7 x 10^38 | 11–12 | 6 |
Single
|
1.5 x 10^–45 .. 3.4 x 10^38 | 7–8 | 4 |
Double
|
5.0 x 10^–324 .. 1.7 x 10^308 | 15–16 | 8 |
Extended
|
3.6 x 10^–4951 .. 1.1 x 10^4932 | 19–20 | 10 |
Comp
|
–2^63+1 .. 2^63 –1 | 19–20 | 8 |
Currency |
–922337203685477.5808.. 922337203685477.5807 | 19–20 | 8 |
podmnožina
reálnych čísel, čísla môžu byť vyjadrené desatinným zápisom aj s
exponentom
pr.:
3.4 ; 75E-10 ; ...
pripúšťame
tu nepresnosti v rámci limitu chýb spôsobených zaokrúhľovaním
nadol, lebo sa pracuje len s konečným počtom číslic, reálne operácie
veľmi často majú chyby spôsobené realizáciou v počítači
operácie:
+, -, *, / -delenie, (oba operandy sú reálne)
porovnávanie:
=, >, <, <>, <=, >=
štandardné
funkcie: round(r) -
zaokrúhľovanie
trunc(r)
– odreže číslice za des. čiarkou
arctan(r)
cos(r),
sin(r)
exp(r) -
er
pi
random
abs
sqr
sqrt
desatinná
čiarka -> 1.2 zadávanie
bodkou !!! exponent približne ±300
pre
každé číslo nevieme určiť nasledovné reálne číslo,
t.j. medzi 0 a 0.0001 možno existuje číslo, nemá zmysel nasledovník,
t.j. nefunguje pred ani succ
automatická
konverzia - keď sa pri reálnej operácii vyskytne celočíslený operand
konvertuje sa na reálne číslo, napr. 1+1.5, 1/3 = 1.0/3.0
analogicky
s relačnými a s priradením, real:=integer, ale nie integer:=real !!
nefunguje
ani inc, dec
množina
znakov vyčísliteľných na danom počítači, najrozšírenejšou množinou
je množina znakov definovaná Medzinárodnou organizáciou pre štandardizáciu
(ISO) a najmä jej americká verzia ASCII – americký štandardný kód
pre výmenu informácií, obsahuje 8x16 (= 128) znakov
#
65
‘A‘ -
reprezentácia znakov
existujú
dve prevodové funkcie medzi char a integer:
o
ord(c) -> typ integer, c je typu char, určuje
poradové číslo znaku c v množine znakov char, ktoré sa vypočíta
pomocou jeho súradníc v tabuľke ASCII
ord(c) = 16.x + y
x
– číslo stĺpca (0..7)
y
– číslo riadku (0..15)
o
chr(i) ->
i-tý znak z množiny char, i je typu integer, chr je inverzná
funkcia k funkcii ord,
ord(chr(i))
= i ak chr(i) je definovaná
chr(ord(c))
= c
porovnávanie:
=, >, <, <>, <=, >=
succ
(c) = chr (ord(c) +1) - následník
pred
(c) = chr (ord (c) –1) – predchodca
obsahuje
2 hodnoty: true – stav pravda, false – stav nepravda
operácie:
and - konjunkcia, or - disjunkcia, not – negácia
vlastnosti
:
false < true
ord
(false) = 0
ord
(true) = 1
succ
(false) = true
pred
(true) = false
Napr.:
x=2.7, y=3
o
If x
> y then ...
výraz má hodnotu false
najčastejšie
slúži na vetvenie výpočtu: cyklus s podmienkou na začiatku alebo na
konci (while, repeat) alebo pre podmienený príkaz (if)
logickú
hodnotu vrátia napr. relácie: <, <=, =, <>, >=, >
logické
operátory: not, or, and, xor
precendencie operátorov (zatiaľ nie sú všetky): |
|
not |
unárne |
každý
výraz sa vyhodnocuje zľava doprava
problém
napr. s d>=0 and d<=100
má byť: (d>=0) and (d<=100)
vymenujú
sa položky, s ktorými chceme pracovať
0
1 2
3
pr.: type nastroj = (husle, klavir, bubon, trubka)
je
to ordinálny typ -> je definované poradie prvkov a funkcie:
ord(bubon)
= 2,
pred(bubon)
= klavir,
succ(bubon)
= trubka,
succ(trubka)
= nedefinovaný
premenná
typu interval nadobúda hodnoty určitého typu (musí to byť ordinálny
typ) v rámci stanoveného intervalu,
definícia:
type T = min .. max;
min
<= max, kde min a max sú
hranice intervalu,
pr.:
type pismeno = ‘A‘ .. ‘Z‘;
type rok
= 1900 .. 2001;
každý
interval je kompatibilný so svojím hostiteľským typom, tj. operácie,
ktoré boli na hostiteľskom (ordinálnom) type povolené, sú povolené aj
na type interval,
Pascal je prísne typový jazyk
každá
premenná musí mať dopredu určený svoj typ, nedá sa počas behu meniť
každá
operácia pracuje len s určitým typom, napr. /, div
existuje
výnimka - automatická konverzia (integer -> real)
integer
char
boolean
typ
vymenovaním
typ
interval
Vlastnosti
ordinálnych dátových typov:
hodnoty
ord. typu tvoria usporiadanú množinu hodnôt
každá
hodnota je združená s ordinalitou, čo je jeho jedinečná celočíselná
hodnota, ktorá vyjadruje umiestnenie prvku v množine
prvá
hodnota ordinálneho typu je 0, (výnimkou je integer), ďalšia hodnota
ordinálneho typu je 1, atď.
každá
hodnota ordinálneho typu má svojho predchodcu, s výnimkou prvej
hodnoty, a svojho následníka okrem poslednej hodnoty
na
zistenie hodnoty predchodcu ord. typu možno použiť funkciu Pred
na
zistenie hodnoty následníka ord. typu možno použiť funkciu Succ