Pascal – #7 Pole

Dnes si vysvětlíme problematiku polí, v programovacím jazyce Pascal. Pole se používají v každém jazyce a je to další z nezbytných součástí programování. Řekněme si tedy co to je. Jedná se o setříděnou množinu prvků stejného datového typu. Teď tedy co si pod touto definicí představit. Do pole můžeme přehledně ukládat data o stejném datovém typu. A proč přehledně? Protože každá informace uložená v poli má svůj index. Index chápej jako určitou ordinální hodnotu většinou celé číslo pod, kterým k datům přistupujeme

Index Hodnoty
1 28
2 59
3 7
4 88
5 22

 

Takhle si lze představit dvojrozměrné pole. Jako tabulku, kde první sloupec jsou indexy a v druhém jsou uložená libovolná data.

Techniku polí využijeme například v příkladu, kdy bychom chtěli uložit 10 čísel. Až do dnešní lekce bychom museli deklarovat deset proměnných a čísla ukládat jednotlivě. Teď však můžeme uložit 10 čísel do jednoho pole s velikosti 10. Z toho vyplývá, že i Indexů bude 10. Úplně laicky řečeno, pole v sobě  ukrývá 10 proměnných.

Obecná syntaxe: deklarace pole

Var pole_cisel : array [1..10] of byte;

Vysvětlení kodu. Tady se jedná o deklaraci, jak naznačuje příkaz Var, za ním následuje název, to zatím není nic nového za dvojtečkou, však uvádíme, že se jedná o pole (klíčové slovo array) hned za tímto musíme uvést velikost, chcete-li počet indexu, který je uveden intervalem. Většinou se udává od 1 do námi požadované velikosti, jako poslední dáme programu vědět, jaká data bude do pole ukládat, v tomto případě of byte.

Obecná syntaxe: uložení

Pole_cisel[1]:=28;
Pole_cisel[2]:=59;

Je třeba si uvědomit, že jakmile chceme pracovat s polem, musíme vždy uvést index. Asi lépe si to představíme, pokud budeme uvažovat pole jako deset proměnných v jedné a ve chvíli kdy chceme cokoliv ukládat nebo číst musíme si „vytáhnout“ tu jednu proměnnou, se kterou chceme pracovat, pomoci indexu. Zde vidíme ukázku uložení čísla do pole. Indexy se píšou v hranatých závorkách. Jakmile uvedeme index, stává se z pole svým způsobem samostatná proměnná, se kterou pracujeme tak, jak jsme již zvyklí.

Obecná syntaxe: vypsání prvku

Writeln(pole_cisel[1]);

Pojďme si ukázat praktický příklad zápisu do pole pomocí cyklu. Příklad bude znít: Zapište do pole 10 čísel, program se následně zeptá, poté uživatel zadá index od 1-10 a vypíše se příslušné číslo, které je pod tímto indexem uložené v poli.

program pole1;
uses crt;
var pole_cisel : array [1..10] of byte;
var i : byte;
var pozice: byte;
begin
      clrscr;
      writeln('zadej 10 čísel');
      for i:=1 to 10 do
      begin
            readln(pole_cisel[i]);
      end;
      writeln('zadej index který chces z pole vypsat');
      readln(pozice);
      writeln(pole_cisel[pozice]);
      repeat until keypressed;
end.

Vysvětlení kódu

zde je třeba si uvědomit, že index pole muže být reprezentován proměnnou stejně tak dobře jako konstantou (číslem), tak jak jsme si to ukazovali ze začátku lekce. V našem případě uvádíme na místě indexu proměnnou i, která v tomto příkladu zastává také funkci počítadla cyklu. Z logiky věci tedy plyne následující. Víme, že počítadlo se při každém průchodu navýší o hodnotu 1. Z toho vyplývá, že při prvním průchodu cyklu bude námi popisovaný řádek vypadat takto:

