Náhodné desatinné čísla – Pascal – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Náhodné desatinné čísla – Pascal – Fórum – Programujte.comNáhodné desatinné čísla – Pascal – Fórum – Programujte.com

 

doma22
~ Anonymní uživatel
94 příspěvků
19. 1. 2021   #1
-
0
-

V knihe čo som si kúpil, je ako učebný príklad naprogramovanie pseudonáhodného výberu desatinných čísel s tromi desatinnými miestami v intervale 1 až 10 pri 5 možnostiach, to som zvládol, ale ako také vlastné vylepšenie som chcel, aby pc generovalo nie len 0,..., ale i napríklad 1,325 a tak podobne, avšak nech robím čokoľvek stále mi paskal generuje 0,..., a okrem toho mi na záver programu, kde sa majú zrekapitulovať tipy hráča a vylosované čísla píše paskal iba 0, prosím Vás neviete mi s tým pomôcť. Tu je zdrojový kód:

Program Herna;
 var vylosovane:array[1..10] of real;
 var tip:array[1..10] of real;
 var hotovost,stavka,vyhra:real;
 var cislo,uspech:real;
 var koniec:string;

  writeln('Dobry vecer');
  writeln('Kolko penazí chcete vymenit za zetóny (min. 30) a stlacte enter: ');
  readln(hotovost);
  if hotovost < 30 then
    writeln('Bohuzial, minimum je 30. Opuste prosím hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Vase zetóny sú');
    writeln(hotovost);
    writeln('Ak ste pripraveny k hre, dajte stávku.');
    writeln('Minimálna stávka je 30 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka);
    while (stavka < 30) or (stavka > hotovost) do
    begin
      while stavka < 30 do
      begin
        writeln('Mali by ste prihodit aspon ', 30 - stavka3);
        writeln('Kolko pridáte: ');
        readln(cislo);
        stavka:=stavka + cislo;
      end;
      while stavka > hotovost do
      begin
        writeln('Tolko nemáte, znizte stávku.');
        writeln('Vase zetóny: ', hotovost);
        write('Vasa stavka (min. 30) a stlacte enter: ');
        readln(stavka);
      end;
    end;
    writeln('Stávka ', stavka,' je OK.');
    hotovost:=hotovost - stavka;
    writeln('Teraz máte u seba zetónov:', hotovost);
    for cislo:=1 to 5 do
    begin
      writeln('Tipnite si ', cislo ,'. desatinné císlo s troma desatinnými miestami (0-10) a stlacte enter: ');
      readln(tip[cislo:1:3]);
    end;
    writeln('Vase tipy: ');
    for cislo:=1 to 10 do
      writeln(tip[cislo:1:3], ' ');
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech:=0;
    for cislo:=1 to 5 do
    begin
      vylosovane[cislo:1:3]:=random(10);
      writeln(cislo, '. cislo: ', vylosovane[cislo:1:3]);
      if vylosovane[cislo]=tip[cislo:1:3] then begin
        uspech:=uspech + 1;
        writeln(' ANO! -> Uspesnost = ',uspech,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech,'. Stlacte enter.');
      readln();
    end;
    writeln('Vase tipy : ');
    for cislo:=1 to 5 do
      writeln(tip[cislo:1:3], ' ');
    writeln();
    writeln('Vylosované: ');
    for cislo:=1 to 5 do
      write(vylosovane[cislo:1:3], ' ');
    writeln();
    writeln('Uspesnost: ', uspech);
    case uspech of
      5:
      begin
        hotovost:=hotovost + (stavka*6);
        writeln('Vyhravate sestnásobok stávky = ', stavka*5);
      end;
      4:
      begin
        hotovost:=hotovost + (stavka3*5);
        writeln('Vyhravate pätnásobok stávky = ', stavka*5);
      end;
      3:
      begin
        hotovost:=hotovost + (stavka div 2);
        writeln('Vyhrávate polovicu zo svojej stávky = ', stavka div 2);
      end;
      2:
      begin
        hotovost:=hotovost + (stavka div 3);
        writeln('Vyhrávate tretinu zo svojej stávky = ', stavka div 3);
      end
      else
        writeln('Ztrácate celu svoju stavku = ', -stavka);
    end;
    writeln('Vase zetóny: ', hotovost);
    if hotovost < 30 then
    begin
      writeln('Vase zetóny bohuzial nedosahujú stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
    begin
      writeln('Chcete skoncit hru, napiste koniec a stlacte enter.');
      writeln('Pro pokracovanie v hre stlacte iba enter.');
      readln();
      read(koniec);
    end;
  end;

Nahlásit jako SPAM
IP: 178.143.101.–
gna
~ Anonymní uživatel
1891 příspěvků
20. 1. 2021   #2
-
0
-

pole[real:1:3] je nesmyl a překvapuje mně, že to vubec jde. Random vždycky vrací celé číslo a takhle z něj real neuděláš.

pole[index] := random(10000) / 1000;
Nahlásit jako SPAM
IP: 213.211.51.–
doma22
~ Anonymní uživatel
94 příspěvků
20. 1. 2021   #3
-
0
-

#2 gna
čiže 1,.... alebo 5,...... a tak podobne v mojom príklade nie je možné, keďže random dáva iba celé čísla? A ešte prečo mi pri výpise vylosovaných a typovaných čísel dáva iba 0, to pre vyššie spomenutý problém?

Nahlásit jako SPAM
IP: 178.143.101.–
gna
~ Anonymní uživatel
1891 příspěvků
20. 1. 2021   #4
-
0
-

Random(10000) vrátí celé číslo od 0 do 9999, což po vydělení 1000 bude desetinné číslo od 0 do 9,999. Samozřejmě s omezenou přesností a ne vždy zrovna na 3 des. místa.

Zkusil jsem to zkompilovat, abych se podíval, kde ti to blbne, ale vzdal jsem to u opravování asi desáté chyby. Tak nevím, jak to tobě něco generuje, pokud to nejde zkompit a spustit.

Nahlásit jako SPAM
IP: 213.211.51.–
doma22
~ Anonymní uživatel
94 příspěvků
21. 1. 2021   #5
-
0
-

#4 gna
neviem prečo Vám to nejde, možno odstránením 1:3 by to išlo, lebo ako som povedal v knihe s príkladom, to generuje celé čísla, tie desatinné som pridal ja ako taký môj príspevok, lebo v knihe je program čisto na vygenerovanie iba jedného náhodného čísla, no a mňa napadlo, že ak viem napísať program na generovanie iba jedného desatinného čísla, tak by mala byť aj možnosť generovať viac náhodných desatinných čísel, ale program ktorý som tu hodil je iba výsek upravenej jednej časti celého programu, preto došlo i v chybe pri prepise 30 - stavka3, tá stavka3 je syntaxovo chybná, malo tam byť iba stavka, ale možno tu by pomohlo prepis kompletného môjho pôvodného kódu, ten však ako som spomenul na začiatku negeneruje desatinné čísla a v tretej časti programu pri súhrnom výpise tipov a vylosovaných čísel dáva iba 0, alebo až 10 typov. Tu je môj originálny program, ktorý okrem týchto dvoch chýb ide, ale musím vopred upozorniť, že je dosť dlhý, keďže v podstate sú tu až 4 programy:

Program Herna1;
 var vylosovane1,vylosovane2,vylosovane3,vylosovane4:array[1..10] of integer;
 var tip1,tip2,tip3,tip4:array[1..10] of integer;
 var hotovost1,hotovost2,hotovost3,hotovost4,stavka1,stavka2,stavka3,stavka4,vyhra1,vyhra2,vyhra4:integer;
 var cislo1,cislo2,cislo3,cislo4,uspech1,uspech2,uspech3,uspech4:integer;
 var koniec1,koniec2,koniec3,koniec4:string;
 begin
  writeln('Tu si vytvoríme imaginárnú hernu');
  writeln('Budeme tu mat az 4 stoly');
  writeln('Hrác zacne na prvom a v prípade, ze ho hra uz nebude bavit, presunie sa oznamom koniec k druhej hre');
  writeln('Takto pokracuje k poslednej hre, kde ho uz caká iba vychod z herne');
  writeln('Tak podme do herne a nezabúdat stlácat enter po zadaní císla');
  writeln('Pre pokracovanie programu stlacte enter');
  readln();
  writeln('PRVA HRA');
  writeln('Dobry vecer');
  writeln('Vasou úlohov je typnut si správne 10 císel, od jedna do desat');
  writeln('Kolko penazí chcete vymenit za peniaze (min. 20), po zadaní stalcte enter: ');
  readln(hotovost1);
  if hotovost1 < 20 then
    writeln('Bohuzial minimum je 20. Opuste prosim hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Ak ste pripraveny, stavte zetóny a stlacte enter.');
    writeln('Minimálna stávka je 20 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka1);
    while (stavka1 < 20) or (stavka1 > hotovost1) do
    begin
      while stavka1 < 20 do
      begin
        writeln('Mali by ste prihodit aspon ', 20 - stavka1);
        writeln('Zadajte kolko pridáte a stlacte enter: ');
        readln(cislo1);
        stavka1:=stavka1 + cislo1;
      end;
      while stavka1 > hotovost1 do
      begin
        writeln('Tolko nemáte, znizte prosim svoju stávku.');
        writeln('Vasa zetóny: ', hotovost1);
        writeln('Zadajte Vasu stávku a stlacte enter (min. 20): ');
        read(stavka1);
      end;
    end;
    writeln('Stávka ', stavka1,' je v poriadku.');
    hotovost1:=hotovost1 - stavka1;
    writeln('Zostali Vám zetóny:', hotovost1);
    for cislo1:=1 to 10 do
    begin
      writeln('Tipnite si ', cislo1 ,'. císlo (0-10) a stlacte enter: ');
      readln(tip1[cislo1]);
    end;
    writeln('Vase tipy: ');
    for cislo1:=1 to 10 do
      writeln(tip1[cislo1], ' ');
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech1:=0;
    for cislo1:=1 to 10 do
    begin
      vylosovane1[cislo1]:=random(10);
      writeln(cislo1, '. císlo: ', vylosovane1[cislo1]);
      if vylosovane1[cislo1]=tip1[cislo1] then begin
        uspech1:=uspech1 + 1;
        writeln(' ANO! -> Uspesnost = ',uspech1,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech1,'. Stlacte enter.');
      readln();
    end;
    writeln('Vase tipy : ');
    for cislo1:=1 to 10 do
      writeln(tip1[cislo1], ' ');
    writeln('Vylosované: ');
    for cislo1:=1 to 10 do
      writeln(vylosovane1[cislo1], ' ');
    writeln('Uspesnost: ', uspech1);
    case uspech1 of
      10:
      begin
        hotovost1:=hotovost1 + (stavka1*5);
        writeln('Vyhrávate pätnásobok stávky = ', stavka1*5);
      end;
      9:
      begin
        hotovost1:=hotovost1 + (stavka1*4);
        writeln('Vyhrávate stvornásobok stávky = ', stavka1*4);
      end;
      8:
      begin
        hotovost1:=hotovost1 + (stavka1*3);
        writeln('Vyhrávate trojnásobok stávky = ', stavka1*3);
      end;
      7:
      begin
        hotovost1:=hotovost1 + (stavka1*2);
        writeln('Vyhrávate dvojnásobok stávky = ', stavka1*2);
      end;
      6:
      begin
        hotovost1:=hotovost1 + stavka1;
        writeln('Vyhrávate spät svoju stávku = ', stavka1);
      end;
      5:
      begin
        vyhra1 := stavka1 - (stavka1 div 4);
        hotovost1:=hotovost1 + vyhra1;
        writeln('Vyhrávate 3/4 zo svojej stávky = ', vyhra1);
      end;
      4:
      begin
        vyhra1 := stavka1 - (stavka1 div 3);
        hotovost1:=hotovost1 + vyhra1;
        writeln('Vyhrávate 2/3 zo svojej stávky = ', vyhra1);
      end;
      3:
      begin
        hotovost1:=hotovost1 + (stavka1 div 2);
        writeln('Vyhrávate polovicu zo svojej stavky = ', stavka1 div 2);
      end;
      2:
      begin
        hotovost1:=hotovost1 + (stavka1 div 3);
        writeln('Vyhrávate tretinu zo svojej stávky = ', stavka1 div 3);
      end
      else
        writeln('Ztrácate celu stávku = ', -stavka1);
    end;
    writeln('Vase zetóny: ', hotovost1);
    if hotovost1 < 20 then
    begin
      writeln('Vase zetóny nie sú vo vyske stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
     writeln('Ak chcete skoncit hru, napíste koniec a stlacte enter.');
  writeln('Pre pokracovanie stlacte iba samotny enter. ');
  readln();
  read(koniec1);
  end;
  until (koniec1 = 'koniec') or (hotovost1 < 20);
  writeln('Pre pokracovanie programu stlacte enter');
  readln();
  writeln('Teraz si zvysime sancu na vyhru tym,ze budeme typovat iba medzi 0 a 2');
  writeln('DRUHA HRA');
  writeln('Dobry vecer');
  writeln();
  writeln('Kolko penazí chcete vymenit za zetóny (min. 10) a stlacte enter: ');
  readln(hotovost2);
  hotovost2:=hotovost2 + hotovost1;
  writeln(hotovost2);
  if hotovost2 < 10 then
    writeln('Bohuzial, minimum je 10. Opuste prosím hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Vase zetóny sú');
    writeln(hotovost2);
    writeln('Ak ste pripraveny k hre, dajte stávku.');
    writeln('Minimálna stávka je 10 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka2);
    while (stavka2 < 10) or (stavka2 > hotovost2) do
    begin
      while stavka2 < 10 do
      begin
        writeln('Mali by ste prihodit aspon ', 10 - stavka2);
        writeln('Kolko pridáte: ');
        readln(cislo2);
        stavka2:=stavka2 + cislo2;
      end;
      while stavka2 > hotovost2 do
      begin
        writeln('Tolko nemáte, znizte stávku.');
        writeln('Vase zetóny: ', hotovost2);
        writeln('Vasa stavka (min. 10) a stlacte enter: ');
        readln(stavka2);
      end;
    end;
    writeln('Stávka ', stavka2,' je OK.');
    hotovost2:=hotovost2 - stavka2;
    writeln('Teraz máte u seba zetónov:', hotovost2);
    for cislo2:=1 to 10 do
    begin
      writeln('Tipnite si ', cislo2 ,'. císlo (0-2) a stlacte enter: ');
      readln(tip2[cislo2]);
    end;
    writeln('Vase tipy: ');
    for cislo2:=1 to 10 do
      writeln(tip2[cislo2], ' ');
    writeln();
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech2:=0;
    for cislo2:=1 to 10 do
    begin
      vylosovane2[cislo2]:=random(2);
      writeln(cislo2, '. cislo: ', vylosovane2[cislo2]);
      if vylosovane2[cislo2]=tip2[cislo2] then begin
        uspech2:=uspech2 + 1;
        writeln(' ANO! -> Uspesnost = ',uspech2,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech2,'. Stlacte enter.');
      readln();
    end;
    writeln('Vase tipy : ');
    for cislo2:=1 to 10 do
      writeln(tip2[cislo2], ' ');
    writeln();
    writeln('Vylosované: ');
    for cislo2:=1 to 10 do
      writeln(vylosovane2[cislo2], ' ');
    writeln();
    writeln('Uspesnost: ', uspech2);
    case uspech2 of
      10:
      begin
        hotovost2:=hotovost2 + (stavka2*5);
        writeln('Vyhravate pätnásobok stávky = ', stavka2*5);
      end;
      9:
      begin
        hotovost2:=hotovost2 + (stavka2*4);
        writeln('Vyhravate stvornásobok stávky = ', stavka2*4);
      end;
      8:
      begin
        hotovost2:=hotovost2 + (stavka2*3);
        writeln('Vyhrávate trojnásobok stávky = ', stavka2*3);
      end;
      7:
      begin
        hotovost2:=hotovost2 + (stavka2*2);
        writeln('Vyhrávate dvojnásobok stávky = ', stavka2*2);
      end;
      6:
      begin
        hotovost2:=hotovost2 + stavka2;
        writeln('Vyhrávate spät svoju stávku = ', stavka2);
      end;
      5:
      begin
        vyhra2 := stavka2 - (stavka2 div 4);
        hotovost2:=hotovost2 + vyhra2;
        writeln('Vyhrávate 3/4 zo svojej stávky = ', vyhra2);
      end;
      4:
      begin
        vyhra2 := stavka2 - (stavka2 div 3);
        hotovost2:=hotovost2 + vyhra2;
        writeln('Vyhrávate 2/3 zo svojej stávky = ', vyhra2);
      end;
      3:
      begin
        hotovost2:=hotovost2 + (stavka2 div 2);
        writeln('Vyhrávate polovicu zo svojej stávky = ', stavka2 div 2);
      end;
      2:
      begin
        hotovost2:=hotovost2 + (stavka2 div 3);
        writeln('Vyhrávate tretinu zo svojej stávky = ', stavka2 div 3);
      end
      else
        writeln('Ztrácate celu svoju stavku = ', -stavka2);
    end;
    writeln('Vase zetóny: ', hotovost2);
    if hotovost2 < 10 then
    begin
      writeln('Vase zetóny bohuzial nedosahujú stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
    begin
      writeln('Chcete skoncit hru, napiste koniec a stlacte enter.');
      writeln('Pro pokracovanie v hre stlacte iba enter.');
      readln();
      read(koniec2);
    end;
  end;
  until (koniec2 = 'koniec') or (hotovost2 < 10);
  writeln('Pre pokracovanie programu stlacte enter');
  readln();
  writeln('V tretej hre stavime 30 a budeme mat iba 5 tipov, pri com typujeme desatinne cisla s tromi desatinnymi miestami');
  writeln('TRETIA HRA');
  writeln('Dobry vecer');
  writeln();
  writeln('Kolko penazí chcete vymenit za zetóny (min. 30) a stlacte enter: ');
  readln(hotovost3);
  hotovost3:= hotovost3 + hotovost2;
  writeln(hotovost3);
  if hotovost3 < 30 then
    writeln('Bohuzial, minimum je 30. Opuste prosím hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Vase zetóny sú');
    writeln(hotovost3);
    writeln('Ak ste pripraveny k hre, dajte stávku.');
    writeln('Minimálna stávka je 30 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka3);
    while (stavka3 < 30) or (stavka3 > hotovost3) do
    begin
      while stavka3 < 30 do
      begin
        writeln('Mali by ste prihodit aspon ', 30 - stavka3);
        writeln('Kolko pridáte: ');
        readln(cislo3);
        stavka3:=stavka3 + cislo3;
      end;
      while stavka3 > hotovost3 do
      begin
        writeln('Tolko nemáte, znizte stávku.');
        writeln('Vase zetóny: ', hotovost3);
        write('Vasa stavka (min. 30) a stlacte enter: ');
        readln(stavka3);
      end;
    end;
    writeln('Stávka ', stavka3,' je OK.');
    hotovost3:=hotovost3 - stavka3;
    writeln('Teraz máte u seba zetónov:', hotovost3);
    for cislo3:=1 to 5 do
    begin
      writeln('Tipnite si ', cislo3 ,'. císlo (0-10) a stlacte enter: ');
      readln(tip3[cislo3]);
    end;
    write('Vase tipy: ');
    for cislo3:=1 to 10 do
      write(tip3[cislo3], ' ');
    writeln();
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech3:=0;
    for cislo3:=1 to 5 do
    begin
      vylosovane3[cislo3]:=random(10);
      write(cislo3, '. cislo: ', vylosovane3[cislo3]);
      if vylosovane3[cislo3]=tip3[cislo3] then begin
        uspech3:=uspech3 + 1;
        writeln(' ANO! -> Uspesnost = ',uspech3,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech3,'. Stlacte enter.');
      readln();
    end;
    write('Vase tipy : ');
    for cislo3:=1 to 5 do
      write(tip3[cislo3], ' ');
    writeln();
    write('Vylosované: ');
    for cislo3:=1 to 5 do
      write(vylosovane3[cislo3], ' ');
    writeln();
    writeln('Uspesnost: ', uspech3);
    case uspech3 of
      5:
      begin
        hotovost3:=hotovost3 + (stavka3*6);
        writeln('Vyhravate sestnásobok stávky = ', stavka3*5);
      end;
      4:
      begin
        hotovost3:=hotovost3 + (stavka3*5);
        writeln('Vyhravate pätnásobok stávky = ', stavka3*5);
      end;
      3:
      begin
        hotovost3:=hotovost3 + (stavka3 div 2);
        writeln('Vyhrávate polovicu zo svojej stávky = ', stavka3 div 2);
      end;
      2:
      begin
        hotovost3:=hotovost3 + (stavka3 div 3);
        writeln('Vyhrávate tretinu zo svojej stávky = ', stavka3 div 3);
      end
      else
        writeln('Ztrácate celu svoju stavku = ', -stavka3);
    end;
    writeln('Vase zetóny: ', hotovost3);
    if hotovost3 < 30 then
    begin
      writeln('Vase zetóny bohuzial nedosahujú stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
    begin
      writeln('Chcete skoncit hru, napiste koniec a stlacte enter.');
      writeln('Pro pokracovanie v hre stlacte iba enter.');
      readln();
      read(koniec3);
    end;
  end;
  until (koniec3 = 'koniec') or (hotovost3 < 30);
  writeln('Pre pokracovanie programu stlacte enter');
  readln();
  writeln('V poslednej hre stavime 50 a budeme mat iba jeden tip');
  writeln('STVRTA HRA');
  writeln('Dobry vecer');
  writeln();
  writeln('Kolko penazí chcete vymenit za zetóny (min. 50) a stlacte enter: ');
  readln(hotovost4);
  hotovost4:= hotovost4 + hotovost3;
  writeln(hotovost4);
  if hotovost4 < 50 then
    writeln('Bohuzial, minimum je 50. Opuste prosím hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Vase zetóny sú');
    writeln(hotovost4);
    writeln('Ak ste pripraveny k hre, dajte stávku.');
    writeln('Minimálna stávka je 50 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka4);
    while (stavka4 < 50) or (stavka4 > hotovost4) do
    begin
      while stavka4 < 50 do
      begin
        writeln('Mali by ste prihodit aspon ', 50 - stavka4);
        writeln('Kolko pridáte: ');
        readln(cislo4);
        stavka4:=stavka4 + cislo4;
      end;
      while stavka4 > hotovost4 do
      begin
        writeln('Tolko nemáte, znizte stávku.');
        writeln('Vase zetóny: ', hotovost4);
        write('Vasa stavka (min. 30) a stlacte enter: ');
        readln(stavka4);
      end;
    end;
    writeln('Stávka ', stavka4,' je OK.');
    hotovost4:=hotovost4 - stavka4;
    writeln('Teraz máte u seba zetónov:', hotovost4);
    for cislo4:=1 to 1 do
    begin
      writeln('Tipnite si ', cislo4 ,'. císlo (0-10) a stlacte enter: ');
      readln(tip4[cislo4]);
    end;
    write('Vas tip: ');
    for cislo4:=1 to 1 do
      write(tip4[cislo4], ' ');
    writeln();
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech4:=0;
    for cislo4:=1 to 1 do
    begin
      vylosovane4[cislo4]:=random(10);
      write(cislo4, '. cislo: ', vylosovane4[cislo4]);
      if vylosovane4[cislo4]=tip4[cislo4] then begin
        uspech4:=uspech4 + 1;
        writeln(' ANO! -> Uspesnost = ',uspech4,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech4,'. Stlacte enter.');
      readln();
    end;
    write('Vase tipy : ');
    for cislo4:=1 to 1 do
      write(tip4[cislo4], ' ');
    writeln();
    write('Vylosované: ');
    for cislo4:=1 to 1 do
      write(vylosovane4[cislo4], ' ');
    writeln();
    writeln('Uspesnost: ', uspech4);
    case uspech4 of
      1:
      begin
        hotovost4:=hotovost4 + (stavka4*10);
        writeln('Vyhravate desatnásobok stávky = ', stavka4*10);
      end
      else
        writeln('Ztrácate celu svoju stavku = ', -stavka4);
    end;
    writeln('Vase zetóny: ', hotovost4);
    if hotovost4 < 50 then
    begin
      writeln('Vase zetóny bohuzial nedosahujú stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
    begin
      writeln('Chcete skoncit hru, napiste koniec a stlacte enter.');
      writeln('Pro pokracovanie v hre stlacte iba enter.');
      readln();
      read(koniec4);
    end;
  end;
  until (koniec4 = 'koniec') or (hotovost4 < 50);
  writeln('Vasa vyhra je dnes');
  writeln(hotovost4);
  writeln('Pre skoncenie programu stlacte enter');
  readln();
 end.

Nahlásit jako SPAM
IP: 178.143.101.–
doma22
~ Anonymní uživatel
94 příspěvků
21. 1. 2021   #6
-
0
-

#4 gna
Ono viem, že najlepší nápad spájať programy z knihy do kopy možno nie je najlepší, ale ukážkových, respektíve náučných programov som už mal toľko, že som sa v tom začal strácať, a tak som tematicky príbuzné programy spájal do jedného, neviem prečo 1:3 robí problém, keď v generovaní jedného desatinného čísla tento zápis funguje ako má, tu je i príklad, ktorý mi bez problémov v takejto forme šlape ako  má:

program Losovanie1;
 var mnozina1, mnozina2, mnozina3 ,mnozina4, mnozina5, tah1, tah3, tah5: integer;
 var tah2, tah4: real;
 begin
  writeln('Teraz si ukázeme ako nám pc náhodne vygeneruje - vylosuje celé císla');
  writeln('V nasom prípade sú to náhodné císla od 0 do 10');
  writeln('Na to budeme potrebovat funkciu randomize - náhodne a random - náhodny ');
  writeln('Bubeme mat az pät programov');
  writeln('Prvy program vylosuje jedno císlo z celych císel a druhy z reálnych - desatinnych císel');
  writeln('Tretí program zase bude generovat náhodné císla z celych císel a stvrty z reálnych - desatinnych císel');
  writeln('Na záver si dáme piaty program, ktory nám vygeneruje len pät císel');
  writeln('To aby nám v piatom programe vygenerolvalo iba 5 císel sme dali do cyklu for');
  writeln('Pre pokracovanie programu stlacte enter');
  readln();
  writeln('PRVY PROGRAM');
  begin
   randomize;
   for mnozina1:=1 to 9 do
   begin
    tah1:=random(10);
   end;
   tah1:=random(10);
   writeln('Bolo vyzrebované císlo:');
   writeln(tah1);
   writeln('Pre pokracovanie programu stlacte enter');
   readln();
  end;
 writeln('DRUHY PROGRAM');
  begin
   randomize;
   for mnozina2:=1 to 9 do
   begin
   tah2:=random;
   end;
   tah2:=random;
   writeln('Bolo vyzrebované císlo:');
   writeln(tah2:1:3);
   writeln('Pre pokracovanie programu stlacte enter');
   readln();
  end;
 writeln('TRETI PROGRAM');
 writeln('cisla');
  begin
   randomize;
   for mnozina3:=1 to 9 do
   begin
    tah3:=random(10);
    writeln(tah3, ', ');
   end;
   tah3:=random(10);
   writeln('boli vygenerované ');
   writeln('Pre pokracovanie programu stlacte enter');
   readln();
  end;
 writeln('STVRTY PROGRAM');
 writeln('cisla');
  begin
   randomize;
   for mnozina4:=1 to 9 do
   begin
    tah4:=random(10);
    writeln(tah4:1:3, ', ');
   end;
   tah4:=random;
   writeln('boli vygenerované');
   writeln('Pre pokracovanie programu stlacte enter');
   readln();
  end;
 writeln('PIATY PROGRAM');
 writeln('cisla');
  begin
   randomize;
   for mnozina5:=1 to 5 do
   begin
    tah5:=random(10);
    writeln(tah5);
   end;
   writeln('boli vygenerované ');
  end;
 writeln('Pre ukoncenie programu stlacte enter');
 readln();
 end.

Fakt ma mrzí, že pri mojich podnetoch treba obetovať viac času, ale ako vidíte, už to nie sú základy, takže viem, že na to už nestačia dve minútky, ale skúšal som to sám napraviť celé dni, no nedopracoval som sa nikde a určite to sám ani nedám, takže ešte raz ma mrzí, že Vám zaberám toľko času, no nemám sa na koho iného obrátiť s pomocou, keďže nepoznám žiadných programátorov, v knihách čo som si kúpil takéto problémy nie sú opísané, peniaze som minul na knihy a programy, takže na kurzy môžem momentálne zabudnúť, a vďaka korone sa to tak skoro asi nezmení a na nete, okrem fóra som pomoc s týmito vecami nenašiel

Nahlásit jako SPAM
IP: 178.143.101.–
gna
~ Anonymní uživatel
1891 příspěvků
22. 1. 2021   #7
-
0
-

To je v pohodě, nikdo učený z nebe nespadl.

To :1:3 se týkalo indexování pole. To pole prostě má N prvků a indexy jsou celočíselné. Pokus o formátování realu jako indexu tam nemá smysl. Ve writeln jako formátování výpisu je to vpořádku. 

pole[x:1:3] := neco;  // nene
writeln(y:1:3); // vpoho

Tady to nemáš, tyhle programy jsou vpohodě. Chtěl jsem vidět ten problematický, kde ti něco pořád vrací nulu. (A na vkládání kódu tady používej v editoru tlačítko [<?] ať je to čitelnější.)

K těm desetinným číslům -- V tom prvním programu používáš random bez parametrů, který vrací desetinné číslo 0<=x<1, a random s parametrem, který vrací celé číslo 0<=x<N. V tom je možná to nepochopení jeho fungování.

Pokud chceš desetinné číslo ve vlastním rozsahu, tak si ho můžeš vyrobit násobením nebo dělením čísla získaného z random

random * 10; // nasobim male desetinne cislo
random(10000) / 1000; // delim velke cele cislo
Nahlásit jako SPAM
IP: 213.211.51.–
doma22
~ Anonymní uživatel
94 příspěvků
22. 1. 2021   #8
-
0
-

#7 gna
Ide o program Herna1, konkrétne o subprogram TRETIA HRA, kde mi program nedáva desatinné náhodné čísla, konkrétne 5 vylosovaných, ja totiž chcem, aspoň mám takú predstavu, že práve v treťom podprograme by mi pc mal generovať desatinné čísla s tromi desatinnými číslami v rozsahu od 0 do 10, takže ten prvý program, čo som dal na začiatku bol vlastne upravený výsek z programu Herna1, konkrétne jeho upravená tretia časť, aby generovala desatinné čísla, avšak ak aj vypustím požiadavku na desatinné miesta, tak program Herna1 v tretej časti mi na jeho konci tejto tretej časti, pri len informatívnom súhrne výpisu tipov a vylosovaných čísel ukazuje až 10 čísel, teda päť vylosovaných a tipovaných a zvyšok päť 0, čo samozrejme nechcem, keďže v záverečnom výpise podprogramu chcem vidieť iba vylosované a tipované čísla, ako v subprogramoch PRVA HRA, DRUHA HRA a STVRTA HRA, to je k opisu neželaných veci v programe Herna1. No a ak som to teda pochopil správne, tak zápis desatinného čísla vo forme 1.3, 1:5, 2:8 a tak podobne, môžem využiť v paskale iba pri príkaze write, prípadne writeln, ale ak chcem dosiahnuť desatinné čísla pri generovaní pseudonáhodných čísel musím použiť random * 10; // nasobim male desetinne cislo alebo random(10000) / 1000; // delim velke cele cislo, teda i v programe Herna1, ak chcem aby mi jeho tretia časť generovala desatinné čísla, musím použiť práve spomenutú formu?

Nahlásit jako SPAM
IP: 178.143.101.–
gna
~ Anonymní uživatel
1891 příspěvků
22. 1. 2021   #9
-
0
-

Já nevím, co víc k tomu napsat. Ukaž mi příkaz, který ti nefunguje, napiš co dělá a co cheš, aby dělal a já ti ho opravím.

Nahlásit jako SPAM
IP: 213.211.51.–
MilanL+1
Grafoman
23. 1. 2021   #10
-
0
-

#8 doma22
jsou 2 funkce random přetížené dle způsobu volání

Random - generuje desetinné číslo mezi 0 a 1

Random(číslo) - generue celé číslo v mezi 0 a číslo

tzn tomu musíš přizpůsobit program a generování toho svého čísla

takže máš volbu bud random * max co chceš

také můžeš složit celé číslo + desetiné tzn Random(číslo) + Random

případně generovat celé číslo pomocí z X násobku rozsahu a poté vygenerované číslo dělit X, tzn random(číslo*násobek) / násobek

Nahlásit jako SPAM
IP: 185.112.167.–
doma22
~ Anonymní uživatel
94 příspěvků
25. 1. 2021   #11
-
0
-

#10 MilanL
#9 gna
Ospravedlňujem sa, že reagujem až teraz a veľmi pekne ďakujem za podporu, pomoc a veľkú trpezlivosť i zlaté nervy, čo so mnou máte. Reagujem až teraz, lebo som si potreboval aspoň 2-3 dni oddýchnuť od programovania, aby sa mi takáto práca s obrovskými možnosťami nezhnusila už v začiatku, už pri učení. takže ešte raz sa ospravedlňujem. No a čo sa týka môjho problému, tak vytiahnem časť programu o ktorý mi ide ( je na konci mojej reakcie ). Program negeneruje desatinné čísla v intervale od 0 do 10, čo chcem a pri záverečnom súpise, alebo výpise, volajme to už ako chceme, tak program vypisuje 10 čísel, 5 vylosovaných, 5 tipovaných a zvyšok iba 0, ale ja chcem aby mi program pri záverečnej rekapitulácii uviedol iba vylosované a iba tipované čísla, ktorých je iba 5 ( 5 tipov, 5 vylosovaných ) a otáznik s menšitkom som teraz nepoužil, keďže som kopiroval kód z mojej predchadzajúcej reakcie, nie z paskalu, ale keď budem kopirovať z paskalu, určite ho použijem a ďakujem i za tento tip

program Herna1;

 var vylosovane3:array[1..10] of integer;
 var tip3:array[1..10] of integer;
 var hotovost3,hotovost4,stavka3,vyhra3:integer;
 var cislo3,uspech3:integer;
 var koniec3:string;

  writeln('Dobry vecer');
  writeln();
  writeln('Kolko penazí chcete vymenit za zetóny (min. 30) a stlacte enter: ');
  readln(hotovost3);
  hotovost3:= hotovost3;
  writeln(hotovost3);
  if hotovost3 < 30 then
    writeln('Bohuzial, minimum je 30. Opuste prosím hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Vase zetóny sú');
    writeln(hotovost3);
    writeln('Ak ste pripraveny k hre, dajte stávku.');
    writeln('Minimálna stávka je 30 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka3);
    while (stavka3 < 30) or (stavka3 > hotovost3) do
    begin
      while stavka3 < 30 do
      begin
        writeln('Mali by ste prihodit aspon ', 30 - stavka3);
        writeln('Kolko pridáte: ');
        readln(cislo3);
        stavka3:=stavka3 + cislo3;
      end;
      while stavka3 > hotovost3 do
      begin
        writeln('Tolko nemáte, znizte stávku.');
        writeln('Vase zetóny: ', hotovost3);
        write('Vasa stavka (min. 30) a stlacte enter: ');
        readln(stavka3);
      end;
    end;
    writeln('Stávka ', stavka3,' je OK.');
    hotovost3:=hotovost3 - stavka3;
    writeln('Teraz máte u seba zetónov:', hotovost3);
    for cislo3:=1 to 5 do
    begin
      writeln('Tipnite si ', cislo3 ,'. císlo (0-10) a stlacte enter: ');
      readln(tip3[cislo3]);
    end;
    write('Vase tipy: ');
    for cislo3:=1 to 10 do
      write(tip3[cislo3], ' ');
    writeln();
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech3:=0;
    for cislo3:=1 to 5 do
    begin
      vylosovane3[cislo3]:=random(10);
      write(cislo3, '. cislo: ', vylosovane3[cislo3]);
      if vylosovane3[cislo3]=tip3[cislo3] then begin
        uspech3:=uspech3 + 1;
        writeln(' ANO! -> Uspesnost = ',uspech3,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech3,'. Stlacte enter.');
      readln();
    end;
    write('Vase tipy : ');
    for cislo3:=1 to 5 do
      write(tip3[cislo3], ' ');
    writeln();
    write('Vylosované: ');
    for cislo3:=1 to 5 do
      write(vylosovane3[cislo3], ' ');
    writeln();
    writeln('Uspesnost: ', uspech3);
    case uspech3 of
      5:
      begin
        hotovost3:=hotovost3 + (stavka3*6);
        writeln('Vyhravate sestnásobok stávky = ', stavka3*5);
      end;
      4:
      begin
        hotovost3:=hotovost3 + (stavka3*5);
        writeln('Vyhravate pätnásobok stávky = ', stavka3*5);
      end;
      3:
      begin
        hotovost3:=hotovost3 + (stavka3 div 2);
        writeln('Vyhrávate polovicu zo svojej stávky = ', stavka3 div 2);
      end;
      2:
      begin
        hotovost3:=hotovost3 + (stavka3 div 3);
        writeln('Vyhrávate tretinu zo svojej stávky = ', stavka3 div 3);
      end
      else
        writeln('Ztrácate celu svoju stavku = ', -stavka3);
    end;
    writeln('Vase zetóny: ', hotovost3);
    if hotovost3 < 30 then
    begin
      writeln('Vase zetóny bohuzial nedosahujú stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
    begin
      writeln('Chcete skoncit hru, napiste koniec a stlacte enter.');
      writeln('Pro pokracovanie v hre stlacte iba enter.');
      readln();
      read(koniec3);
    end;
  end;
  until (koniec3 = 'koniec') or (hotovost3 < 30);
  readln();  writeln('Vasa vyhra je dnes');
  writeln(hotovost4);
  writeln('Pre skoncenie programu stlacte enter');
  readln();
 end.

Nahlásit jako SPAM
IP: 178.143.101.–
gna
~ Anonymní uživatel
1891 příspěvků
26. 1. 2021   #12
-
0
-

To je část toho, co už tady je a s desetinnými čísly se tam nepracuje.

Ukaž mi program, kde generuješ desetinná čísla a nefunguje ti to. Pak ti můžeme říct, co děláš špatně.

Nahlásit jako SPAM
IP: 213.211.51.–
doma22
~ Anonymní uživatel
94 příspěvků
26. 1. 2021   #13
-
0
-

#12 gna
no veď o to ide, o tú časť, že cieľ je aby pracovala s desatinnými číslami, a aby pri záverečnom sumáre vylisovaných a tipovaných čísel ukazoval program ( tá istá časť ) iba vylosované a tipované čísla

Nahlásit jako SPAM
IP: 178.143.101.–
gna
~ Anonymní uživatel
1891 příspěvků
26. 1. 2021   #14
-
0
-

Tak na uložení budeš potřebovat datový typ, který zvládá desitnná čísla -- Třeba Real zjevně znáš.

Pak vygeneruješ ta čísla -- máš tady 3 způsoby.

A desetinná čísla jsou z principu nepřesná, tak při porovnávání budeš asi potřebovat nějakou toleranci/zaokrouhlování.

Jinak se na logice toho programu nic nemění.

Nahlásit jako SPAM
IP: 213.211.51.–
doma22
~ Anonymní uživatel
94 příspěvků
27. 1. 2021   #15
-
0
-

#13 doma22#14 gna
Ok program som upravil podľa Vašich rád a program generuje desatinné čísla, i ukazuje už iba v rekapitulácii tipy a vylosované čísla, ale je tu malí zádrhel, že program ukazuje asi všetky desatinné miesta a plán som mal taký, že bude ukazovať iba tri desatinné miesta, neviete čo s tým, keďže zápis :1:3 môžem použiť iba pri write, ale potom mi program vyhadzuje chybu, a to s tým datovým typom sa ospravedlňujem, pri prepise mi to ušlo, keďže som tu hodil pôvodný program, kde som ešte o takých fintičkách neuvažoval

#12 gna
no veď o to ide, o tú časť, že cieľ je aby pracovala s desatinnými číslami, a aby pri záverečnom sumáre vylisovaných a tipovaných čísel ukazoval program ( tá istá časť ) iba vylosované a tipované čísla

Nahlásit jako SPAM
IP: 178.143.101.–
doma22
~ Anonymní uživatel
94 příspěvků
27. 1. 2021   #16
-
0
-

#14 gna
Dobre po istom ako sa povie šprtkaní, všetko ide ako má, už ukazuje i tri desatinné miesta, takže ďakujem za rady a aj za to, že ma trochu necháte sa s tým ako sa povie vyhrať, lebo to je podľa mňa najlepší spôsob ako niekoho niečo naučiť, či poradiť, ak mu dám ako sa povie všetky potrebné nástroje, takže raz veľmi pekne ďakujem za pomoc a len pre zaujímavosť, keďže viem, že také veci sú pre Vás už samozrejmosť iba dodávam finálny program, že ako som si to vlastne predstavoval, ďakujem za pomoc, hádam táto diskusia pomôže aj iným a túto tému z mojej strany uzatváram, ďakujem veľmi pekne:

Program Herna1;

 var vylosovane1,vylosovane2,vylosovane4:array[1..10] of integer;
 var vylosovane3:array[1..10] of real;
 var tip1,tip2,tip4:array[1..10] of integer;
 var tip3:array[1..10] of real;
 var hotovost1,hotovost2,hotovost3,hotovost4,stavka1,stavka2,stavka3,stavka4,vyhra1,vyhra2,vyhra4:integer;
 var cislo1,cislo2,cislo3,cislo4,uspech1,uspech2,uspech3,uspech4:integer;
 var koniec1,koniec2,koniec3,koniec4:string;
 begin
  writeln('Tu si vytvoríme imaginárnú hernu');
  writeln('Budeme tu mat az 4 stoly');
  writeln('Hrác zacne na prvom a v prípade, ze ho hra uz nebude bavit, presunie sa oznamom koniec k druhej hre');
  writeln('Takto pokracuje k poslednej hre, kde ho uz caká iba vychod z herne');
  writeln('Tak podme do herne a nezabúdat stlácat enter po zadaní císla');
  writeln('Pre pokracovanie programu stlacte enter');
  readln();
  writeln('PRVA HRA');
  writeln('Dobry vecer');
  writeln('Vasou úlohov je typnut si správne 10 císel, od jedna do desat');
  writeln('Kolko penazí chcete vymenit za peniaze (min. 20), po zadaní stalcte enter: ');
  readln(hotovost1);
  if hotovost1 < 20 then
    writeln('Bohuzial minimum je 20. Opuste prosim hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Ak ste pripraveny, stavte zetóny a stlacte enter.');
    writeln('Minimálna stávka je 20 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka1);
    while (stavka1 < 20) or (stavka1 > hotovost1) do
    begin
      while stavka1 < 20 do
      begin
        writeln('Mali by ste prihodit aspon ', 20 - stavka1);
        writeln('Zadajte kolko pridáte a stlacte enter: ');
        readln(cislo1);
        stavka1:=stavka1 + cislo1;
      end;
      while stavka1 > hotovost1 do
      begin
        writeln('Tolko nemáte, znizte prosim svoju stávku.');
        writeln('Vasa zetóny: ', hotovost1);
        writeln('Zadajte Vasu stávku a stlacte enter (min. 20): ');
        read(stavka1);
      end;
    end;
    writeln('Stávka ', stavka1,' je v poriadku.');
    hotovost1:=hotovost1 - stavka1;
    writeln('Zostali Vám zetóny:', hotovost1);
    for cislo1:=1 to 10 do
    begin
      writeln('Tipnite si ', cislo1 ,'. císlo (0-10) a stlacte enter: ');
      readln(tip1[cislo1]);
    end;
    writeln('Vase tipy: ');
    for cislo1:=1 to 10 do
      writeln(tip1[cislo1], ' ');
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech1:=0;
    for cislo1:=1 to 10 do
    begin
      vylosovane1[cislo1]:=random(10);
      writeln(cislo1, '. císlo: ', vylosovane1[cislo1]);
      if vylosovane1[cislo1]=tip1[cislo1] then begin
        uspech1:=uspech1 + 1;
        writeln(' ANO! -> Uspesnost = ',uspech1,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech1,'. Stlacte enter.');
      readln();
    end;
    writeln('Vase tipy : ');
    for cislo1:=1 to 10 do
      writeln(tip1[cislo1], ' ');
    writeln('Vylosované: ');
    for cislo1:=1 to 10 do
      writeln(vylosovane1[cislo1], ' ');
    writeln('Uspesnost: ', uspech1);
    case uspech1 of
      10:
      begin
        hotovost1:=hotovost1 + (stavka1*5);
        writeln('Vyhrávate pätnásobok stávky = ', stavka1*5);
      end;
      9:
      begin
        hotovost1:=hotovost1 + (stavka1*4);
        writeln('Vyhrávate stvornásobok stávky = ', stavka1*4);
      end;
      8:
      begin
        hotovost1:=hotovost1 + (stavka1*3);
        writeln('Vyhrávate trojnásobok stávky = ', stavka1*3);
      end;
      7:
      begin
        hotovost1:=hotovost1 + (stavka1*2);
        writeln('Vyhrávate dvojnásobok stávky = ', stavka1*2);
      end;
      6:
      begin
        hotovost1:=hotovost1 + stavka1;
        writeln('Vyhrávate spät svoju stávku = ', stavka1);
      end;
      5:
      begin
        vyhra1 := stavka1 - (stavka1 div 4);
        hotovost1:=hotovost1 + vyhra1;
        writeln('Vyhrávate 3/4 zo svojej stávky = ', vyhra1);
      end;
      4:
      begin
        vyhra1 := stavka1 - (stavka1 div 3);
        hotovost1:=hotovost1 + vyhra1;
        writeln('Vyhrávate 2/3 zo svojej stávky = ', vyhra1);
      end;
      3:
      begin
        hotovost1:=hotovost1 + (stavka1 div 2);
        writeln('Vyhrávate polovicu zo svojej stavky = ', stavka1 div 2);
      end;
      2:
      begin
        hotovost1:=hotovost1 + (stavka1 div 3);
        writeln('Vyhrávate tretinu zo svojej stávky = ', stavka1 div 3);
      end
      else
        writeln('Ztrácate celu stávku = ', -stavka1);
    end;
    writeln('Vase zetóny: ', hotovost1);
    if hotovost1 < 20 then
    begin
      writeln('Vase zetóny nie sú vo vyske stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
     writeln('Ak chcete skoncit hru, napíste koniec a stlacte enter.');
  writeln('Pre pokracovanie stlacte iba samotny enter. ');
  readln();
  read(koniec1);
  end;
  until (koniec1 = 'koniec') or (hotovost1 < 20);
  writeln('Pre pokracovanie programu stlacte enter');
  readln();
  writeln('Teraz si zvysime sancu na vyhru tym,ze budeme typovat iba medzi 0 a 2');
  writeln('DRUHA HRA');
  writeln('Dobry vecer');
  writeln();
  writeln('Kolko penazí chcete vymenit za zetóny (min. 10) a stlacte enter: ');
  readln(hotovost2);
  hotovost2:=hotovost2 + hotovost1;
  writeln(hotovost2);
  if hotovost2 < 10 then
    writeln('Bohuzial, minimum je 10. Opuste prosím hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Vase zetóny sú');
    writeln(hotovost2);
    writeln('Ak ste pripraveny k hre, dajte stávku.');
    writeln('Minimálna stávka je 10 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka2);
    while (stavka2 < 10) or (stavka2 > hotovost2) do
    begin
      while stavka2 < 10 do
      begin
        writeln('Mali by ste prihodit aspon ', 10 - stavka2);
        writeln('Kolko pridáte: ');
        readln(cislo2);
        stavka2:=stavka2 + cislo2;
      end;
      while stavka2 > hotovost2 do
      begin
        writeln('Tolko nemáte, znizte stávku.');
        writeln('Vase zetóny: ', hotovost2);
        writeln('Vasa stavka (min. 10) a stlacte enter: ');
        readln(stavka2);
      end;
    end;
    writeln('Stávka ', stavka2,' je OK.');
    hotovost2:=hotovost2 - stavka2;
    writeln('Teraz máte u seba zetónov:', hotovost2);
    for cislo2:=1 to 10 do
    begin
      writeln('Tipnite si ', cislo2 ,'. císlo (0-2) a stlacte enter: ');
      readln(tip2[cislo2]);
    end;
    writeln('Vase tipy: ');
    for cislo2:=1 to 10 do
      writeln(tip2[cislo2], ' ');
    writeln();
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech2:=0;
    for cislo2:=1 to 10 do
    begin
      vylosovane2[cislo2]:=random(2);
      writeln(cislo2, '. cislo: ', vylosovane2[cislo2]);
      if vylosovane2[cislo2]=tip2[cislo2] then begin
        uspech2:=uspech2 + 1;
        writeln(' ANO! -> Uspesnost = ',uspech2,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech2,'. Stlacte enter.');
      readln();
    end;
    writeln('Vase tipy : ');
    for cislo2:=1 to 10 do
      writeln(tip2[cislo2], ' ');
    writeln();
    writeln('Vylosované: ');
    for cislo2:=1 to 10 do
      writeln(vylosovane2[cislo2], ' ');
    writeln();
    writeln('Uspesnost: ', uspech2);
    case uspech2 of
      10:
      begin
        hotovost2:=hotovost2 + (stavka2*5);
        writeln('Vyhravate pätnásobok stávky = ', stavka2*5);
      end;
      9:
      begin
        hotovost2:=hotovost2 + (stavka2*4);
        writeln('Vyhravate stvornásobok stávky = ', stavka2*4);
      end;
      8:
      begin
        hotovost2:=hotovost2 + (stavka2*3);
        writeln('Vyhrávate trojnásobok stávky = ', stavka2*3);
      end;
      7:
      begin
        hotovost2:=hotovost2 + (stavka2*2);
        writeln('Vyhrávate dvojnásobok stávky = ', stavka2*2);
      end;
      6:
      begin
        hotovost2:=hotovost2 + stavka2;
        writeln('Vyhrávate spät svoju stávku = ', stavka2);
      end;
      5:
      begin
        vyhra2 := stavka2 - (stavka2 div 4);
        hotovost2:=hotovost2 + vyhra2;
        writeln('Vyhrávate 3/4 zo svojej stávky = ', vyhra2);
      end;
      4:
      begin
        vyhra2 := stavka2 - (stavka2 div 3);
        hotovost2:=hotovost2 + vyhra2;
        writeln('Vyhrávate 2/3 zo svojej stávky = ', vyhra2);
      end;
      3:
      begin
        hotovost2:=hotovost2 + (stavka2 div 2);
        writeln('Vyhrávate polovicu zo svojej stávky = ', stavka2 div 2);
      end;
      2:
      begin
        hotovost2:=hotovost2 + (stavka2 div 3);
        writeln('Vyhrávate tretinu zo svojej stávky = ', stavka2 div 3);
      end
      else
        writeln('Ztrácate celu svoju stavku = ', -stavka2);
    end;
    writeln('Vase zetóny: ', hotovost2);
    if hotovost2 < 10 then
    begin
      writeln('Vase zetóny bohuzial nedosahujú stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
    begin
      writeln('Chcete skoncit hru, napiste koniec a stlacte enter.');
      writeln('Pro pokracovanie v hre stlacte iba enter.');
      readln();
      read(koniec2);
    end;
  end;
  until (koniec2 = 'koniec') or (hotovost2 < 10);
  writeln('Pre pokracovanie programu stlacte enter');
  readln();
  writeln('V tretej hre stavime 30 a budeme mat iba 5 tipov, pri com typujeme desatinne cisla s tromi desatinnymi miestami a miesto ciarky sa dá bodka');
  writeln('TRETIA HRA');
  writeln('Dobry vecer');
  writeln();
  writeln('Kolko penazí chcete vymenit za zetóny (min. 30) a stlacte enter: ');
  readln(hotovost3);
  hotovost3:= hotovost3 + hotovost2;
  writeln(hotovost3);
  if hotovost3 < 30 then
    writeln('Bohuzial, minimum je 30. Opuste prosím hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Vase zetóny sú');
    writeln(hotovost3);
    writeln('Ak ste pripraveny k hre, dajte stávku.');
    writeln('Minimálna stávka je 30 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka3);
    while (stavka3 < 30) or (stavka3 > hotovost3) do
    begin
      while stavka3 < 30 do
      begin
        writeln('Mali by ste prihodit aspon ', 30 - stavka3);
        writeln('Kolko pridáte: ');
        readln(cislo3);
        stavka3:=stavka3 + cislo3;
      end;
      while stavka3 > hotovost3 do
      begin
        writeln('Tolko nemáte, znizte stávku.');
        writeln('Vase zetóny: ', hotovost3);
        write('Vasa stavka (min. 30) a stlacte enter: ');
        readln(stavka3);
      end;
    end;
    writeln('Stávka ', stavka3,' je OK.');
    hotovost3:=hotovost3 - stavka3;
    writeln('Teraz máte u seba zetónov:', hotovost3);
    for cislo3:=1 to 5 do
    begin
      writeln('Tipnite si ', cislo3 ,'. císlo (0-10) s tromi desatinnymi miestami, kde miesto ciarky dáte bodku a stlacte enter: ');
      readln(tip3[cislo3]);
    end;
    write('Vase tipy: ');
    for cislo3:=1 to 5 do
      writeln(tip3[cislo3]:1:3, ' ');
    writeln();
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech3:=0;
    for cislo3:=1 to 5 do
    begin
      vylosovane3[cislo3]:=random(10000) / 1000;
      write(cislo3, '. cislo: ', vylosovane3[cislo3]:1:3);
      if vylosovane3[cislo3]=tip3[cislo3] then begin
        uspech3:=uspech3 + 1;
        writeln(' ANO! -> Uspesnost = ',uspech3,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech3,'. Stlacte enter.');
      readln();
    end;
    write('Vase tipy : ');
    for cislo3:=1 to 5 do
      writeln(tip3[cislo3]:1:3, ' ');
    writeln();
    write('Vylosované: ');
    for cislo3:=1 to 5 do
      writeln(vylosovane3[cislo3]:1:3, ' ');
    writeln();
    writeln('Uspesnost: ', uspech3);
    case uspech3 of
      5:
      begin
        hotovost3:=hotovost3 + (stavka3*6);
        writeln('Vyhravate sestnásobok stávky = ', stavka3*5);
      end;
      4:
      begin
        hotovost3:=hotovost3 + (stavka3*5);
        writeln('Vyhravate pätnásobok stávky = ', stavka3*5);
      end;
      3:
      begin
        hotovost3:=hotovost3 + (stavka3 div 2);
        writeln('Vyhrávate polovicu zo svojej stávky = ', stavka3 div 2);
      end;
      2:
      begin
        hotovost3:=hotovost3 + (stavka3 div 3);
        writeln('Vyhrávate tretinu zo svojej stávky = ', stavka3 div 3);
      end
      else
        writeln('Ztrácate celu svoju stavku = ', -stavka3);
    end;
    writeln('Vase zetóny: ', hotovost3);
    if hotovost3 < 30 then
    begin
      writeln('Vase zetóny bohuzial nedosahujú stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
    begin
      writeln('Chcete skoncit hru, napiste koniec a stlacte enter.');
      writeln('Pro pokracovanie v hre stlacte iba enter.');
      readln();
      read(koniec3);
    end;
  end;
  until (koniec3 = 'koniec') or (hotovost3 < 30);
  writeln('Pre pokracovanie programu stlacte enter');
  readln();
  writeln('V poslednej hre stavime 50 a budeme mat iba jeden tip');
  writeln('STVRTA HRA');
  writeln('Dobry vecer');
  writeln();
  writeln('Kolko penazí chcete vymenit za zetóny (min. 50) a stlacte enter: ');
  readln(hotovost4);
  hotovost4:= hotovost4 + hotovost3;
  writeln(hotovost4);
  if hotovost4 < 50 then
    writeln('Bohuzial, minimum je 50. Opuste prosím hernu.')
  else
  repeat
  begin
    Randomize;
    writeln('Vase zetóny sú');
    writeln(hotovost4);
    writeln('Ak ste pripraveny k hre, dajte stávku.');
    writeln('Minimálna stávka je 50 zetónov');
    writeln('Zadajte stávku a stlacte enter: ');
    readln(stavka4);
    while (stavka4 < 50) or (stavka4 > hotovost4) do
    begin
      while stavka4 < 50 do
      begin
        writeln('Mali by ste prihodit aspon ', 50 - stavka4);
        writeln('Kolko pridáte: ');
        readln(cislo4);
        stavka4:=stavka4 + cislo4;
      end;
      while stavka4 > hotovost4 do
      begin
        writeln('Tolko nemáte, znizte stávku.');
        writeln('Vase zetóny: ', hotovost4);
        write('Vasa stavka (min. 30) a stlacte enter: ');
        readln(stavka4);
      end;
    end;
    writeln('Stávka ', stavka4,' je OK.');
    hotovost4:=hotovost4 - stavka4;
    writeln('Teraz máte u seba zetónov:', hotovost4);
    for cislo4:=1 to 1 do
    begin
      writeln('Tipnite si ', cislo4 ,'. císlo (0-10) a stlacte enter: ');
      readln(tip4[cislo4]);
    end;
    write('Vas tip: ');
    for cislo4:=1 to 1 do
      write(tip4[cislo4], ' ');
    writeln();
    writeln('Pre zaciatok losovania stlacte enter: ');
    readln();
    uspech4:=0;
    for cislo4:=1 to 1 do
    begin
      vylosovane4[cislo4]:=random(10);
      write(cislo4, '. cislo: ', vylosovane4[cislo4]);
      if vylosovane4[cislo4]=tip4[cislo4] then begin
        uspech4:=uspech4 + 1;
        writeln(' ANO! -> Uspesnost = ',uspech4,'. Stlacte enter.');
      end
      else
      writeln(' Nic. Uspesnost = ',uspech4,'. Stlacte enter.');
      readln();
    end;
    write('Vase tipy : ');
    for cislo4:=1 to 1 do
      write(tip4[cislo4], ' ');
    writeln();
    write('Vylosované: ');
    for cislo4:=1 to 1 do
      write(vylosovane4[cislo4], ' ');
    writeln();
    writeln('Uspesnost: ', uspech4);
    case uspech4 of
      1:
      begin
        hotovost4:=hotovost4 + (stavka4*10);
        writeln('Vyhravate desatnásobok stávky = ', stavka4*10);
      end
      else
        writeln('Ztrácate celu svoju stavku = ', -stavka4);
    end;
    writeln('Vase zetóny: ', hotovost4);
    if hotovost4 < 50 then
    begin
      writeln('Vase zetóny bohuzial nedosahujú stávkového minima.');
      writeln('Prosím, opuste hru.');
    end
    else
    begin
      writeln('Chcete skoncit hru, napiste koniec a stlacte enter.');
      writeln('Pro pokracovanie v hre stlacte iba enter.');
      readln();
      read(koniec4);
    end;
  end;
  until (koniec4 = 'koniec') or (hotovost4 < 50);
  writeln('Vasa vyhra je dnes');
  writeln(hotovost4);
  writeln('Pre skoncenie programu stlacte enter');
  readln();
 end.
Nahlásit jako SPAM
IP: 178.143.101.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Desatinné čísla — založil Grungy

Desatinné čísla — založil Anonymní uživatel

Nahodne cisla — založil Trebor

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý