Programátorské revue


Tento programátorský elektronický časopis byl vytvořen na pomoc začínajícím programátorům. Jelikož je to teprve první (a doufám, že ne poslední) číslo, rozhodl jsem se vás zatím jen seznámit se základy programování v jazyce Pascal. Tento jazyk je dnes již poněkud starší, ale je to dobrý jazyk pro začátek. Používám Borland Pascal 7.0 a pracuji v reálném módu systému MS-DOS, což je totéž jako Turbo Pascal 7.0. Pokud budete mít starší verzi tohoto jazyka, budete možná muset udělat drobné úpravy ve zdrojovém kódu. Jako první věc vás seznámím s IDE prostředím Borland Pascalu 7.0 (př.Turbo Pascalu - též ve verzi 7.0) v kapitole 1. Poté bych vás chtěl seznámit s programovým dělením jazyka Pascal (kapitola 2), dále vás seznámím s typy v Pascalu, naučím vypsat text na obrazovku a přečíst vstup z klávesnice (kapitola 3). Tvorbu programových jednotek nemá cenu vysvětlovat někde na začátku, protože prvně budete muset znát nějaké příkazy a jejich syntaxi, ale na to je ještě dost času... No a to by bylo asi tak vše, co vás čeká v tomto čísle. Před začátkem byste si však měli přečíst tento slovník důležitých pojmů...

Slovník důležitých (a zároveň použitých) pojmů:
Pascal - programovací jazyk, který byl pojmenován podle fyzika Blaise Pascala.
Borland Pascal - preprocesor jazyka Pascal - program, který umožňuje sestavit program dle předem definovaného algoritmu (postupu) a vytvořit samospustitelný kód ve formátu EXE pro pozdější spuštění programu bez přítomnosti zdrojového kódu...
Zdrojový kód (slang. zdroják) - text s definicí algoritmu programu (tvoří jej funkce a procedury, které se po sobě algoritmicky spouštějí...)
Zkompilovat - z ang. slova 'Compile' - sestavit, složit. Počeštěné slovo je termínem pro převedení zdrojového kódu programu do spustitelné podoby (v případě Pascalu soubor typu EXE).
Kompiler, kompilátor - počeštěné anglické 'Compiler' - překladač. Program, který umožňuje sestavit program (převést jeho zdrojový kód do spustitelné podoby a pak jej třeba následovně spustit).
IDE, vývojové prostředí - Integrated Development Environment, integrované vývojové prostředí - prostředí preprocesorů jazyka (Turbo Pascal, Borland Pascal), ve kterém lze nalézt speciální menu v nichž lze provádět kompilaci programu, hledat chyby ve zdrojovém kódu programu, hledat procedury a mnoho dalších užitečných věcí...

Kapitola 1 - vývojové prostředí IDE

Po spuštění Borland Pascalu či Turbo Pascalu se vám většinou otevře okno s nadpisem NONAME00.PAS (nemusí tomu tak být vždy tak). V horní liště je napsáno 10 slov vždy se zvýrazněným jedním písmenem. Jedná se hlavní menu programu. Do daného menu se dostanete vždy po stisku funkční klávesy Alt+vyznačeného písmene. Lišty jdou za sebou v tomto pořadí: File Edit Search Run Compile Debug Tools Options Window Help

Pod menu File se nachází položky 1.New, 2.Open, 3.Save, 4.Save as, 5.Save all, 6.Change dir, 7.Print, 8.Printer setup, 9.Dos Shell, 10.Exit a poté nejčastěji otevírané soubory. Položky 1-5 slouží k vytváření nových souborů (New), otevíraní již uložených souborů(Open) a ukládání souborů(Save). Položky 6-10 slouží k tisku souborů (Print), nastavení vlastností pro tisk (Printer setup), změně aktuálního adresáře (Change dir), odskoku do DOSu(Dos Shell) a ukončení programu. Zbývající položky slouží jako odkazy na dříve otevřené soubory...

V menu Edit jsou k dispozici položky pro práci se schránkou a vrácení naposledy provedených operací...

V menu Search jsou položky pro nalezení či nahrazení textu ve zdrojovém kódu(Find,Replace), pro skok na určitý řádek(dle čísla, Goto line number), nalezení chyby(Find error), nalezení procedury(Find procedure) a procházení objektů...

V menu Run: operace pro spuštění právě otevřeného programu, krokování kódu (step over), reset programu a zadání parametrů příkazové řádky...

V menu Compile: operace pro přeložení programu do samospustitelného souboru typu EXE či jednotky typu TPU (používá se potom v klausuli USES - viz dále).