Program narazí na příkaz readln a ví, že bude načítat data od uživatele, jako parametr požaduje, kam je bude načítat, zde jsme mu nabídli pole s indexem i, který při prvním průchodu má hodnotu 1. Takže na první pozici se zapíšou vstupní data a program pokračuje dál. Skočí na začátek cyklu, navýší počítadlo čili proměnnou i o hodnotu jedna a pokračuje dál vykonávat příkazy, zase narazí na readln a bude požadovat místo kam data uloží, zde se mu nabídne zase pole ale s indexem i ale je důležité si uvědomit, že v této chvíli je již index reprezentován číslem 2. Pokud pořád přemýšlíme o poli jako o 10 proměnných najednou tak si uvědomíme, že nyní již požadujeme v pořadí druhou proměnnou a do ní ukládáme.

Tento příklad je možná trošičku složitější na pochopení nicméně v podstatě se jedná o využití dvou věcí. Za prvé, možnost index reprezentovat proměnnou. Za druhé, využití počítadla do role indexu (zda si nejste jistí funkci počítadla, přečtěte si lekci 5 tam je to probíráno). Pokud si uvědomíme tyto dvě věci samostatně, neměl by být problém představit si to v příkladu.

Po této lekci byste měli být schopni odpovědět na tyto otázky:

  1. Jak vypadá pole, či jak je možné si pole představit
  2. Deklarace polí
  3. Jak přistupujeme (pracujeme) s jednotlivými záznamy v poli
  4. Co je to index, k čemu slouží a čím může být reprezentován

Shrnutí:

Při práci s poli je důležité uvědomit si, s jakým indexem momentálně program pracuje. I přestože v této lekci jsme pracovali s poměrně malým polem velikosti 10, je důležité mít na paměti, že můžeme použít i mnohem větších polí. Nejčastější chyby pak bývají právě s deklarací příliš malého rozsahu polí a program poté může pracovat nestandardně, proto se všeobecně doporučuje deklarovat pole s jistou rezervou.

Víc už si v této lekci neukážeme, příště se podíváme na cykly ukončené podmínkami. Pokud Vám v této lekci nebylo něco jasného, ptejte se v komentářích.

Pascal – #5 Cykly se známým počtem opakování

Dnes se naučíme psát cykly v jazyku pascal. Na úvod si řekněme, co to ty cykly jsou. Cyklus nám umožní opakovat určitou část kódu libovolně dlouho. Dnes si řekneme o tzv. cyklech, u kterých známe počet opakování.

Cykly: Obecná synataxe

FOR i:=zacatek TO konec DO
 BEGIN
 Příkaz, který se bude opakovat;
 Příkaz, který se bude opakovat;; 
END;

Teď si to pojďme rozebrat. For je klíčové slovo, které říká, že se jedná o cyklus. Proměnná ‚i‘ tady má roli počítadla. A na začátku cyklu, je nastavena na hodnotu, která se bude při jednotlivých průchodech cyklu navyšovat až do té doby, než nabyde hodnotu uloženou v proměnné konec. Z tohoto kódu je tedy možné okamžitě vyčíst, kolikrát se bude opakovat, protože v prvním řádku v podstatě vidíme interval. Většinou se udává od 1.

Příklad

Aby nám to bylo jasnější, pojďme si to ukázat na jednoduchém příkladu, který nám ukáže, jak funguje počítadlo a co se vlastně v průběhu toho cyklu stane.

program cykly;
uses crt;
var i:integer;
 
begin
 clrscr;
  for i:=1 to 10 do
   begin
      writeln(i);
   end
 repeat until keypressed;
end.

Rozebrání kódu

Jak je již hned zřejmé ze zadání můžeme vidět, že daný cyklus se bude opakovat 10krát jelikož jsme zadali interval od 1 do 10. V příkazové části dá-li se to tak nazvat poté provádíme příkaz Writeln(i), tedy vypisujeme počítadlo. Tento program v podstatě nic nedělá, pouze vypisuje. Hodnota počítadla se zvedá automaticky při každém průchodu cyklu. V praxi to tedy vypadá takto.

