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.
Michal Novotný
Autor