Proměnné

Je sice hezké, že náš program už jakž takž umí vypisovat text, ale k tomu se víc hodí tužka a papír. My donutíme program počítat (od čeho je asi slovo počítač, že?!).

Výraz = posloupnost proměnných či čísel spojená operátory (či samotná proměnná)
Data = soubor jakéhokoliv množství jakýchkoliv informací
Proměnná = místo pro data

Napišme si krátký prográmek:

Program Pocitej;
Begin
   Write('16 + 7 ='); {Tady jde o text, protože výraz je mezi apostrofy}
   Writeln(16 + 7); {To samé bez apostrofů je ale výraz, a ten se vypočte}
   Readln; {Program, u kterého nevidíme výsledek, je na nic, zkuste to bez Readln;}
End.

Výrazy se během běhu programu vyhodnocují, a tak se nám zobrazilo 16 + 7 = 23. Je vidět, že jednotlivé části výrazu mohou být například čísla. Ta se pak spojují pomocí operátorů (+, -, * , /).
Pascal má dva zvláštní operátory div a mod. Div značí celočíselné dělení a mod je zbytek po tomto dělení. Tedy:
16 div 3 = 5
20 div 13 = 1
16 mod 3 = 1
20 mod 13 = 7.
Doufám, že teď je to už jasné. Pochopitelně platí to, co znáte ze školy. Násobení a dělení (i celočíselné) má přednost před sčítáním a odčítáním. 16 + 11 div 5 * 3 = 22.

No, ale bylo by také zapotřebí, aby data mohl zadávat i uživatel. Každá data se musí někam uložit, aby mohla být později zpracována. K vytvoření místa pro data slouží slovíčko var.Uvádí se mezi uses a begin. Musíme taky dopředu oznámit, jaký typ dat chceme skladovat (nebudeme přece skladovat hrušky ve skladišti jaderného materiálu)

Samotné místo pro data tedy vytvoříme takto :
var NázevProměnné : TypProměnné;

Pro naše účely postačí, budeme-li rozlišovat proměnné celočíselné, reálná čísla, znaky (jedno písmeno, číslice, ale např. i ^ či ;) a řetězce (více znaků).

Typ proměnné TypProměnné Minimum Maximum
celočíselná Integer asi -32 000 asi 32 000
reálná Real -1039 1039
znak char #0 (dolní znak ASCII) horní znak ASCII
řetězec string '' (prázdný řetězec) 255 různých znaků

Ještě by to chtělo s daty umět nějak pracovat. Nejjednodušším příkazem pro práci s proměnnými je takzvané přiřazení. To má tvar NázevProměnné := Výraz; (Tedy dvojtečka a rovná se hned za sebou) Proměnná po něm bude mít hodnotu jakou měl výraz před provedením přiřazení. Původní hodnota proměnné se nenávratně ztratí. Raději na příkladu.

Z := 13+17; (Poté bude Z = 30)
Z := Z * Z; (Poté bude Z = 900 -- Nejprve se totiž vypočte výraz na pravé straně 
	     a jelikož v Z je 30 a 30*30 = 900, toto číslo se uloží do Z)
Z :=0;      (Poté bude v proměnné Z nula a těch devět stovek už nikdy nezjistíme...)

Chceme-li načíst hodnotu z klávesnice, přiřazení nestačí, musíme použít něco jiného. Slouží k tomu již známý příkaz Readln; Tentokrát ve formě Readln(NázevProměnné); Ten zastaví běh programu a počká, až něco naťukáme. Nikdy nezapomeňte uživateli oznámit, co že to vlastně chcete. Ale nyní již na příkladu:

Program Secti;
{Program sečte dvě celá čísla zadaná uživatelem}
Uses Crtp2;                            {Není nutné}
Var A,B,Vysledek : Integer;            {Je možné zadat i více proměnných najednou}
Begin
  ClrScr;                              {Nemáte-li Crtp2, můžete vynechat}
  Writeln('Zadejte dvě celá čísla');   {Oznámíme, co chceme}
  Readln(A,B);                         {Načteme čísla - lze i více najednou}
  Vysledek:=A+B;                       {Vypočteme výsledek}
  Writeln(A,' + ',B,' = ', Vysledek);  {writeln se dá používat i takto}
  Readln;                              {Nesmí chybět, chceme něco vidět}
End.

Ještě pár poznámek - znakové proměnné lze přiřadit hodnotu pomocí := 'z', kde z je samotný znak, ale i jinými způsoby (#ASCIIČísloZnaku, ^CTRLKód).
I řetězce lze sčítat : 'Aho' + 'jky' = 'Ahojky'

To by bylo pro dnešek vše a teď domácí úkol: Napište program, který sečte, odečte, znásobí a vydělí dvě čísla zadaná uživatelem. A poté program, který sečte tři znaky (zadané uživatelem).
Pro méně zvídavé - uvědomte si, že pokud sečteme dva chary je výsledkem řetězec, tedy string. Dělíme-li dva integery pomocí / je výsledným typem Real (I když vyjde celočíselný výsledek.). Pište své vlastní programy tak dlouho, až vám bude pojem proměnné zcela jasný. Pochopte, jak Pascal zachází s výrazy.