Program narazí na slovo For a tím zjistí, že se jedná o cyklus do proměnné i (počítadla) si uloží spodní hodnotu intervalu, a postupuje na další řádek, kde vykoná příslušné příkazy v našem případě, vypíše proměnnou i. Jakmile dojde na konec, vrátí se zase zpět a proměnná i se navýší o hodnotu jedna, porovná ji s koncovou hodnotou intervalu a pokud se nerovná koncové hodnotě, jde znova na příkazovou část cyklu. Toto se opakuje tak dlouho, dokud se hodnota počítadla nerovná koncové hodnotě v té chvíli program opouští cyklus a věnuje se ostatnímu kódu, v našem případě repeat until keypressed; tedy čeká na vstup z klávesnice.

V dalším příkladu si uživatel sám zadá počet opakování. Jedna se tedy pouze o modifikaci předchozího příkladu.

Příklad 2

program cykly2;
uses crt;
var i : integer;
var pocatek : integer;
var konec : integer;
begin
  clrscr;
  write('Zadej cislo pocatek: ');
  readln(pocatek);
  write('Zadej cislo konec: ');
  readln(konec);
    for i:=pocatek to konec do 
    begin
      writeln(i);
    end;
repeat until keypressed;    
end.

V tomto příkladu vidíte, že počet opakování není zadán konstantami ale proměnnými počátek a konec, do kterých uživatel sám zadá čísla a rozhodne si tak počet opakování.

Další možnosti zápisů

Pojďme si ještě ukázat další možnosti zápisu. Například poslední příklad by šel zapsat takto:

for i:=1 to 10 do writeln(i);

Vidíme tedy, že zde chybí struktura begin – end;  sami si zvolte, co pro vás bude lepší. Ale doporučuji používat více řádkovou strukturu z jednoho prostého důvodu ve chvíli, kdy přijdou složitější cykly a bude potřeba napsat více příkazu, bude to mnohem přehlednější. Tento jedno řádkový zápis tedy slouží pro jednoduché příklady.

Kontrolní otázky

Po této lekci by jste měli být schopni zcela s přehledem odpovědět na tyto otázky.

  1. Co je to cyklus a k čemu slouží.
  2. Co je to počítadlo a k čemu slouží.
  3. Jak vypadá obecná syntaxe.

Kontrolní příklad

Napište příklad, který se uživatele zeptá na číslo (počet opakování) a na zprávu. Danou zprávu vypíše píše tolikrát kolik zadal uživatel opakování př. uživatel zadá číslo 4 zpráva se vypíše 4krát..

Závěr

To je z dnešní lekce vše příště se podíváme na podmínky. Pokud Vám není něco jasné ptejte se přímo zde v komentářích.

Pascal – #4 Práce s datovými typy, textové funkce

V dnešní lekci si ukážeme použití proměnných a základní práci s datovými typy k tomuto si také představíme některé textové funkce. Nejprve si však osvětlíme pár věcí, které nám to umožní.

Začneme tím, že si řekneme, jak jsme schopni uložit data do proměnné. Docílíme toho kombinací znaků := aby jste lépe pochopili vypadá to takhle promenna:=hodnota (například číslo, znak, řetězec znaků, atd. záleží jak jsme si proměnnou deklarovali, čili jaký očekává datový typ). Kompletně si to ukážeme se všemi datovými typy na následujícím příkladu. V tomto příkladu nic nevypisujeme pouze přiřazujeme hodnoty nebuďte tedy překvapení pokud po jeho spuštění neuvidíte žádný vystup. Je to čistě pro procvičení a aby jste pochopili užití datových typu a rozdíly mezi nimi.

program dat_typy;

uses crt;
var cele_cislo : integer;
var desetine_cislo : real;
var a : boolean;
var znak : char;
var veta : string;

Begin

       cele_cislo:=5;
       desetine_cislo:=4.5;
       a:=TRUE;
       znak:='A';
       veta:='ahoj toto je muj dalsi program';

end.

Načítání vstupních dat funkce Readln

Dále se naučíme načítat vstupní data od uživatele. Využijeme k tomu funkci Readln. Tato funkce očekává jeden argument, kterým bude název proměnné, do které má načtená data uložit. Syntaxe vypadá takto Readln(promenna);  Za chodu programu to tedy vypadá takto. Blikající kurzor čeká na zadaní dat jakmile k tomu dojde uloží Vámi zadané vstupní data do promenné. Musíme si však dát opět pozor aby jsme zadávali data, která se shodují s datovým typem proměnné do které se bude ukládat tzn. nemohu na vstupu zadat číslo a chtít pro funkci Readln aby ho uložila do proměnné string(textový řetězec) toto by zahlásilo chybu.

