Logo
Hľadanie
TOP 7 - stránky
Napaľovacie programy - 69 006x
Free Pascal - Úvod - 23 916x
3D grafické programy - 21 041x
Internetové prehliadače - 16 814x
Multimediálne prehrávače - 16 653x
Závodné hry - 15 247x
Download manažéry - 14 690x
Nové v diskusii
HTML - Formuláre - piatok 23.7.
Free Pascal - Začiatky - štvrtok 24.6.
HTML - META informácie - utorok 15.6.
Navigácia: Programovanie > Free Pascal - Náhodné javy

Free Pascal - Náhodné javy

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.

Náhodné desatinné číslo

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).

Náhodné celé číslo

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.

Príklad

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.

Hodnotenie
1 2 3 4 5 (ako v škole)
Priemerná známka: 2,15
Diskusia k tejto stránke Ďakujem Vám za pomoc! V minulosti som sa snažil v...
Prejsť do diskusie»
'05-10, Business IT Solutions s.r.o.+Matúš Sulír, matus.sulir (zav) gmail bodka com. Gen.: 0,023 s. Valid XHTML, CSS.