Zatiaľ vieme, že pri programovaní musí mať všetko svoju logiku, nič nenechávame na náhodu. Alebo predsa? V Pascale existuje tzv. generátor pseudonáhodných čísel. Tie však stále nie sú úplne vymyslené - získavajú sa špeciálnymi algoritmami, pričom sa využíva aktuálny systémový čas.
Ak ho potrebujeme získať, využijeme funkciu random bez parametra.
writeln(random);
Na obrazovke sa zjaví nič nehovoriace číslo. Dokonca, ak program spustíte viackrát, malo by sa zobraziť presne to isté (nie je to však pravidlo).
Opäť použijeme funkciu random, tento raz s parametrom. Ten bude celočíselný a určí maximálne možné vygenerované číslo.
writeln(random(5));
Aby sme zabránili generovaniu stále toho istého čísla, použijeme procedúru randomize. Takto vyzerá kompletný program:
program nahodne; begin randomize; writeln(random(5)); end.
Naša aplikácia vypíše náhodne vybrané celé číslo od 0 do 4 (vrátane 0 a 4). Skúste ju spustiť viackrát.
Skúsime napísať program, ktorý by vygeneroval a napísal 10 náhodných čísel od 1 do 15 (vrátane). Výsledné čísla sa však nesmú opakovať! Použijeme pole, do ktorého si budeme ukladať generované hodnoty. Pred tým, ako číslo vložíme do poľa, skontrolujeme, či sa v ňom už nenachádza. Aplikáciu nazveme Lotéria.
program loteria;
var
pole: array[1..10] of integer;
nahodne, c, d: integer; // pomocne
nachadza_sa: boolean;
begin
randomize;
for c := 1 to 10 do begin
repeat {aby sa cisla neopakovali}
nahodne := random(15)+1;
nachadza_sa := false;
for d := 1 to 10 do
if nahodne = pole[d] then
nachadza_sa := true;
until not nachadza_sa;
pole[c] := nahodne;
writeln(nahodne);
end;
end.
Iste ste si všimli, že premennej nahodne sme priradili číslo od 0 do 14 a pričítali sme 1. Znamená to, že výsledkom bude hodnota od 1 do 15.