Dále pak bude možnost vypsat si v pascalu znak na příslušné pozici v textu. Uděláme to následovně. Předpokládejme, že v proměnné znaky máme uložen text „ahoj“, potom tedy tento řádek Writeln(znaky[1]); by nám vypsal znak ‘a’ jinými slovy vypíše první znak z proměnné „znaky“. Na následujícím příkladu si vše ukážeme praktický i s použitím funkce Readln.

Program znak;
uses crt.

var veta : string;
var pozice : byte;
var vysledek:char;

begin

  Writeln('zadej libovolnou větu');
  Readln(veta);
  Writeln('zadej pozici kterou chceš vypsat');
  Readln(pozice);
  vysledek:=veta[pozice];
  Writeln(vysledek);
repeat until keypressed;
end.

Funkce ord

Další co potřebujeme vědět, jsou funkce ord a chr. Funkce ord očekává jeden argument v podobě jednoho znaku a na svém výstupu vrací jeho hodnotu v ASCII tabulce. Pokud si toto aplikujeme znovu na naši ukázku, vypadalo by to takto:

Writeln(ord(znaky[1])) jelikož první znak našeho textu je písmenko ‚a‘ bude tedy funkce ord převádět tento znak na jeho hodnotu. Hodnota ‚a‘ je 97. Zde naleznete veškeré znaky a jejich hodnoty. http://www.theasciicode.com.ar/

Funkce chr

Funkce chr dělá přesný opak očekává jeden argument v podobě číselné hodnoty a na svém výstupu vrátí znak odpovídající zadané hodnotě. Na příkladu by vypadlo následovně. Writeln(chr(97)) toto by vypsalo na obrazovku ‚a‘.

Délka textového řetězce funkce lenght

Pojďme si ukázat ještě funkci lenght. V překladu by se tato funkce jmenovala ‚délka‘. Jak již tedy název napovídá, funkce bude vracet délku zadaného řetězce. Funkce očekává jediný argument v podobě řetězce znaků. Syntaxe je a:=length(retezec); vysvětlení – do proměnné ‚a‘ se uloží délka řetězce.  Pokud chceme vypsat na obrazovku, použijeme Writeln(length(retezec));

Příklad

Pojďme si to tedy ukázat na příkladu. Uživatel zadá libovolný znak a poté zadá číslo od 1 do 10, o které se posune hodnota znaku. Výsledný znak se poté vypíše. Jedná se tedy o jakýsi super jednoduchý šifrovací prográmek. Lépe to pochopíme při pohledu na zdrojový kód.

program sifra;

 uses crt;
 type cisla = 1..10;
 var posun: cisla;
 var vstup: char;
 vystup: char;
 hodnota:byte;
 begin clrscr;
 write('Vlozte znak k šifrování');
 readln(vstup);
 write('Vlozte posun v rozsahu od 1 do 10: ');
 readln(posun);
 hodnota:=ord(vstup) + posun vystup:= chr(hodnota);
 writeln('Znak ', vstup, ' posunuty o ', posun, ' znaku je ', vystup);
 repeat until keypressed;
 end.

Abychom si kód mohli lépe vysvětlit, předpokládejme, že uživatel zadal znak ‚a‘ a posun nastavil na hodnotu 3. V této chvíli nás tedy čeká řádek hodnota:=ord(vstup) + posun zde funkce ord očekává jeden argument, dostane se mu písmene ‚a‘, které převede na číslo 97, které potom sečte s číslem 3 výsledek tohoto, se uloží do proměnné hodnota.  Na dalším řádku vystup:= chr(hodnota); očekává funkce chr jeden číselný parametr k převedení na znak, dostane se mu číslo 100, které se rovná písmenku d, to celé se uloží do proměnné výstup.

Tyto dva řádky by šly nahradit jedním, který by vypadal takto, vystup:= chr(ord(vstup) + posun);

