PASCAL1
PASCAL.
Prostredie Pascalu
Zelený štvorček – zatváranie aktívneho okna
Ctrl+F9 – spustenie programu = Run
Ctrl+Shift+F1 – zmena klávesnice
Esc – dostanem sa von z programu(čierne okno)
.Pas – prípona programu v Pascale, ktorá sa dáva automaticky po uložená
programu
Alt+Enter – zväčšenie, zmenšenie pascalovskej obrazovky
Alt+F5 – vyvolá výsledok programu, ktorý už aspoň raz prebehol
F8 – krokovanie
F7 – krokovanie, ktoré sa vnára aj do vnútra použitých procedúr a funkcií
Debug – Output – zobrazí sa vám časť obrazovky s programom a časť obrazovky
spustenia programu
Shift + F1 – zobrazí sa vám index Helpu
Alt + X – zatvorenie (zrušenie) pascalu
Základné pojmy
Program – postupnosť príkazov popisujúcich nejakú činnosť
Proces – bežiaci program, pracuje s dátami
Dáta – majú označenie, štruktúru, množinu prípustných hodnôt, v programe sú špecifikované pomocou deklarácie
Algoritmus je postupnosť činností vedúcich k riešeniu problému.
Za základné vlastnosti algoritmu považujeme:
- Elementárnosť : algoritmus sa skladá z jednoduchých realizovateľných činností – krokov algoritmu.
2. Determinovanosť : v každom kroku algoritmu musí byť jednoznačne dané, čo robiť. Realizácia algoritmu nesmie byť podmienená inými podmienkami ako tými, ktoré sú v tele algoritmu uvedené.
3. Konečnosť : každý krok algoritmu sa vykoná len určitý počet krát, teda vykonávanie algoritmu sa po konečnom čase skončí.
4. Rezultatívnosť : algoritmus vedie výpočet od daných vstupných údajov k výsledku, prípadne výsledkom v konečnom počte krokov.
- Hromadnosť : algoritmus je určený na riešenie celej skupiny úloh rovnakého typu.
Za základné činnosti algor. jazyka považujeme:
- príkaz vstupu- umožňuje zadať procesoru konkrétne hodnoty údajov, kt. má spracovať. Tieto hodnoty sa uložia do premenných s pevne stanovenou veľkosťou
- príkaz výstupu- umožňuje získať od procesora výsledky algoritmu alebo iné oznamy.
- priraďovací príkaz- zmena hodnôt premenných je počas vykonávania algor. možná dvomi spôsobmi: príkazom vstupu aleba priradením novej hodnoty
- podmienka- je v programovacích jazykoch chápaná ako logický výraz, t.j. zistenie vzťahov medzi výrazmi.
Vytvorenie programu:
- definícia problému – čo bude program riešiť, aké dáta bude používať (špecifikácia štruktúry, formátu, množiny povolených hodnôt,...), čo bude výstupom (špecifikácia výstupných dát), špecifikácia výnimiek (reakcia na zlý vstup, nesprávny formát dát,...)
- návrh riešenia problému – vytvorenie formálneho modelu, rozloženie problému na podproblémy
- zostavenie algoritmu – využitie opakovaného rozkladu problému na podproblémy, postupný návrh štruktúr
- kódovanie programu – prepis algoritmu do programovacieho jazyka
- overenie správnosti programu – formálny dôkaz správnosti programu, v praxi však test na vhodných vstupných súboroch dát
Typy dát
1. Jednoduchý typ:
a. ordinálny – integer, boolean, char, vymenovaný typ
b. real
2. štrukturovaný – pole, záznam, množina, súbor
3. smerník
Podrobnejší popis základných typov, s ktorými budeme pracovať:
- Celočíselný typ (jednoduchý, ordinálny typ) – základný typ je integer v rozsahu (-maxInt, maxInt). V Pascale je celkovo 5 celočíselných typov:
- Byte – rozsah 0..255
- Shortint – rozsah -128 .. 127
- Word – rozsah 0..65535
- Integer – rozsah -32768..32767
- Longint – rozsah -2147483648..2147483647
Operácie definovené pre celočíselný typ:
· Sčítanie(+), odčítanie(-), násobenie(*)
· Celočíselné delenie (div)
· Zvyšok po celočíselnom delení (mod)
Definovanie relačných operátorov: <, >, =, <>, <=, >=
Definované štandardné funkcie pre integer:
· Abs(číslo) – absolútna hodnota zadaného čísla
· Sqr(číslo) – druhá mocnina čísla
· Odd(číslo) – vráti true, keď je číslo nepárne
Úloha 1. Napíšte program s využitím f-cie Odd, ktorý vám po zadaní ľubovoľného celého čísla vypíše či je číslo párne alebo nepárne.
- Typ char – určený na prácu so znakmi a obsahuje práve jeden znak ASCII kódu. Konštanty tohto typu uvádzame v apostrofoch.
Funkcie používané pri práci so znakmi:
- Chr(číslo), alebo #číslo – vráti znak, ktorého kód je číslo
- ^G – to isté ako stlačenie klávesy CTRL a písmena G
- ord(písmeno v apostrofoch) – vráti kód znaku
- succ(znak) – vráti znak, ktorý nasleduje za tým, čo je uvedený v zátvorkách
- pred(znak) – vráti znak, ktorý sa nachádza pred tým, čo je uvedený v zátvorkách
Úloha 2. Vyskúšajte si f-ciu Chr, Ord, Succ, Pred.
- Typ boolean – nadobúda hodnoty true alebo false. Platí: False < True. Pre hodnoty premenných typu boolean sú definované:
- Relačné operácie – <, >, =, <=, >=, =, <>
- Logické operácie – konjunkcia (and), disjunkcia (or), negácia (not)
- Vymenovaný typ – používateľom definovaný typ, umožňuje programátorovi definovať lineárne usporiadanie hodnôt reprezentovaných pomocou identifikátorov, napr. týždeň = (pondelok, utorok, streda, štvrtok, piatok, sobota, nedeľa)
Definované operácie:
· Pred(a) = hodnota pred hodnotou premennej a
· Succ(a) = hodnota nasledujúca po hodnote premennej a
· Ord(a) = poradie identifikátoru pri definícií typu, je typu longint
Funkcia predd (succ) nie je definovaná pre prvý (posledný) prvok.
Relačné operácie: <, >, =, <=, >=, <>, =
- Typ reálnych čísel – rozsah 10-38 .. 1038, k dispozícií sú aj nasledujúce typy:
- Real, počet slabík 6
- Single, počet slabík 4
- Double, počet slabík 8
- Extended, počet slabík 10
- Comp – 64 bitové celé číslo, počet slabík 8
Okrem typu real musia byť ostatné typy (ak sú použité v programe) prekladané pomocou numerického koprocesoru, direktíva {$N+}, pokiaľ počítač nemá koprocesor, je nutné použiť emuláciu koprocesoru, direktíva {$E+}
Operácie definované pre typ real:
· Sčítanie(+), odčítanie (-), násobenie (*) a delenie (/)
Štandardné funkcie pre typ real:
· Abs(číslo) – absolútna hodnota čísla
· Sqr(číslo) – druhá mocnina čísla
· Sqrt(číslo) – druhá odmocnina čísla
· Sin(číslo), cos(číslo), arctan(číslo) – sínis, kosínis a arkustangens čísla, argument sa zadáva v radiánoch
· Ln(číslo) – prirodzený logaritmus čísla
· Exp(číslo) – hodnota ečíslo
· Zaokrúhľovanie:
o trunc(číslo) – celá časť čísla
o round(číslo) – klasické zaokrúhľovanie
5. Definícia premenných a práca s nimi
Premenná je dátový objekt, ktorého hodnota sa v priebehu výpočtu môže meniť. Premenné definujeme v časti var nasledovným spôsobom:
var meno_premennej : typ_premennej;
Ak chceme definovať viac premenných toho istého typu, ich mená napíšeme do riaku, oddeľujeme ich čiarkou.
Príklad: var dolny, horny, krok, pocet: integer;
prvy, posledny: real;
koniec_vstupu: boolean;
znak: char;
Povolené operácie s uvedenými premennými:
dolny := horny + krok;
prvy := pocet*krok;
posledny := prvy*pocet;
Nepovolené operácie:
znak := dolny + 5;
pocet := prvy + krok;
6. Výrazy
Postupnosti operácií sa prepisujú pomocou výrazov. Výrazy obsahujú operandy (premenné a konštanty), operátory a prípadne okrúhle zátvorky. Vyhodnotenie výrazu – prevedenie všetkých operácií predpísaných výrazom. Priorita vyhodnocovania, pokiaľ nie sú vo výraze zátvorky:
- not .......... najvyššia priorita
- * / div mod and
- + - or
- = <> < > <= >=
Úloha: Pomocou zátvoriek naznačte poradie, v akom budú nasledujúce výrazy vyhodnocované:
- a*7 + i div 2 – j mod 3
- a – i / j*k
- a + b < i * j
- p or not q and r
- p = q and r
Pri písaní výrazov treba dávať pozor na to, aby operandy každého operátoru boli prípustného typu. Overujeme zľava doprava s ohľadom na prioritu operátorov a na zátvorky (teda v poradí, v akom by to vyhodnotil procesor)
Príklad: (povedať o konverzii typov integer a real)
var a, b : real;
i, j, k : integer;
p, q, r : boolean;
a – i / j * k
najvyššia priorita vo výraze je j*k, keďže obe premenné sú typu integer, aj výsledok bude typu integer. Nasleduje i/j*k, j*k je integer, i je tiež typu integer, avšak používame obyčajné delenie a tak je typ výsledku real. Posledná operácia je a-celý náš výraz. A je typu real. Real – real je real, takže typ výrazu je real.
Typy dát
1. Jednoduchý typ:
a. ordinálny – integer, boolean, char, vymenovaný typ
b. real
2. štrukturovaný – pole, záznam, množina, súbor
3. smerník
Podrobnejší popis základných typov, s ktorými budeme pracovať:
- Celočíselný typ (jednoduchý, ordinálny typ) – základný typ je integer v rozsahu (-maxInt, maxInt). V Pascale je celkovo 5 celočíselných typov:
- Byte – rozsah 0..255
- Shortint – rozsah -128 .. 127
- Word – rozsah 0..65535
- Integer – rozsah -32768..32767
- Longint – rozsah -2147483648..2147483647
Operácie definovené pre celočíselný typ:
· Sčítanie(+), odčítanie(-), násobenie(*)
· Celočíselné delenie (div)
· Zvyšok po celočíselnom delení (mod)
Definovanie relačných operátorov: <, >, =, <>, <=, >=
Definované štandardné funkcie pre integer:
· Abs(číslo) – absolútna hodnota zadaného čísla
· Sqr(číslo) – druhá mocnina čísla
· Odd(číslo) – vráti true, keď je číslo nepárne
Úloha 1. Napíšte program s využitím f-cie Odd, ktorý vám po zadaní ľubovoľného celého čísla vypíše či je číslo párne alebo nepárne.
- Typ char – určený na prácu so znakmi a obsahuje práve jeden znak ASCII kódu. Konštanty tohto typu uvádzame v apostrofoch.
Funkcie používané pri práci so znakmi:
- Chr(číslo), alebo #číslo – vráti znak, ktorého kód je číslo
- ^G – to isté ako stlačenie klávesy CTRL a písmena G
- ord(písmeno v apostrofoch) – vráti kód znaku
- succ(znak) – vráti znak, ktorý nasleduje za tým, čo je uvedený v zátvorkách
- pred(znak) – vráti znak, ktorý sa nachádza pred tým, čo je uvedený v zátvorkách
Úloha 2. Vyskúšajte si f-ciu Chr, Ord, Succ, Pred.
- Typ boolean – nadobúda hodnoty true alebo false. Platí: False < True. Pre hodnoty premenných typu boolean sú definované:
- Relačné operácie – <, >, =, <=, >=, =, <>
- Logické operácie – konjunkcia (and), disjunkcia (or), negácia (not)
- Vymenovaný typ – používateľom definovaný typ, umožňuje programátorovi definovať lineárne usporiadanie hodnôt reprezentovaných pomocou identifikátorov, napr. týždeň = (pondelok, utorok, streda, štvrtok, piatok, sobota, nedeľa)
Definované operácie:
· Pred(a) = hodnota pred hodnotou premennej a
· Succ(a) = hodnota nasledujúca po hodnote premennej a
· Ord(a) = poradie identifikátoru pri definícií typu, je typu longint
Funkcia predd (succ) nie je definovaná pre prvý (posledný) prvok.
Relačné operácie: <, >, =, <=, >=, <>, =
- Typ reálnych čísel – rozsah 10-38 .. 1038, k dispozícií sú aj nasledujúce typy:
- Real, počet slabík 6
- Single, počet slabík 4
- Double, počet slabík 8
- Extended, počet slabík 10
- Comp – 64 bitové celé číslo, počet slabík 8
Okrem typu real musia byť ostatné typy (ak sú použité v programe) prekladané pomocou numerického koprocesoru, direktíva {$N+}, pokiaľ počítač nemá koprocesor, je nutné použiť emuláciu koprocesoru, direktíva {$E+}
Operácie definované pre typ real:
· Sčítanie(+), odčítanie (-), násobenie (*) a delenie (/)
Štandardné funkcie pre typ real:
· Abs(číslo) – absolútna hodnota čísla
· Sqr(číslo) – druhá mocnina čísla
· Sqrt(číslo) – druhá odmocnina čísla
· Sin(číslo), cos(číslo), arctan(číslo) – sínis, kosínis a arkustangens čísla, argument sa zadáva v radiánoch
· Ln(číslo) – prirodzený logaritmus čísla
· Exp(číslo) – hodnota ečíslo
· Zaokrúhľovanie:
o trunc(číslo) – celá časť čísla
o round(číslo) – klasické zaokrúhľovanie
5. Definícia premenných a práca s nimi
Premenná je dátový objekt, ktorého hodnota sa v priebehu výpočtu môže meniť. Premenné definujeme v časti var nasledovným spôsobom:
var meno_premennej : typ_premennej;
Ak chceme definovať viac premenných toho istého typu, ich mená napíšeme do riaku, oddeľujeme ich čiarkou.
Príklad: var dolny, horny, krok, pocet: integer;
prvy, posledny: real;
koniec_vstupu: boolean;
znak: char;
Povolené operácie s uvedenými premennými:
dolny := horny + krok;
prvy := pocet*krok;
posledny := prvy*pocet;
Nepovolené operácie:
znak := dolny + 5;
pocet := prvy + krok;
6. Výrazy
Postupnosti operácií sa prepisujú pomocou výrazov. Výrazy obsahujú operandy (premenné a konštanty), operátory a prípadne okrúhle zátvorky. Vyhodnotenie výrazu – prevedenie všetkých operácií predpísaných výrazom. Priorita vyhodnocovania, pokiaľ nie sú vo výraze zátvorky:
- not .......... najvyššia priorita
- * / div mod and
- + - or
- = <> < > <= >=
Úloha: Pomocou zátvoriek naznačte poradie, v akom budú nasledujúce výrazy vyhodnocované:
- a*7 + i div 2 – j mod 3
- a – i / j*k
- a + b < i * j
- p or not q and r
- p = q and r
Pri písaní výrazov treba dávať pozor na to, aby operandy každého operátoru boli prípustného typu. Overujeme zľava doprava s ohľadom na prioritu operátorov a na zátvorky (teda v poradí, v akom by to vyhodnotil procesor)
Príklad: (povedať o konverzii typov integer a real)
var a, b : real;
i, j, k : integer;
p, q, r : boolean;
a – i / j * k
najvyššia priorita vo výraze je j*k, keďže obe premenné sú typu integer, aj výsledok bude typu integer. Nasleduje i/j*k, j*k je integer, i je tiež typu integer, avšak používame obyčajné delenie a tak je typ výsledku real. Posledná operácia je a-celý náš výraz. A je typu real. Real – real je real, takže typ výrazu je real.