Pascal, Mi lehet a hiba? Hol keressem?
A cél az hogy mondja meg a program hányszor fagyott meg a víz, nem összekeverendő hogy hányszor volt negatív érték.
Nos valamiért sokszor jól lefut, de sokszor nem...
Program fagyas;
Uses crt;
Const n=31;
Var tomb:array[1..n] of Longint;
fagyott: Longint;
i: Byte;
fagy: Boolean;
Begin
Clrscr;
Randomize;
fagy:=False;
Writeln('Januari homersekleti adatok elemzese!');
For i:=1 to n do
Begin
Repeat
tomb[1]:=Random(30)-10;
Until tomb[1]<>0;
tomb[i]:=Random(30)-10;
Write (tomb[i]:4);
If (fagy) and (tomb[i]<=0) Then fagyott:=fagyott+1;
fagy:=tomb[i]>0;
End;
Writeln;
Writeln('Fagyasok: ',fagyott);
Readkey;
End.
Nem tudom mi lehet a hiba...
Szia.
Igen most már szerintem, jó, legalábbis nekem ment.
Egy pár megjegyzés a prg-hez :
fagyott:=0; helyett mivel boolean ezért fagyott:=True; vagy fagyott:=False; (De ha a következőt megfogadod akkor ez elhagyható)
Ez a kódrészlet elég kusza én átirnám :
If tomb[1]<0
Then
Begin
fagyott:=true;
inc(megfagyott);
End
Else
fagyott:=false;
egy ilyenre :
fagyott:=tomb[1]<=0; {itt értéket adsz a változónak, tehát a prg elején az értékadás elhagyható }
if fagyott then inc (megfagyott) ;
illetve nálam nem tudni mért igen furcsa véletlen számokat generált (62000-es értékeket sőt nagyobbakat is Borland Pascal, Turbo Pascal) ézért megforditottam a matemetikát és igy már jó volt a generálás : tomb[i]:=-10+Random(20);
Sok sikert.
Üdv.
Hát ilyen 'randa' kódot már régen láttam :(
A kis és nagybetűk 'helytelen' használata egy dolog. A repeat .. until helyett miért nem while .. do, a tömbnek miért longint ?????? és a szóköz égeti a kezed ?
Szóköz nálam van csak bemásoláskor van ez, hogy nem helyezi el normálisan a bekezdéseket.
Egyébként nem teljesen jó a kód, mivel:
Példával mutatnám be: 1 3 -1 0 -1 2 4 0
No ugye 1 nem fagyott 3 nem fagyott -1 fagyott 0 nem fagyott -1 fagyott 1 nem 4 nem 0 fagyott
fagyasok szama: 3
Valahogy ezt kéne normálisan lekódolni
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!