Avšak pro přehlednost jsem to raději rozepsal do dvou řádků, aby byla jasně vidět posloupnost jednotlivých kroků a bylo to lépe představitelné.

Příklad 2

Pojďme si ukázat další příklad. Tentokrát se bude jednat o primitivní kalkulačku.  Zadáme programu dvě čísla. Jako výsledek nám vypíše jejich součet rozdíl podíl a součin.

program kalkulacka;
uses crt;
var x: byte;
y: byte;
soucet: byte;
rozdil: byte;
soucin: byte;
podil: real;
begin clrscr;
write('Zadejte hodnotu promenne x: ');
readln(x);
write('Zadejte hodnotu promenne y: ');
readln(y);
z1:= x + y;
z2:= x - y;
z3:= x * y;
z4:= x / y;
writeln('Soucet hodnot: ', soucet);
writeln('Rozdil hodnot: ', rozdil);
writeln('Soucet hodnot: ', soucet);
writeln('Podil hodnot: ', podil:5:2); //uprava poctu znaku a desetiných míst
repeat until keypressed;
end.

Zde se jedná o v podstatě jednoduchý příklad. Jediné co si vysvětlíme je výpis proměnné podíl, kde nalezneme tento řádek. writeln(‚Podil hodnot: ‚, podil:5:2); jak si můžete všimnout za proměnnou podíl jsou ještě dvě hodnoty oddělené znakem ‘:‘ jelikož se jedná o typ real,který obsahuje desetinou čárkou tak mu určíme kolik má vypsat čísel celkově to je to první číslo a kolik čísel za desetinou čárkou to je to druhé číslo. Můžete si vyzkoušet, jak by to vypadalo bez tohoto.

Závěr

V této lekci jsme si ukázali začátky práce s textem a čísly. Byla to trochu více praktická lekce také proto, abychom si zažili syntaxi jazyka a vývojové prostředí. Měli by jste tedy s přehledem zvládat zadávání dat od uživatele čili funkci READLN a jejich uložení do proměnné, dále pak funkci ord, str a lenght a v neposlední řadě také vypsat znak na určité pozici v textu. Měli by jste také pochopit princip datových typů tzn. vědět jaké data vstupují a přizpůsobit tomu proměnné.

V sekci ke stažení bude také dostupný ještě jeden program k dalšímu procvičování a ukrácení času při čekání na další lekci, která se bude zabývat tentokrát cykly.

Pascal #3 Proměnná a datové typy

Proměnná

Začneme tím, že si vysvětlíme co je to proměnná. Proměnná je v podstatě místo kam si náš program ukládá nějaké data, ať už to jsou mezivýsledky, výsledky nebo hodnoty čekající na zpracování. Chápejme to tedy, jako jistý prostor kam jsme schopni ukládat data, následně k nim přistupovat a dále s nimi pracovat.

Datové typy

již tedy víme, že do proměnných můžeme ukládat nějaké data ale program, potřebuje vědět přesně, jaká data budeme ukládat, a v této chvíli přichází na scénu datové typy. V zásadě rozlišujeme tři hlavní typy

  1. Textové pod tímto si představíme jakýkoliv text nebo jeden znak.
  2. Číselné jakýkoliv údaj, se kterým jsme schopni počítat.
  3. Logické, které nabývají jenom logických hodnot TRUE nebo FALSE

Vše co jsme si doposud řekli, využijeme u deklarace proměnné. Deklaraci chápej jako vyhradit prostor. V pascalu to vypadá následovně: var nazev_promenne : prislušny_datový_typ; Na tomto řádku jsme programu řekli vše, co potřebuje. Slovně by to šlo říci nějak takhle. Vyhraď si prostor pro proměnnou nazev_promenne do které budu ukládat příslušný_datový_typ.

Jinými slovy „var“ je klíčové slovo tak aby kompilátor věděl, že deklarujete (zavádíte) novou proměnnou. Druhé slovo je „nazev“ je název proměnné může byt libovolný (pro pozdější přehlednost programu je doporučeno využívat vždy jednoznačné informativní názvy proměnných) za dvojtečkou poté následuje datový typ zjednodušeně řečeno jaké data se mohou do proměnné uložit více v následující kapitole. Abychom si to mohli napsat víc konkrétněji  pojďme se podívat na jednotlivé datové typy a jejich charakteristiky.

