Symboly a datové typy
Po rychlém seznámení se stavbou programu v 1.lekci , nyní budeme pokračovat trochu
podrobněji a bohužel na začátku trochu nezáživněji (příště už to bude
veselejší).
Na program v Pascalu se múžeme dívat ze dvou pohledů:
Program chápeme jako posloupnost znaků , které nesmějí mít žádné
indexy ani nad řádkou,ani pod ní. Přípustné znaky tvoří tzv.abecedu jazyyka Pascal
a jsou to:
písmena latinské abecedy (bez háčků a
čárek) , malá i velká
číslice desítkové soustavy
0,1,2,3,4,5,6,7,8,9
speciální symboly operátory , závorky , klíčová
slova , mezera ...
Ze znaků se vytváří lexikální jednotky , symboly (obdoba slov v bežném jazyce).
Program tedy můžeme také chápat jako posloupnost symbolů.Mezi
symboly můžeme vložit jakýkoliv počet mezer , ale žádný symbol nemúže začít na
jedné řádce a pokračovat na následující.
Typy symbolů Pascalu
Klíčová slova
tvoří jakousi kostru programu , dávají mu řád a jsou to většinou anglická slova.
Například: program , begin , end , read , write ....
Identifikátory
Slova sestavená z písmen a číslic , začínající
písmenem.Identifikátor se nesmí shodovat s žádným klíčovým slovem.
Například: Soucet , Podil2 , N3 .. jsou identifikátory
Identifikátory ale nejsou a+b , 3x , součet , if , begin
Identifikátory se požívají k pojmenování (identifikaci) nejrůznějších objektů
(proměnných , konstant , funkcí ..) U identifikátorů a klíčových slov nezáleží
na typu písma (malá,velká,kurziva..), kterými jsou napsány.Identifikátory mohou být
libovolně dlouhé.
Zápisy čísel
Čísla zapisujeme v Pascalu jak jsme zvyklí z běžného života pouze s tím rozdílem
, že místo desetinné čárky používáme desetinnou tečku.
Například: 3.14 nebo -175.45
Speciální symboly
Speciální symboly jsou v Pascalu tvořeny jedním znakem , nepř.:
- + : / ; , . < > = (
) { }
nebo dvěma znaky , např.:
:= <> >
Znakové řetězce
Znakové řetezce jsou posloupnosti (libovolných) znaků mezi dvěma apostrofy a musí
být celý uveden na jedné řádce programu.
Například: 'Výsledek výpočtu je' nebo 'Zadejte číslo'
Komentáře
Nemají žádný vliv na realizaci programu - poskytují pouze vysvětlivky pro čtenáře
programu a umožňují lepší orientaci v něm. Komentář začíná levou složenou
závorkou { a končí pravou složenou závorkou } i na dalších řádcích.
Například: { Toto je výpočte obsahu }
Oddělování symbolů v programu
Symboly od sebe oddělujema jednou nebo více mezerami. Nezávisí na tom ,
zda další symbol napíšeme na stejné řádce nebo na další řádku.
Z 1.lekce víme , že program obsahuje deklarační čáat.Nyní,
jak vypadá, trochu víc.
DEKLARAĆNÍ ČÁST
Za hlavičkou programu následuje deklarace
identifikátorů , která může mít až čtyři části :
PROGRAM UKAZKA; |
|
|
|
LABEL |
Tam,Zde; |
{ návěští pro skok } |
CONST |
Cislo=7; |
{konstanta Cislo hodnoty 7 typu INTEGER } |
|
Znak='P'; |
{ konstanta Znak typu CHAR obsahuje znak P } |
TYPE |
Kod = INTEGER; |
{ definice identifikátoru typu INTEGER } |
VAR |
Heslo:Kod; |
{ deklarace konkrétního objektu - proměnné
Heslo} |
Oddíl deklarace LABEL obsahuje návěští
pro příkaz skoku.
Oddíl deklarace CONST obsahuje seznam konstant.
Teď se soustředíme na oddíl TYPE a VAR.
Datový typ, například Kod, určuje, jaké
vlastnosti budou mít konkrétní proměnné typu Kod, deklarované v části VAR. Takto
vypadá základní rozdělení datových typů v Pascalu:

