Konstanty

Pokud obsah nějaké proměnné zůstává vždy stejný, je lepší nadefinovat ji jako konstantu. To se provádí pomocí const NázevKonstanty = Hodnota. Takto se nejčastěji definují proměnné, které se nemění během programu a které chce měnit pouze programátor. Samotné const se nejčastěji píše ještě před var a jiné definice. Raději na příkladu.

Program Texty;
{Tento program napíše krátké úryvky židovských vtipů. Každá postava je vypisována
jinou barvou.}
Uses Crtp2;        {Chceme pracovat s textem, máte-li jednotku Crt, tak přepište na uses Crt;}
{Pokud chcete, zde můžete upravit barvy}
Const BarvaRabin=4;
      BarvaKohn=15;
      BarvaScenicke=10;
      BarvaPozadi=0;

Begin
  ClrScr;
  TextBackground(BarvaPozadi);   {Tento příkaz Crt změní barvu pozadí}
  TextColor(BarvaRabin);
  GotoXY(30,1);                  {Přesune kurzor na souřadnice 30(x-ova),
                                  1(y). - y je ale počítáno seshora.
                                  PS : Obrazovka je pro nás 80x23}
  Write('Rabín ');
  TextColor(BarvaScenicke);
  Write('x');
  TextColor(BarvaKohn);
  Writeln(' Kohn');
  Writeln;

  Write('Poslouchaj, Rabi, půjčej mi deset tisíc,');
  Write('blíží se Vánoce a já nemám ani korunu');
  TextColor(BarvaRabin);
  Write('A od kdy jsou pro ně Vánoce nějakej svátek?');
  TextColor(BarvaKohn);
  Write('Jo, pro mě je svátek každej den, když dostanu peníze!');
  Writeln;

  TextColor(BarvaRabin);
  Writeln('Ja se jim divim, jak můžou klidně spát, když mi dlužej deset tisíc');
  TextColor(BarvaKohn);
  Writeln('Copak já, ale co oni, když ví, že jim je nevrátím!');

  TextColor(BarvaScenicke);
  Writeln('To je pro dnešek konec');
  Readln;
End.   

To je hlavní využití konstant. Když se nyní rozhodnete změnit barvu jedné postavy, stačí změnit jedno jediné číslo. Nemusíte jich měnit celou řadu (a představte si, že by se dané číslo objevovalo třeba tisíckrát a mělo by tři významy (Jednou barva textu, podruhé pozadí a potřetí nějaká matematická konstanty...)).

Všimněte si rozdílu mezi Write a Writeln a toho, že delší program je lepší členit na menší dílčí celky.

Domácí úkol: