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.