Údajové typy I.

Download Report

Transcript Údajové typy I.

3.
Algoritmy a programovanie
v jazyku Pascal
Syntax
Vyhradené slová a direktívy
V Pascale existujú tzv. vyhradené slová, ktoré slúžia na
definovanie niektorých dôležitých premenných, operácií, atď.
Preto tieto tzv. vyhradené slová (reserved words) nesmieme
využívať na iné účely, než na ktoré sú pôvodne určené.
Direktívy nie sú vyhradené slová. Môžu sa totiž použiť aj na
iné účely.
V nasledujúcej tabuľke je zoznam niektorých vyhradených slov.
Farby sú volené nasledovne:
červená = najbežnejšie
zelená = využívajú sa pri zložitejších algoritmoch
modrá = nie sú podstatné ich vedieť na vašej úrovni práce
s Pascalom
Vyhradené slová – tabuľka
and
array
asm
begin
case
const
constructor
destructor
div
do
downto
else
end
exports
mod
file
nil
for
not
function
object
goto
of
if
or
implementation packed
in
procedure
inherited
program
inline
record
interface
repeat
label
set
library
shl
shr
string
then
to
type
unit
until
uses
var
while
with
xor
Vyhradené slová– popis
deklarácia:
const
var
premenná:
string
štruktúra programu:
begin
function
program
operácie a riadenie programu:
and
case
for to do
if then else
mod
repeat until
uses
procedure
div
or
end
Základná štruktúra programu
Program NázovProgramu;
{Toto je vzorový program}
HLAVIČKA
uses NázovJednotiek;
label NázvyNavestí;
const Konstanta1 = Výraz1;
Konstanta2 = Výraz2;
type NázovTypu1 = Definícia1;
NázovTypu2 = Definícia2;
var NázovPremennej1 : TypPremennej1;
NázovPremennej2 : TypPremennej2;
DEKLARÁCIA
Základná štruktúra programu – pokračovanie
procedure NázovProcedury1(parametre1);
DefiniciaProcedury1;
function NázovFunkcie1(parametre):VyslednyTypFunkcie1;
DefiniciaFunkcie1;
Begin
Prikaz1;
Prikaz2;
...
PrikazN;
End.
TELO
PROGRAMU
Základná štruktúra programu – povinné
Program NázovProgramu;
{Toto je vzorový program}
HLAVIČKA
var NázovPremennej1 : TypPremennej1;
NázovPremennej2 : TypPremennej2;
DEKLARÁCIA
Begin
Prikaz1;
Prikaz2;
...
PrikazN;
End.
TELO
PROGRAMU
Príkaz priradenia
Na priradenie používame syntax:
premenná
:=
VYRAZ;
Premennej na ľavej strane od znaku priradenia (:=) sa priradí
hodnota výrazu na pravej strane.
Podmienky na vykonanie príkazu sú nasledovné:
 výraz musí byť vyhodnotiteľný
 každá premenná musí mať už predtým priradenú hodnotu
 hodnota výrazu musí byť kompatibilná s typom premennej
 priradzovací príkaz nie je rovnosť!
