Pascal prosím pomoc !

Programovacie jazyky, rady, poradňa...
vavrinec
Novice
Novice
Príspevky: 4
Registrovaný: 01 máj 2013, 10:50

Pascal prosím pomoc !

Príspevok od používateľa vavrinec »

Zistite, ktorý súčet bodov pri hode dvoch kociek padá častejšie – 7 alebo 8. Simulujte ľubovoľný počet hodov dvoma kockami. moje riešenie ktoré je chybné nájdite mi prosím niekto chybu... :

Kód: Vybrať všetko

program hodi;
uses crt;
var i,t,v,nah,a,b,c,d,e: integer;
begin
randomize;
for i:=1 to 10  do
begin
nah:=random(6)+1;
a:=random(6)+1;
d:=a+nah;
write(d);
end;
v:=0;
if d= 7 and 8 then inc(v);
writeln('Cisla sa vyskituju  ',v, ' krat');
readln;
end.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pascal prosím pomoc !

Príspevok od používateľa audiotrack »

tam je viac chýb. Od gramatických (Cisla sa vyskituju...) cez syntaktické

Kód: Vybrať všetko

if d= 7 and 8 then inc(v);
až po logické. Najprv si v hlave premysli ako by si to riešil keby ti niekto dá takú úlohu, a potom to prepíš do pascalu. Ale použi jeho syntax a nevymýšlaj si zápisy podmienok ako sa ti zachce. A tiež ak chceš porovnať dva javy, že ktorý nastane častejšie, nemôžeš ich v podmienke spojiť do jedno A ZÁROVEŇ druhé, lebo oba naraz nenastanú nikdy ;) (tým nechcem povedať že tam má byť or, majú to byť dve podmienky)

inak možno by si si mal prečítať ešte zadanie, lebo podľa toho výstupu a toho čo sa tam snažíš robiť vyzerá, že si mu neporozumel
vavrinec
Novice
Novice
Príspevky: 4
Registrovaný: 01 máj 2013, 10:50

Re: Pascal prosím pomoc !

Príspevok od používateľa vavrinec »

