Pascal – Náhodné číslo (Úlohy)

Aby program vypisoval náhodná čísla, existuje k tomu velice jednoduchý postup. My si, ale vysvětlíme pár příkladů, na kterých si procvičíme různé varianty použití funkcí k tomuto výpisu potřebných. 

První co musíme znát je funkce randomize();

Tato funkce zajistí, že při funkci Random, bude pokaždé jiné číslo po spuštění programu. Tedy, čísla která jsme viděli při prvním spuštěním programu neuvidíme při druhým. Ukážu názorný příklad jak to funguje:

program nahodne;

var cislo:integer;

begin
  cislo := random(10);
  writeln(cislo);
end.

Program přiřazuje proměnné cislo náhodné číslo mezi 0 – 10. Jenže program neobsahuje funkci randomize(). Takže pokud vy spustíte tento program, tak se vám třeba ukáže číslo 5, nebo jakékoliv v tom rozmezí 0-10 tak při každém spuštění to samé číslo tam budete vídat. Pro náhodné číslo při spuštění tedy použijeme funkci randomize() a číslo bude pokaždé jiné. Příklad:

program nahodne;

var cislo:integer;

begin
  randomize();
  cislo := random(10);
  writeln(cislo);
  readln();
end.

Programu jsem tedy přidal funkci randomize(). Jistě jste si všimli, že program byl doplněn o readln(), který zajistí, že se nám příkazový řádek vypne až po stisknutí klávesy ENTER. To je ale nepodstatné. Jde o to, aby jste pochopili funkci random a randomize() jak je potřebné je mít pohromadě, aby program splnil co se po něm požaduje. Dáme si ještě jeden příklad, který by mohl také vysvětlit funkci random a randomize


Program bude vypisovat příklady a bude vyčkávat na odpověď uživatele. Poté zkontroluje správnost výsledku. Program bude fungovat pouze pro jeden příklad. Program jde podstatně rozšířit, ale pro jednoduché vysvětlení to bude stačit. Budeme postupovat krok po kroku, aby vše bylo snadné na pochopení.

program nahodneScitani;

begin

end.

Vytvořil jsem základní strukturu do které budeme připisovat další proměnné a podmínky. První co inicializujeme, je funkce randomize. Chci jí ihned pod BEGIN, aby vše pod randomize bylo inicializováno na náhodné číslo.

randomize();

Teď pod randomize musíme vypsat příklad. Musíme tedy provést následující kroky. Deklarujeme proměnné a dál nás čeká přiřazení proměnným náhodné číslo.

Deklarujeme si tedy proměnné c1,c2,overeni,vysledek s datovým typem integer. Druhou činnost co nás čeká je, že proměnné c1 a c2 musí být náhodné. Takže přiřadíme jim příkaz random s číslama do 20. A vypadat to bude takto:

program nahodneScitani;

var c1,c2,vysledek,overeni:integer;

begin
  randomize();
  c1 := random(20);
  c2 := random(20);
end.

V tuto chvíli má program inicializované veškeré potřebné hodnoty. Uvedl jsem proměnnou overeni. Program provede sám sečtení náhodných čísel, a výsledek si zapíše do proměnné overeni. Poté program vypíše uživateli příklad s vyčkáním na výsledek. A kód bude tedy vypadat takto:

program nahodneScitani;

var c1,c2,vysledek,overeni:integer;

begin
  randomize();
  c1 := random(20);
  c2 := random(20);

  overeni := c1 + c2;
  write(c1,' + ',c2,' = ');
  readln(vysledek);
end.

Program tedy sám vypočítal příklad a uložil si výsledek do proměnné overeni, vypsal náhodná čísla jako příklad na řádek a na stejném řádku stále čeká na výsledek od uživatele. Teď nás čeká ověření zda výsledek byl správný či naopak a program bude ukončen. Využijeme tedy jednoduché podmínky, že pokud vysledek se rovná overeni, tak vypíše správnost a ukončí program. Pokud se nebude rovnat, opět vypíše hlášku o nerovnosti a bude ukončen. Kód bude vypadat takto a je to jeho výsledná podoba.:

program nahodneScitani;

var c1,c2,vysledek,overeni:integer;

begin
  randomize();
  c1 := random(20);
  c2 := random(20);

  overeni := c1 + c2;
  write(c1,' + ',c2,' = ');
  readln(vysledek);

  if (overeni = vysledek) then
   begin
     writeln('Spravny vysledek!');
   end
  else
   begin
     writeln('Spatny vysledek!');
   end;

  readln();
end.

Shrnutí:

  • Program vypíše příklad s náhodnými čísly
  • Vyčká na zadání od uživatele a zároveň má již sám program výsledek náhodných čísel
  • Po uživatelském zadání program ověří správnost, vypíše jej a čeká na stisk klávesy pro ukončení
Kód:
Příspěvek byl publikován v rubrice Pascal se štítky , , , , , , , . Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Můžete používat následující HTML značky a atributy: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>