V menu Debug se nachází operace pro tzv. ladění (debugging) programu, což jsou operace pro výpisy obsahu proměnných a zásobníku, zastavení programu na určitém úseku kódu, otevření okna registrů procesoru (Breakpoints, Call stack, Register, Watch, Output, User screen aj.)...

V menu Tools jsou různé nástroje pro kompilaci programu v assembleru (jazyk ve kterém byl vyroben sám Borland Pascal či Turbo Pascal - dále jen BP a TP) či debugging uživatelským programem. Do tohoto menu lze přidávat položky dle libosti...

V menu Options se nastavují vlastnosti prostředí BP či TP.

V menu Windows se nastavují vlastnosti oken otevřených v BP (TP).

V menu Help se nachází nápověda k BP (TP), která je zaměřena především na příkazy v jazyce Pascal a strukturu programování v tomto jazyce.

Vývojové prostředí IDE bychom měli, takže tedy rovnou k programovému dělení...

Kapitola 2 - Programové dělení jazyka Pascal.

Zdrojový kód v jazyce Pascal se dělí na několik částí:

2.1) Klauzule USES - tato klauzule nám udává, které programové jednotky program používá.
2.2) Deklarace proměnných - tato část nám deklaruje proměnné použité v programu.
2.3) Procedurální část - v této části můžete deklarovat procedury, ale tím se ještě nebudeme zabývat.
2.4) Vlastní programový blok - zde píšete všechny příkazy, je to hlavní část celého Pascalu.

2.1) Klauzule USES
-----------------------
Touto částí jazyka se nebudeme příliš zabývat, ale jen tak orientačně vám vysvětlím o co vlastně jde. Takže, jde o slovo vyhrazené Pascalem, za kterém následuje seznam programových jednotek. Tyto jednotky obsahují procedury a funkce. Když zapomenete deklarovat jednotku s procedurou či funkcí, kterou ve svém programu používáte, tak vám Pascal ohlásí chybové hlášení, že tato procedura či funkce je neznámá. Program může používat mnoho jednotek najednou, všechny tyto jednotky se potom sloučí do souboru EXE k samotnému programu.

Např: uses Crt; - program používá standardní programovou jednotku Crt;
uses Crt,Dos,Obrazovka;
- program používá standardní programové jednotky Crt a Dos a navíc ještě uživatelskou jednotku Obrazovka;

2.2) Deklarace proměnných
--------------------------------
Toto je druhá nejdůležitější část celého jazyka. Skládá se ze 3 částí: deklarace konstant (
const), vlastních typů (type) a vlastních proměnných (var), ale my se zatím budeme zabývat jen deklarací vlastních proměnných, které mají za úkol přiřazení typu ke konkrétní proměnné. Tyto typy si můžeme sami vytvořit, ale nyní se zde uvedu jen předdefinované. Ty se dělí na několik kategorií. Následující tabulka ukazuje seznam nejpoužívanějších typů i s jejich kategoriemi a rozsahem:

Název ................................. Typ ..................................... Rozsah, definice
-----------------------------------------------------------------------------
Integer
..................... celočíselný ............................-32768 až 32768
Longint
.................... celočíselný .............-2147483648 až 2147483647
Byte
............................celočíselný ..........................................0 až 255
Real
.................................... reálný ............................... 2.9e-37 až 1.7e38
Char
.................................... znak ..................................(A..Z), (a..z) a (0..9)
String
........................ znak.řetězec .....................pole 255 znaků (Char)
Boolean
.............. logický operátor .................................true,false

Např: var S1: string; - deklaruje proměnnou S1 jako znak. řetězec...
................var I: integer; - deklaruje proměnnou I jako celé číslo v rozsahu od -32768 až do 32768.

V případě, že číslo je mimo rozsah nebo nebylo zadáno číslo, ale znakový řetězec či znak (jiný než 0..9, protože číslo se též počítá za znak) ohlásí program hlášku 'Runtime error 106 at xxxx:xxxx' , kde číslo 106 znamená číslo chyby - 106 = Špatný číselný formát - a xxxx:xxxx znamená adresu výskytu chyby, která lze v IDE prostředí Borland Pascalu najít pomocí příkazu 'Find Error' pod menu 'Search' nebo nejjednodušší způsob je ten, že se přepnete do IDE prostředí Pascalu a spustíte program pomocí kláves Ctrl + F9, opakujete postup, kdy vám program ohlásil chybu a vývojové prostředí Pascalu ihned skočí na adresu chyby. Celá hláška může vypadat např. takto: 'Runtime error 106 at 0001:0026').

