Pascalban segítene valaki?
Még régebben csináltam ezt a programot(habár egy kis segítséggel), és azt szeretném-, kérdezni, hogy lehetne megcsinálni a legegyszerűbben, hogy a a tippelő ne írhassa többször ugyanazt a számot, és a gép se írja többször ugyanazt a számot, és ha a tippelő nem a feltételnek megfelelően írja be a számot(pl 90-ig lehet de ő 91-et ír be vagy 0-át amit uyge nem lehet, akkor ne megyen tovább a következő számra amit tippelni szeretnénk, hanem kérje újra azzal a "kifogással", hogy a szám túl nagy/kicsi .
program lotto;
var veletlen,c,i:integer;
tipp:array [1 .. 90] of integer;
begin
for i:= 1 to 5 do
begin
write(i, '. szam: ');
readln(tipp[i]);
if tipp[i] < 1 then writeln('Irj be nagyobbat!')
else if tipp[i] > 99 then writeln('Irj be kisebbet!')
else
end;
writeln('A nyero szamok:');
randomize;
for c:=1 to 5 do
begin
veletlen:=random(99)+1;
write(veletlen:5);
end;
end.
,,l 90-ig lehet de ő 91-et ír be vagy 0-át amit uyge nem lehet, akkor ne megyen tovább a következő számra amit tippelni szeretnénk, hanem kérje újra azzal a "kifogással", hogy a szám túl nagy/kicsi . " -ezt már sikerült megoldanom egy repeat-until ciklussal
Az eddgi válaszokat köszönöm :)
tabaki kollegának tartoztam egy halmazos megoldással ezért:
program Lotto_halmaz;
type Halmaz = set of 1..90;
var Stipp, SHuzas : Halmaz;
i, Talalat : byte;
Szam : integer;
Hiba : Boolean;
begin
Randomize;
for i := 1 to 5 do
begin
repeat
Hiba := False;
Write(i, '. szam: ');
ReadLn(Szam);
if not(szam in [1..90]) then
begin
WriteLn('A szam nem megfelelo !');
Hiba := True;
end;
until (not (szam in Stipp)) and (not hiba);
Stipp := Stipp + [szam];
end;
i := 1;
while i < 6 do
begin
repeat
Szam := Random(90) + 1;
until not (Szam in Shuzas) ;
Shuzas := SHuzas + [szam];
Inc(i)
end;
Talalat := 0;
Write(#10#13 + 'Tippek: ');
for i := 1 to 90 do if i in Stipp then Write(i:3);
Write(#10#13 + 'Sorsolas: ');
for i := 1 to 90 do if i in Shuzas then Write(i:3);
Write(#10#13 + 'Eltalalt szamok: ');
for i := 1 to 90 do if (i in Shuzas) and (i in Stipp) then
begin
Write(i:3);
Inc(Talalat);
end;
Write(#10#13 + 'Talalatok szama: ', Talalat:3);
ReadLn;
end.
Hát a két halmozon alapuló programomat :) Már az elsőnél sem értettem a DiretX és az osztályok hogy keverednek az utolsókig széttagolt programomhoz utána pedig tabaki kollega kétdimenziós tömbjének a lényegét sem értetted meg.
Direkt azért írtam halmazokkal, hogy erről is lássam a véleményed - ja és egy régi adósságom is törlesszem - és nincs is nagyon elterjedve - sajnos.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!