Stránky neboli dlhú dobu aktualizované. Môžu obsahovať nepresné alebo neaktuálne informácie.
Hľadanie
Rozšírené vyhľadávanie
TOP 7 - stránky
Napaľovacie programy - 108 657x
Free Pascal - Úvod - 66 165x
Lazarus - Kreslenie - 47 678x
Free Pascal - Začiatky - 44 985x
Free Pascal - Podmienky - 37 301x
Free Pascal - Cykly - 36 543x
Internetové prehliadače - 36 476x
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,92
Diskusia k tejto stránke
Prejsť do diskusie»
2005-2012, Matúš Sulír, matus.sulir (zav) gmail bodka com. Gen.: 0,0637 s. Valid XHTML, CSS.