Stránky neboli dlhú dobu aktualizované. Môžu obsahovať nepresné alebo neaktuálne informácie.
Používaním tejto stránky súhlasíte s používaním cookies.
Hľadanie
Rozšírené vyhľadávanie
TOP 7 - stránky
Napaľovacie programy - 104 967x
Free Pascal - Úvod - 59 073x
Free Pascal - Začiatky - 38 807x
Lazarus - Kreslenie - 36 769x
Internetové prehliadače - 32 366x
3D grafické programy - 31 649x
Free Pascal - Podmienky - 30 302x
Nové v diskusii
Free Pascal - Cykly - štvrtok 31.3.
Lazarus - Začíname - piatok 25.3.
Anketa - streda 2.3.
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,87
Diskusia k tejto stránke
Prejsť do diskusie»
2005-2012, Matúš Sulír, matus.sulir (zav) gmail bodka com. Gen.: 0,0601 s. Valid XHTML, CSS.