Ée lehetne ezt valahogy rövidíteni? (Pascal)
while (n<>'0') do begin
write('nev+evszam a kivant osszeg megtekintesehez, pl marti2015: '); readln(n);
if (n='marti2011') then writeln('marti2011: ',marti[1]);
if (n='marti2012') then writeln('marti2012: ',marti[2]);
if (n='marti2013') then writeln('marti2013: ',marti[3]);
if (n='marti2014') then writeln('marti2014: ',marti[4]);
if (n='marti2015') then writeln('marti2015: ',marti[5]);
if (n='gabor2011') then writeln('gabor2011: ',gabor[1]);
if (n='gabor2012') then writeln('gabor2012: ',gabor[2]);
if (n='gabor2013') then writeln('gabor2013: ',gabor[3]);
if (n='gabor2014') then writeln('gabor2014: ',gabor[4]);
if (n='gabor2015') then writeln('gabor2015: ',gabor[5]);
writeln;
end;
if n='0' then write('nyomjon ENTER-t a kilepeshez');
readln;
Kezdetnek az if-erdő helyett használj case-t:
#2: case-nél tudtommal nem lehet nem sorszámozható típust használni, és itt erről van szó.
....
if n='0' then write('nyomjon ENTER-t a kilepeshez');
readln;
Ez tetszik, akkor jutsz ide, ha n='0', de azért biztos ami biztos, ellenőrzöd. De ha valami csuda folytán mégse az, akkor sincs baj: Pukk, kilép, csak nem kér Entert.
***
Hibakezelés nuku, de neked is maradjon feladat:
while n<>'0' do begin
write('nev+evszam a kivant osszeg megtekintesehez, pl marti2015: ');
ReadLn(n); i := ord(n[9])-48;
case upcase(n[1]) of
'M': Writeln('Marti ', 2010+i, ': ', marti[i]);
'G': Writeln('Gabor ', 2010+i, ': ', gabor[i]);
'0': WriteLn('Vége!');
else WriteLn('Nem értem!');
end;
end;
Write('nyomjon ENTER-t a kilepeshez'); ReadLn;
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!