TEXTOVÉ datové typy

Zde se řadí typy, kde zadáváme jakékoliv znaky z ASCII tabulky. Tedy i čísla není možno však s nimi počítat, program je bere jen jako textový řetězec. Textový řetězec se v pascalu ohraničuje apostrofy ‘příklad textového řetězce !! ?? 1234‘

Rozlišujeme zde dva typy

  •     CHAR zde můžeme uložit jen a pouze jeden jediný znak. Příklad ‚A‘
  •     STRING zde můžeme uložit textový řetězec o maximální délce 255 znaků. Příklad ‚příklad textového řetězce !! ?? 1234‘

ČÍSELÉ datové typy

Do těchto datových typů budeme ukládat údaje, se kterými budeme počítat. Dělí se na:

Celočíselné (ukládáme pouze celá čísla)

  •  Byte jeho rozsah je od 0 do 255
  •  Shortint jeho rozsah je od -128 do 127
  •  Word jeho rozsah je od 0 do 65535
  •  Integer jeho rozsah je od -32768 do 32767
  •  Longint jeho rozsah je od -2147483648 do 2147483647
  •  Comp jeho rozsah je od -263+1  do 263-1

Neceločíselné (možno ukládat i čísla s desetinnou čárkou)

  •  Real jeho rozsah je od 2,9*10-39 do 1,7*1038
  •  Single jeho rozsah je od 1,5*10-45 do 3,4*1038
  •  Double jeho rozsah je od 5,0*10-324 do 1,7*10308
  •  Extended jeho rozsah je od 3,4*10-4932 do  1,1*104932

LOGICKÉ datové typy.

Do tohoto typu dat můžeme ukládat hodnoty pouze dvou stavu True a False respektive 1 a 0. Mají pouze jeden typ a tím je BOOLEAN.

Tímto jsme si tedy ukázali všechny dostupné datové typy. Teď malý příklad toho jak by to mohlo vypadat. Samozřejmě by se daly použít i jiné typy u celého čísla například typ byte. Avšak pro ukázku nám postačí:

  •   Proměnná, do které chceme uložit text  var a :string;
  •   Proměnná, do které chceme uložit znak var a :char;
  •   Proměnná, do které chceme uložit celé číslo var a:integer;
  •   Proměnná, do které chceme uložit číslo s desetinou čárkou var a :double;
  •   Proměnná, do které chceme uložit pravdivostní hodnotu var a :boolean;

V pascalu se také můžeme setkat s vlastním datovým typem interval. Proměnná v tomto datovém typu obsahuje námi již nadefinovaná data (tedy buď číslo znak, nebo logický datový typ) avšak pouze v určitém intervalu. Obecný příklad vypadá následovně.

Type x= min..max;

Var a : x;

na prvním řádku jsme si deklarovali vlastní datový typ interval. Na druhém poté deklarujeme novou proměnnou, která bude nabírat hodnot námi vytvořeného datového typu. V praxi to může vypadat takto

Type rozsah = 1..100;

Var cislo : rozsah;

Nebo

Type rozsah = ’a‘ .. ’g‘;

Var znak : rozsah;

Vidíme tedy, že do proměnné číslo můžeme zapsat čísla pouze od 1 do 100 a do proměnné pouze znaky od ‚a‘ do ‚g‘.

Ordinalita

Za zmínku také ještě stojí říct si, jaké datové typy jsou ordinální. Pojďme však od začátku a nejdříve si zaveďme pojem ordinální. Je to ve své podstatě velice jednoduché.

Ordinální prvek je takový, který má svého předchůdce a následovníka. Ordinální jsou tedy celočíselné datové typy, u kterých můžeme z jistou říct, co předchází například před číslem 10 a jaké číslo stojí za ním. Jelikož se jedná o celočíselný datový typ, je jasné, že předchůdce je 9 a následovník je 11.