JEDNODUCHÝ TYP
TYP INTEGER
specifikuje množinu celých čísel z intervalu ( -32768, 32767 )
pro libovolnou hodnotu N typu INTEGER platí : -MAXINT <= N <= MAXINT, kde MAXINT =
32767 je konstanta ( nemusí se deklarovat ).
Pro hodnoty typu INTEGER jsou definovány operace (
výsledek rovněž typu INTEGER )
+ sčítání
- odečítání nebo unární operace změny znaménka
* násobení
DIV celočíselné dělení ( celá část podílu )
MOD zbytek po celočíselném dělení
ABS absolutní hodnota
SQR druhá mocnina
TYP REAL
specifikuje konečnou podmnožinu reálných čísel z intervalu zhruba (-10 na
39,10 na 38)
Hodnoty typu REAL můžeme označit zápisem :
123
3.14159
7.345E5 odpovídá hodnotł 734500
3.77E-6 odpovídá hodnotł 0.00000377
Pro hodnoty typu real jsou definovány operace ( s
výsledky rovněž typu REAL )
+ , -
, * jako u typu Integer
/
dělení
ABS
absolutní hodnota
SQR
druhá mocnina
SIN
sinus (argument v radiánech)
COS
cosinus
ARCTAN
arcustangens
LN
přirozený logaritmus
EXP
funkce inverzní k LN ( mocnina čísla e )
SQRT
druhá odmocnina
KONVERSE typu INTEGER na REAL je v Pascalu IMPLICITNÍ (
všude tam , kde se očekává hodnota typu REAL může být typ INTEGER ).
Konverse REAL na INTEGER implicitní není , jsou pro ni zavedeny dvě funkce :
TRUNC(x) výsledkem je celá část čísla x
ROUND(x) výsledkem je
zaokrouhlená hodnota x definovaná takto :
ROUND(x) = TRUNC(x+0.5) pro x >= 0
ROUND(x) = TRUNC(x-0.5) pro x < 0
TYP BOOLEAN
specifikuje logické hodnoty , které se označují identifikátory
TRUE - pravda
FALSE - nepravda
a platí FALSE < TRUE.
Pro hodnoty typu Boolean jsou definovány operace (
výsledek opět typu BOOLEAN ):
AND logický součin
OR logický součet
NOT negace
Porovnáváním hodnoty proměnných dostáváme též
hodnoty BOOLEAN , například :
a < 34
Je možné porovnávat typy INTEGER a REAL libovolně mezi sebou a typ CHAR jen s
typem CHAR.
Typu BOOLEAN je i funkce
ODD(Integer)
která vrací TRUE, je-li Integer liché číslo, jinak vrátí FALSE.
TYP CHAR
Hodnotami typu Char jsou znaky z kódu ASCII (American Standard Code for Information
Interchange).
Pro hodnoty typu CHAR jsou definovány operace :
ORD(znak) výsledek je typu INTEGER -
vrací kód znaku v ASCII
CHR(integer) výsledek je typu CHAR -
vrací znak s požadovanśm ASCII kódem
tedy CHR(ORD(z)) = z
SUCC(znak) následník znaku v ASCII
kódu
PRED(znak) předchůdce znaku v ASCII
kódu
Pro všechny ordinální typy platí :
x < y právě když ORD(x) < ORD(y)
ORD(SUCC(x)) = ORD(x) + 1
ORD(PRED(x)) = ORD(x) - 1
Pro hodnoty typu BOOLEAN platí :
ORD(FALSE) =
0 , ORD(TRUE) = 1 SUCC(FALSE) =
TRUE , PRED(TRUE) = FALSE
Pro hodnoty typu INTEGER platí :
ORD(x) = x
SUCC(x) = x + 1 pro x < MAXINT
PRED(x) = x - 1 pro x > -MAXINT
Domácí úkol:
Určete hodnoty uvedené v tabulce:
hodnota |
výsledek |
trunc(7.65) |
|
round(4.3) |
|
8 div 3 |
|
8 mod 3 |
|
sqr(5) |
|
odd(5) |
|
5 > 2 |
|
ord('a') |
|
succ('a') |
|
pred('a') |
|
chr(35) |
|
On-line účast na řešení úkolu
Pomocí volby Řešit můžete (po přihlášení) odeslat vaše řešení domácího úkolu (každý úkol smíte řešit jen
jednou). Volbou Hodnocení
si přečtete hodnocení a komentář od vyučujícího. Dotaz nebo připomínku můžete opakovaně zasílat pomocí tlačítka Dotazy,
Komunikace (na levém okraji) zobrazuje příklad možné komunikace s vyučujícím.
|