Free/turbo pascal, VALAKI?
A programomban van egy eljárás ami a maximum kiválasztásának tétele viszont hibás eredményt ad, történetesen a legkisebb értéket.
Egy txt-ben a legtöbb karakterrel rendelkező adatsor karakterszámát szeretném megkapni.
Itt a kód:
Procedure f3(x3:ttomb; db:integer);
var i:integer;
max:integer;
min:integer;
begin
writeln;
writeln('3. feladat:');
i:=2;
max:=length(x3[1].szov);
while i<=db do
begin
if length(x3[i].szov)>=max then max:=length(x3[i].szov);
i:=i+1;
end;
write(max);
end;
Biztos, hogy ez az eljárás hívódik meg?
Biztos van legalább 1 elem a tömbben?
Szia.
Nincs semmi baj az eljárással, turboban müködik (kiegészitve a deklarációs résszel és a főprogrammal)
A következő adatokat adtam meg :
012
0123
01234
Az eredmény 5 lett.
Szerintem a gond a db változó értékevel van, (db<=1 esetén mindig az első szöveg hosszát kapod eredményűl - ha ez a legrövidebb akkor azt).
Nézd meg debuggal (vagy irasd ki db változó értékét), hogy mennyi is az annyi.
Sok sikert.
üdv.
Ja itt a teszt progi :
Program valami ;
Type tomb = record
szov : string ;
end ;
ttomb = array [1..3] of tomb;
Var adat : ttomb ;
Procedure f3(x3:ttomb; db:integer);
var i:integer;
max:integer;
min:integer;
begin
writeln;
writeln('3. feladat:');
i:=2;
max:=length(x3[1].szov);
while i<=db do begin
if length(x3[i].szov)>=max then max:=length(x3[i].szov);
i:=i+1;
end;
write(max);
end ;
Begin
Adat[1].szov:='012';
Adat[2].szov:='0123';
Adat[3].szov:='01234';
f3 (Adat,3);
readln ;
End.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!