#11 gna
Neviem, skúsim, ono je zase pravda, že cca pred 2 - 3 mesiacmi mi úplne spadol windows a musel som obnovovať registre cez technickú podporu mikrosoftu a že antivirak mi potom našiel i trojana, takže možno túto šarapatu robí OS, keďže to mohlo mať i po obnovení systému a vyčistenia od vírusu i nejaké dôsledky, je to možné, že program od paskalu je ok, neviem no, skúsim teda ešte tie korekcie
Příspěvky odeslané z IP adresy 178.143.101.–
#9 gna
Tak do hĺbky odborné materiále ( kniha i podklady z interetu ), ktorú som kúpil ,a ktoré som zohnal z netu pri read nejde, takže diky za hlbšie vysvetlenie read, upravil som prvý program podľa Vašich rád, ale stále mi nechce ukončiť cyklus s príkazom koniec, fakt neviem ako na to, už som zúfalí, keďže dva dni to upravujem, mažem a pridávam riadky, ale stále nie a nie ukončiť cyklus príkazom koniec, dávam tu najčerstvejšie upravený program, ktorý plní zásobník, ale nechce zobrať príkaz koniec, prosím Vás kde je tam ešte chyba ( Rušenie potom ):
Program Zasobnik1;
type Nick = ^Naboj;
Naboj = record
ostry : char;
dalsi : Nick;
end;
var zasobnik, strela : Nick;
i : integer;
koniec : string;
akcia : char;
begin
{vytvorenie zásobniku}
zasobnik:=nil;
writeln('Stlacte klávesu a potom enter. Strelba: s, Plnenie: p.');
repeat
readln(akcia);
case akcia of
's':
begin
if zasobnik = nil then
writeln('Nick, más prázdny zásobnik.')
else
begin
writeln('Strielame.');
strela:=zasobnik;
zasobnik:=zasobnik^.dalsi;
dispose(strela);
end;
end;
'p':
begin
writeln('Plníme.');
new(strela);
strela^.dalsi:=zasobnik;
strela^.ostry:='l';
zasobnik:=strela;
end;
else writeln('Vyckavame.');
end;
writeln();
write('Stav zásobniku: ');
strela:=zasobnik;
while strela <> nil do
begin
write(strela^.ostry);
strela:=strela^.dalsi;
end;
writeln();
writeln('Ak chcete skoncit, napiste konec a stlacte enter');
readln(koniec);
until koniec = 'koniec';
{rusenie zásobniku}
strela:=zasobnik;
while strela <> nil do
begin
zasobnik:=zasobnik^.dalsi;
dispose(strela);
strela:=zasobnik;
end;
writeln('Zostalo nieco v zásobniku?');
write('Stav zásobniku: ');
strela:=zasobnik;
while strela <> nil do
begin
write(strela^.ostry);
strela:=strela^.dalsi;
end;
#7 gna
Viem aký je rozdiel medzi read a readln, read znamená čítať, teda pc si riadok prečíta a tým to hasne, na monitore nič nevidí ani nič neukladám, readln zase ukladá, čaká na príkaz, prípadne prečíta, čo som napísal keďže ln je skratka pre line, teda riadok. Problém je v tom, že ako náhle vypustím pôvodný zápis a nahradím ho zápisom readln(ukoncit/koniec); tak buď sa mi cyklus repeat - until neukončí vôbec a do nekonečna rieši frontu/zásobník, alebo sa to občas nejakým zázrakom, neviem akým, ukončí po asi 15 - 20 krát zadaní slova koniec, rušenie momentálne neriešme, keďže asi som veľmi nepochopil o čom ste hovorili, ale to nie je podľa mňa základný problém programu, ako prvé by som aspoň podľa mňa mal vyriešiť frontu/zásobník.
#4 gna
Ja som v reakcii pozeral na ten druhý program, kde je miesto koniec ukoncit, ale vlastne tie isté korekcie platia aj pre prvý program, dobre som to pochopil?
#4 gna
Aha už rozumiem, riadok read(ukoncit); upraviť na readln(ukoncit); pochopil som to správne? A ten readln() som tam dal preto, že ak som ho tam nemal, tak mi nechcel pc ukončiť cyklus until, nebudem po odstránení tohto readln mať zase ten problém? No a pri rušení, zase aby to malo vôbec zmysel, tak by som to mal umiestniť na začiatok programu, nie na koniec, pochopil som to správne? Ešte som sa chcel spýtať, či ak zadám pri rušení 0, tak sa mi fronta zruší, proste do fronty zadávam čísla, je to správne?
#4 gna
Aha už rozumiem, riadok read(ukoncit); upraviť na readln(ukoncit); pochopil som to správne? A ten readln() som tam dal preto, že ak som ho tam nemal, tak mi nechcel pc ukončiť cyklus until, nebudem po odstránení tohto readln mať zase ten problém? No a pri rušení, zase aby to malo vôbec zmysel, tak by som to mal umiestniť na začiatok programu, nie na koniec, pochopil som to správne? Ešte som sa chcel spýtať, či ak zadám pri rušení 0, tak sa mi fronta zruší, proste do fronty zadávam čísla, je to správne?
Keď by sa niekto našiel, čo by my vedel poradiť, pri dynamickej datovej štruktúre. Pochopil som, že pri statickej datovej štruktúre je už pri tvorbe programu presne určené aká bude veľká, kým pri dynamickej sa o veľkosti rozhoduje pri behu programu. No mám tu však dva príklady na dynamickú, ale ani jeden nerobí čo má. Programy sa dajú kompilovať, teda preložiť, ale robia si čo chcú. Nedávajú frontu, nerušia frontu, nedávajú zásobník, proste okrem skončenia a vypísania hlásení, nerobia nič. No ja neviem prečo to robia, nechápem kde je chyba ani ako ju napraviť, bol by som rád ak by mi niekto helfol s oboma programami. Tu je PRVÝ PROGRAM:
Program Zasobnik1;
type Nick = ^Naboj;
Naboj = record
ostry : char;
dalsi : Nick;
end;
var zasobnik, strela : Nick;
i : integer;
koniec : string;
akcia : char;
begin
{vytvorenie zásobniku}
zasobnik:=nil;
repeat
writeln('Stlacte klávesu a potom enter. Strelba: s, Plnenie: p.');
readln(akcia);
case akcia of
's':
begin
if zasobnik = nil then
writeln('Nick, más prázdny zásobnik.')
else
begin
writeln('Strielame.');
strela:=zasobnik;
zasobnik:=zasobnik^.dalsi;
dispose(strela);
end;
end;
'p':
begin
writeln('Plníme.');
new(strela);
strela^.dalsi:=zasobnik;
strela^.ostry:='l';
zasobnik:=strela;
end;
else writeln('Vyckavame.');
end;
writeln();
write('Stav zásobniku: ');
strela:=zasobnik;
while strela <> nil do
begin
write(strela^.ostry);
strela:=strela^.dalsi;
end;
writeln();
writeln('Ak chcete skoncit, napitte konec a stlacte enter');
writeln('Pre pokracovanie stlacte iba enter');
readln;
read(koniec);
until koniec = 'koniec';
{rusenie zásobniku}
strela:=zasobnik;
while strela <> nil do
begin
zasobnik:=zasobnik^.dalsi;
dispose(strela);
strela:=zasobnik;
end;
writeln('Zostalo nieco v zásobniku?');
write('Stav zásobniku: ');
strela:=zasobnik;
while strela <> nil do
begin
write(strela^.ostry);
strela:=strela^.dalsi;
end;
dispose(zasobnik);
writeln('Pre skoncenie programu stlacte enter');
readln;
end.
a tu je DRUHÝ PROGRAM
Program Obchod1;
type Nick = ^Clovek;
Clovek = record
meno: integer;
dalsi: Nick;
end;
var zaciatok, koniec: Nick;
PlatiaciClovek: Nick;
ukoncit:String;
akcia : char;
poradie: integer;
begin
new(zaciatok);
koniec:=zaciatok;
poradie:=1;
repeat
writeln('Stlacte klávesu a stlacte enter. Novy vstup: n, Vystup: v.');
readln(akcia);
case akcia of
'n':
begin
koniec^.meno:=poradie;
poradie:=poradie+1;
new(koniec^.dalsi);
koniec:=koniec^.dalsi;
end;
'v':
begin
if zaciatok = koniec then
writeln('fronta je prazdná.')
else
begin
PlatiaciClovek:=zaciatok;
zaciatok:=zaciatok^.dalsi;
dispose(PlatiaciClovek);
end;
end
else writeln('Fronta stoji.');
end;
write('Fronta: ');
if zaciatok <> koniec then
begin
PlatiaciClovek:=zaciatok;
repeat
writeln(PlatiaciClovek^.meno, ' ');
PlatiaciClovek:=PlatiaciClovek^.dalsi;
until PlatiaciClovek = koniec;
end;
writeln('Ak chcete skoncit, napiste koniec a stlacte enter, ak chcete iba pokracovat stlacte iba enter');
readln();
read(ukoncit);
until ukoncit = 'koniec';
{rusenie fronty}
if zaciatok <> koniec then
begin
PlatiaciClovek:=zaciatok;
repeat
PlatiaciClovek:=zaciatok;
zaciatok:=zaciatok^.dalsi;
dispose(PlatiaciClovek);
PlatiaciClovek:=zaciatok;
until PlatiaciClovek = koniec;
end;
writeln('Zostal niekdo v fronte?');
write('Fronta: ');
if zaciatok <> koniec then
begin
PlatiaciClovek:=zaciatok;
repeat
write(PlatiaciClovek^.meno, ' ');
PlatiaciClovek:=PlatiaciClovek^.dalsi;
until PlatiaciClovek = koniec;
end;
readln;
dispose(zaciatok);
writeln('Pre skoncenie programu stlacte enter');
readln();
end.
Obidva programy sú na príklad dynamickej datovej štruktúry
#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.
#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
#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.
#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?
#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
#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.
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;