Kdybychom měli to samé číslo v datovém typu neceločíselném, nemůžeme s určitostí tvrdit jaké má předchůdce a následovníky. Protože po 10 může následovat 10.1 nebo například 10.567. Neceločíselné typy jsou tedy neordinální.  Datový typ Char je také ordinální protože všichni víme, že například před písmenkem ‚B‘ přijde na řadu ‚A‘ a následovník ‚B‘ je zase ‚C‘. Posledním ordinálním typem je typ boolean jelikož nabývá pouze dvou hodnot je to jednoduché. Když nabude 1 je jasné že předchůdce je 0 a naopak.

Příště si projdeme pár příkladu týkajících se právě datových typu a ordinálních hodnot.

 

Pascal – #1 Úvodní lekce

Dnes jsem si pro Vás připravil malý úvod do programování v jazyce Pascal.

Nejdříve něco o samotném jazyku. Pascal byl vyvinut začátkem 70. Let na Vysoké škole technické v Curychu. Je to jazyk primárně vytvořený právě k výuce programování. Postupem času se jazyk dočkal několika implementací (dalo by se chápat jako úprav, či předělávek). Asi nejznámějším se stal Turbo Pascal, kterým se budeme také zabývat i my v našem tutoriálu. Jak vidíte, jazyk je to již starý a tak se asi ptáte, proč by mělo cenu se ho vůbec učit. Odpověď je zcela jasná je to jazyk jednoduchý a velice rychle do něho proniknete. Berte to tedy jako jakýsi odrazový můstek do světa programování.

Prostředí.

Abychom mohli začít psát naše první řádky programu. Budeme potřebovat vývojové prostředí. Jelikož je to již jazyk postarší odpovídá tomu i vývojové prostředí a nemůžeme tedy počítat s krásnou grafikou apod. Asi nejrozšířenější prostředí nalezneme na http://freepascal.org/ pro co nejjednodušší orientaci jsem přidal také odkaz přímo na stažení prostředí:

https://sourceforge.net/projects/freepascal/files/latest/download?source=files

Po najetí stránky si akorát vyberete, zda chcete verzi pro 32 nebo 64 bitový Windows pokud si nejste jistí (zjistíte po kliknutí pravým tlačítkem na tento počítač a vybráním „vlastnosti“).

Po instalaci spusťte. Pokud se Vám objeví pouze malé okno zavřete jej a přejděte do kořenového adresáře většinou C:\FPC\3.0.0\bin\i386-win32. V této složce vyhledejte soubor fp.exe a ten spusťte. Nyní klikněte pravým tlačítkem na horní lištu vedle ikony a názvu programu vyberte vlastnosti dále písmo a v okně „velikost“ vyberte poslední možnost ze seznamu. Objeví se Vám vcelku nevzhledné okno. Na první pohled také zcela chaotické. Ale po chvilce užívání zjistíte, že se s ním dá pracovat. Pokud jste již programovali v nějakém modernějším prostředí dříve, budete si asi zvykat trošičku hůř. Pokud také současně sledujete náš tutoriál o VBA Lekce VBA tak víte, že jeho prostředí je na tom podstatně lépe.

Vlastnosti jazyku Pascal:

Ještě bych Vás rád seznámil s těmi nejzákladnějšími vlastnostmi jazyka Pascal. Mezi ty bezesporu nejduležitější patří jeho vlastnost Case INsensitive tako vlastnost neznamená nic jiného než, že programu NEzáleží na velikosti písmen tedy END je to samé jako end. Další vlastnost, na kterou je si třeba zvyknout je ta že jednotlivé příkazy se oddělují středníkem. Velice častá chyba je právě vynechání středníku po příkazu. Poznámky se zapisují do { slozených závorek }.

Závěr

To je zatím pro dnešek vše. Příště se podíváme jak vytvořit jednoduchý prográmek a co všechno je třeba udělat před jeho spuštěním.  Zcela na závěr bych chtěl ještě dodat, že tento kurz nebude probírán tak dopodrobna jako tutoriál o VBA.  Nemusíte se však bát i tak půjdeme po malých krůčcích a vše bude dostatečně vysvětleno.