skúšal som aj s or nefunguje... program má hodiť kockami čo aj hádže a potom má hody zrátať a nájsť 7 a 8 čo nerobí neviem prečo vytvoril som rôzne riešenia asi 3 zväčša z obmenami a nič tak prosím pomoc... hrabe mi z toho... a chyby ako v rýchlosti... :(
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pascal prosím pomoc !

Príspevok od používateľa audiotrack »

veď som aj dal do zátvorky že or tam tiež nemá byť, má tam byť druhá podmienka. A tiež píšem že si nepochopil zadaniu. Má nájsť čo padá častejšie. Tak to nemôžeš dať do jednej podmienky a ak padne 7 alebo ak padne 8 tak zvýšiť počítadlo. To nájdeš koľkokrát padla sedmička a osmička spolu, ale nevieš ktoré viac. Musíš si to v dvoch podmienkach rátať. V jednej rátaš sedmičky, v druhej rátaš osmičky. A potom porovnáš ktorých bolo viac
vavrinec
Novice
Novice
Príspevky: 4
Registrovaný: 01 máj 2013, 10:50

Re: Pascal prosím pomoc !

Príspevok od používateľa vavrinec »

pomohlo ďakujem babral som sa s tým a nechcelo ísť dnes už 15 príklad ta mi je z toho zle... :mrgreen:
program hodi;
uses crt;
var i,t,v,nah,a,b,c,d,e: integer;
begin
randomize;
for i:=1 to 1000 do
begin
nah:=random(6)+1;
a:=random(6)+1;
d:=a+nah;
write(d);
if d= 7 then inc(v);
if d= 8 then inc(e);
end;
writeln('Cisla sa vyskituju 7: ',v, ' a 8:',e,' krat');
readln;

môže byť?
end.
dykeer
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 102
Registrovaný: 02 jan 2011, 21:21
Kontaktovať používateľa:

Re: Pascal prosím pomoc !

Príspevok od používateľa dykeer »

Dajme tomu, až na to, že na začiatku premenným v,e priraď nulu. Lebo príkaz inc navyšuje hodnotu o 1, ale musí mať nejakú počiatočnú.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pascal prosím pomoc !

Príspevok od používateľa audiotrack »

Keby som bol učiteľ, máš to za 4. Hlavne kvôli tej gramatickej chybe na ktorú som ťa už upozornil, úprave, a názvom a počtom premenných: i,t,v,nah,a,b,c,d,e. Bohužial za 5 to nemôže byť, lebo ti to funguje.
S-player
Light Star
Light Star
Príspevky: 277
Registrovaný: 23 júl 2011, 22:30

Re: Pascal prosím pomoc !

Príspevok od používateľa S-player »

Tak tie premenné si naozaj vychytal. Ešte zopár písmen a máš tam celú abecedu. Neviem čo budeš robiť potom... :D
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Pascal prosím pomoc !

Príspevok od používateľa audiotrack »

karteziánsky súčin abecedy :D
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Re: Pascal prosím pomoc !

Príspevok od používateľa Gregi »

A co takto trochu upravene?

Kód: Vybrať všetko

program KOCKY;
uses Crt;
var
  i,sedem,osem,hod: Word;

BEGIN
  ClrScr;
  Randomize;
  for i := 0 to 999 do begin
    hod := Random(11) + 2;
    if hod = 7 then
      inc(sedem)
    else
      if hod = 8 then
        inc(osem);
  end;
  Write('7: ',sedem,'8: ':8,osem);

END.
Fabo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6810
Registrovaný: 16 nov 2007, 17:23
Bydlisko: 's Chravenhache
Kontaktovať používateľa:

Re: Pascal prosím pomoc !

Príspevok od používateľa Fabo »

Je to lepšie. Najprv si ale určite vynuluj premenné, a ten random na hody kockami ti bude vychádzať inak, daj to radšej na dvakrát po šesť
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Re: Pascal prosím pomoc !

Príspevok od používateľa Gregi »

Fabo napísal:Je to lepšie. Najprv si ale určite vynuluj premenné, a ten random na hody kockami ti bude vychádzať inak, daj to radšej na dvakrát po šesť
Turbo Pascal 7 si pri inicializacii maze vsetky premenne. Ale ano, dobrym zvykom je premenne inicializovat na zaciatku programu.
Ten random je takto kratsi. Problem by bol, ak by znela dodatocna otazka, kolko padlo na tej ktorej kocke. Tam sa nam hodnoty stratili.
Ja idem, ak sa da. Vzdy cestou minimalizacie vysledneho kodu i rychlosti. (Da sa este cosi zlepsit? Okrem zrusenia kniznice Crt)
Fabo
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6810
Registrovaný: 16 nov 2007, 17:23
Bydlisko: 's Chravenhache
Kontaktovať používateľa:

Re: Pascal prosím pomoc !

Príspevok od používateľa Fabo »

Zlozvykov sa treba zbaviť kým sa zakorenia :-)

Problém s randomom je ten, že to nebude vychádzať, priebeh pravdepodobnosti výsledkov je rôzny medzi random(12) a random(6) + random(6). Ostatne presne nájsť ten rozdiel je cieľom úlohy.
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Re: Pascal prosím pomoc !

Príspevok od používateľa Gregi »

Mas pravdu. Urobil som si testovacie vzorky a porovnal ich. Percentualne(pomer) to vychadza priblizne na rovnako, no pocetne su tam uplne ine hodnoty. Takze pouzit random pre kazdu kocku zvlast. Beriem spat :wink:
Ohladne inicializacie premennych na zaciatku je to u mna tak, ze okrem Pascalu sa to snazim dodrziavat.
Napísať odpoveď