pascal
pascal
Cawte ludkovia. Mam taku otazocku, ze ako v pascale sa kontroluju vstupy, teda ked mam a: integer a zadam a12 aby mi nespadol program ale aby mi mi pokracoval dalej a znova ma vyzval na vlozenie hodnoty
Resp ze ci read , alebo readln vraca nejaku hodnotu pri uspesnom nacitani vstupu. Dik
-
audiotrack
VIP
- Príspevky: 25958
- Registrovaný: 09 sep 2005, 18:39
- Kontaktovať používateľa:
1. možnosť (načítanie vstupu ako string, pokúsime sa ho previesť cez funkciu val() na integer. Ak sa podarí, code bude rovné 0, ak sa nepodarí, code bude > 0 /konkrétne pozícia kde nastala pri prevode chyba, čiže prvý nečíselný znak/):
2. možnosť (cez chránený blok try-except):
Kód: Vybrať všetko
Var
pom : String ;
a, Code : Integer ;
begin
while TRUE do begin
writeln('zadaj celociselne a:');
ReadLn(pom) ;
Val(pom, a, Code) ;
if Code = 0 then
break ;
WriteLn(a, ' nie je celociselne, zadaj znova');
end ;
2. možnosť (cez chránený blok try-except):
alebo tiez takto: 
Kód: Vybrať všetko
uses crt;
var a:integer;
chyba:boolean;
begin
clrscr;
repeat
write('Vloz celociselnu hodnotu: ');
{$I-} readln(a); {$I+}
chyba:=IOresult<>0;
if chyba then writeln('Chyba vstupu! ZNOVU!');
until not chyba;
writeln(a);
readkey;
end.