Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Stránky: 1
Dobrý den,
začínám s Pascalem a nevím, jak ošetřit, aby uživatel programu nezadal špatně proměnnou a program nezhavaroval.
Například: var cislo:integer; uživatel ale zadá písmeno, odentruje a je hotovo.
Za odpověď děkuji.
Offline
ahoj ↑ zn:
Toto asi nejlépe nějak takto:
Var VypisCisla :String;
Cislo :Integer;
ChybovyKod :Integer;
Begin
Readln(VypisCisla);
Val(VypisCisla,Cislo,CHybovyKod);
If CHybovyKod=0 then Writeln ('Bylo zadano cislo '+VypisCisla)
else Writeln ('Spatne zadani');
end;
Offline
↑ Eratosthenes:
Ahoj a děkuji.
Netušil jsem, že se dá pracovat s chybovým kódem.
To Val(VypisCisla,Cislo,CHybovyKod); mi převádí vložené znaky na číslo a tím si ochráním, že se to nekousne?
Musím o tom ještě přemýšlet, ale funguje to, to jsem si zkusil.
Offline
ahoj ↑ zn:,
ano, je to tak. Funkce Val převádí řetězec na číslo. Pokud je převod korektní, je v chybovém kódu nula. Jestliže není, je tam číslo větší, podle kterého se dá vystopovat, co je tam špatně. Ty kódy se určitě dají najít někde v helpu.
Offline
Stránky: 1