Príkazový riadok je oddelený bodkočiarkou.
Príkazy vstupu a výstupu
Na vstup a výstup používame príkazy:
• write (‘Text, ktorý vypisujeme‘, premenné a , b, ‘Text‘);
• writeln (‘Text, ktorý vypisujeme‘, premenné a , b, ‘Text‘);
• read (a , b);
• readln (a , b);
Reťazec píšeme do úvodzoviek.
Premennú píšeme bez úvodzoviek. Ak ju chceme formátovať
(prispôsobiť v počte desiatinných miest), zapíšeme to v niektorom
z nasledovných tvarov:
• H – kde H je hodnota
• H:PZ – H je hodnota, PZ je počet znakov
• H:PZ:PDM – H je hodnota, PZ je počet znakov, PDM je počet
desatinných miest
Príklad 1. – prvý program
Program nacitanie;
{ukážkový program}
var a, b : integer;
begin
Writeln( ' Zadaj dve prirodzene cisla a, b ' ) ;
Readln(a,b);
Write('Sucet danych cisel je: ' ,a+b);
Write('Sucin danych cisel je ', a*b);
readln;
end.
HLAVIČKA
DEKLARÁCIA
TELO
PROGRAMU
Príklad 2. – alebo i takto
Program nacitanie;
var a,b,c,d : integer;
begin
Writeln('Zadaj dve prirodzene cisla a, b ');
Readln(a,b);
c := a+b;
d := a*b;
Write('Sucet danych cisel je: ' ,c);
Write('Sucin danych cisel je ',d);
readln;
end.
Údajové typy
ORDINÁLNE
ŠTRUKTUROVANÉ
T
Y
P
Y
J EDNODUCHÉ
Ú
D
A
J
O
V
É
CELOČÍINTEGER –32768..32767
SELNE
...
BOOLEAN
TRUE, FALSE
CHAR
ASCII znaky
VYMENOVANÝ
podľa def.
INTERVAL
podľa def.
NEORDINÁLNE REAL
POLE
ZÁZNAM
MNOŽINA
SÚBOR
TYP UKAZOVATEĽ
2,9.1039..1,7.1038
Údajové typy – INTEGER + Príklad 3.
Premenná môže nadobúdať celé čísla v intervale od –32768..32767.
Okrem toho existujú ďalšie celočíselné typy, ktoré sa navzájom líšia
množstvom miesta v operačnej pamäti:
BYTE
0..255
SHORTINT
-128..128
INTEGER
WORD
0..65535 (216)
LONGINTEGER
-2147483648(232)..2147483647
Pre tento typ sú definované nasledovné operácie:
+
div
succ
abs
–
mod
pred
sqr
*
ord
odd
<, <=, =, >, >=, <>
Údajové typy – BOOLEAN
Premenná môže nadobúdať iba dve hodnoty TRUE, FALSE.
Najčastejšie sa využíva pri vyhodnocovaní Pravda - Nepravda pri
podmienkach IF.
Pre tento typ sú definované nasledovné operácie:
and
<
succ
or
=
pred
not
>, <>
ord
Výsledky operácií and, or, not sú identické s tabuľkou pravdivostných
hodnôt. Ďalej platí:
ord(FALSE)=0
succ(False)=true
ord(TRUE)=1
pred(true)=false
Údajové typy – CHAR + Príklad 5,6.
Premenná môže nadobúdať znaky (písmená, číslice, interpunkčné
znaky, špeciálne znaky) zo štandardizovanej ASCII tabuľky.
Pre tento typ sú definované nasledovné operácie:
+
<
succ
=
pred
>
ord
<>
Do premennej vkladám hodnotu cez:
úvodzovky
znak:= ‘ a‘
mriežku
znak:=#45, kde 45 je číslo z ASCII tabuľky
chr()
znak:=chr(45)
Údajové typy – VYMENOVANÝ
Na definíciu tohto typu používame syntax:
type NÁZOV = (zoznam hodnôt)
napríklad:
type farby=(modrá, červena, zelena);
var FarbaAuta:farby;
Keďže ide o usporiadanú množinu prvkov, sú prípustné tieto
operácie:
<
=
>
<>
succ
pred
ord
Žiadne iné operácie nie je možné vykonávať (ani writeln a readln) a
ak chcem nejaké, musím ich zadefinovať.
Údajové typy – INTERVAL
Na definíciu tohto typu používame syntax:
type NÁZOV = DolnaHranica..HornaHranica
napríklad:
type
hodnoty=1..7
Prípustné operácie sú podobné ako pri type definovanom
vymenovaním:
<
=
>
<>
succ
pred
ord
Údajové typy – REAL + Príklad 7,8.
Premenná môže nadobúdať hodnoty z intervalu 2,9.1039..1,7.1038
Pre tento typ sú definované nasledovné operácie:
+
<
ABS
sin
–
=
SQR
cos
*
>
SQRT
ln
/
<>
arctg
trunc
round
Platia tu pravidlá pre formátovanie zápisu.
Nikdy neoddeľujeme jednotky.
Čísla zapisujeme s desatinnou bodkou (miesto čiarky).
Údajové typy – Príklady
Príklad 9. Výpočet doby splátok pôžičky, posledný rok a
mesiac pri známej hodnote pôžičky a mesačnej splátke.
(celočíselný typ)
Príklad 10. Vyhodnotenie poradia znakov (reťazcov) podľa
abecedy. (typ char, string)
Príklad 11. Výpočet spotreby auta pri zadanom počte
odjazdených kilometrov a spotrebovanom palive. (reálny
typ)
Príklad 12. Výpočet objemu, povrchu telies. (reálny typ)