Typy se deklarují takto: type T = definice typu, pouze pokud je typem záznam (record) vypadá deklarace takto: Například typ záznam je definován jako:  type T = record
............................................................... ...definice typu...
............................................................... end;

2.3) Procedurální část
-------------------------
V této části se deklarují procedury, které se potom používají v programu. Procedury lze použít i jako prvek zkracující vlastní programový blok.

2.4) Vlastní programový blok
-----------------------------------
Nejdůležitější část z celého jazyka Pascal, zde píšete názvy procedur či funkcí s jejich parametry, tím docílíte výsledného efektu procedury. Pokud deklarujete několik procedur v procedurální části, musíte tyto procedury vložit do tohoto bloku, jinak se vám nespustí a program nebude mít daný efekt. Existuje mnoho standardních procedur a funkcí.

Příklad programu (o příkazech read(readln), write(writeln) se dozvíte v další kapitole):

uses Crt; {Použijeme jednotku Crt, protože obsahuje a kontroluje proměnnou, kterou chceme}
type R = record {Definice vlastního typu R}
.......................I: integer;
.......................
S: string;
......................
end; {Konec definice typu R}

var Z: R; {Přiřazení typu R proměnné Z}
begin
Writeln(' Zadejte číslo: ');
readln(Z.I);
{Budeme zadávat číslo}
Writeln(' Zadejte znakový řetězec: ');
readln(Z.S);
{Budeme zadávat znak. řetězec}

{Výpis obsahu záznamu Z na obrazovku}
Writeln(' Číslo: ',Z.I);
Writeln(' Řetězec: ',Z.S);

{Čekání na stisk libovolné klávesy}
repeat until keypressed;
end.

Kapitola 3 - Základní příkazy jazyka.

2.1) Příkazy Write a Writeln
-----------------------------------
Write - dá se říci, že tento příkaz je takřka základním. Je úplně jednoduchý a jeho účelem je vypsat textový řetězec na obrazovku s tím, že další text bude vypsán na tentýž řádek. Například:

Write('Ahoj !!!'); - napíše na obrazovku (konkrétně na pozici kursoru) text "Ahoj !"

Program může vypsat i proměnné, které samozřejmě musí být deklarovány. Například:

const S1: string = 'Ahoj !'; - deklaruje konstantu S1 jako znak. řetězec s textem "Ahoj !"
begin
...
Write(S1);
end.

PS: Procedura Write má i svou modifikaci Writeln, která na rozdíl od Write ještě přidá na konec řetězce znak konce řádky, to znamená, že následující volání procedury pracující s textem na místě kurzoru napíše řetězec na nový řádek.

2.2) Příkazy Read a Readln
----------------------------------
Read - Tento příkaz je opět jedním ze základních příkazů celého jazyka. Lze ho použít buď s parametrem (proměnnou - pro další zpracování vložených dat) nebo samotný (bez možnosti dalšího zpracování - pro čekání programu na stisk klávesy Enter). Jeho funkcí je číst znaky z klávesnice, tyto znaky se po stisku klávesy Enter uloží v danou proměnnou (pokud má příkaz parametr) nebo se nikam neukládá, tudíž ho nelze zpracovat (funguje na zobrazení daného textu či grafiky až do stisku klávesy Enter). Zde je příklad použití :

Readln; - program čeká na stisk klávesy Enter.

Nebo lze použít s proměnnou:

var S1: string;
begin
...
Read(S1); - přečte proměnnou S1 z klávesnice
...
end.

Zde je kompletní zdrojový kód na program, který přečte vstup z klávesnice a vypíše ho na další řádek:

{v těchto závorkách může být libovolný komentář, který nemá vliv na vlastní zdrojový kód, pokud ovšem tento komentář je na začátku celého programu a začíná znakem $, tak se jedná o tzv. direktivu překladače...}
var S: string; {vstupem bude znakový řetězec}
begin
Write(' Zadejte řetězec: ') {zapíše na obrazovku (na místo kurzoru) text " Zadejte řetězec: "}
Readln(
S); {Přečte vstup z klávesnice, uloží jej jako proměnnou S a vloží znak konce řádky}
Write(' Napsal jste: ',
S); {nyní vypíše text " Napsal jste: " a obsah proměnné S}
Readln;
{v poslední instrukci program počká na stisk klávesy Enter a teprve potom se ukončí}
end.

Tak to by bylo asi tak všechno, s čím bych vás chtěl v tomto čísle seznámit. Děkuji Vám za čtení tohoto elektronického časopisu a doufám, že jej dobře využijete.

 

Pokračovat na druhé číslo

Michal Novotný
Autor