Kezdőoldal » Számítástechnika » Programozás » Mi a hiba a lotto programomban?

MarkoG kérdése:

Mi a hiba a lotto programomban?

Figyelt kérdés
valamiért nem tudok kilépni belőle, hol hibázhattam?

2012. szept. 11. 20:06
 1/7 A kérdező kommentje:
Free pascal-ban programoztam
2012. szept. 11. 20:06
 2/7 A kérdező kommentje:

program loto;

uses crt;

label return;

var

a,b,c,d,e, ujra:longint;

begin

clrscr;

return: writeln('5os lotto szamaid');

repeat;

randomize;

a:=random(90)+1;

b:=random(90)+1;

c:=random(90)+1;

d:=random(90)+1;

e:=random(90)+1;

until (a<>b) or (a<>b)....(d<>e);


wirteln(a, ' ', b, ' ',c,' ',d, ' ', e);

readln;

if ujra=1 then

readln(ujra);

goto return;

readln;

end.


( a hosszú kifejtést amelyben mi ne legyen egyenlő mivel az biztos jó volt, más a gond)

2012. szept. 11. 20:17
 3/7 anonim válasza:

esetleg ha kell scriptben.


<script>


function rendez(tomb) {

for (j=0; j<tomb.length-1; j++) {

minind = j;

for (i=j+1; i< tomb.length; i++) {

if (tomb[i] < tomb[minind]) {

minind = i;

}

}

if (minind != j) {

temp = tomb[j];

tomb[j] = tomb[minind];

tomb[minind] = temp;

}

}

return tomb;

}


function bennevan(mit, miben) {

i = 0;

while (i < miben.length && miben[i] != mit) {

i++;

}

return i < miben.length;

}


function sorsol(mennyibol, hanyat) {

huzott_szamok = Array();

do {

szam = Math.floor(Math.random()*mennyibol)+1;

if (!bennevan(szam, huzott_szamok)) {

huzott_szamok.push(szam);

}

} while (huzott_szamok.length < hanyat);

return rendez(huzott_szamok);

}


document.write(sorsol(90, 5));



</script>

2012. szept. 11. 20:43
Hasznos számodra ez a válasz?
 4/7 coopper ***** válasza:

Szia.


1. A pascal strukturált programnyelv, goto-t nem nagyon használunk benne


2. Először megvizsgálod, aztán bekéred ? Nem forditva kellene ?


Illetve mivel az if then ága csak a readln (ujra)-ra vonatkozik, és az ujra változónak nem adtál kezdőértéket (nagy valószinűség szerint nem 1-lesz) ezért nem tudod beadni az ujra változót, viszont mindig ugrasz :

if ujra=1 then

readln(ujra);


Valahogy igy :


Writeln ('Mégegyszer ? (Igen=1)');

readln(ujra);

if ujra=1 then goto ....


De mint irtam a goto-t felejtsd el ird át, do while-be az egészet.


Sok sikert.

Üdv.

2012. szept. 11. 20:50
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:
while do-val sokkal jobb köszönöm :)
2012. szept. 11. 21:27
 6/7 anonim ***** válasza:

"( a hosszú kifejtést amelyben mi ne legyen egyenlő mivel az biztos jó volt, más a gond)"

(a<>b) or (a<>b) ... 2x a<>b, nem valami értelmes ...

Egyébként nem jó mert mindegyiknek egyszerre kell teljesülni ezért and kell or helyett. Or-al egy szám lehet 2x is, próbáld ki random(90)+1 helyett random(6)+1-ot így biztos hamar szembetűnik.

Az a randomize "szerencsésebb" lenne cikluson kívül.

2012. szept. 11. 22:22
Hasznos számodra ez a válasz?
 7/7 ejbenjaro ***** válasza:
Egy példa Skandináv lottóra: [link]
2012. szept. 12. 08:05
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!