Witam
Napisalem programik do rozwiazywania ukladu rownan (1st).
Wczytuje on na poczatku 6 wartosci
Gdy zamiast jakiejs liczby wpisze np. litere wyskakuje blad,
a chcialbym zeby w takim przypadku pojawil sie np. komunikat
informujacy o tym ze wpisalo sie nie to co trzeba...
Jak to zrobic?
Odczytuj do zmiennej tekstowej, a potem użyj Val. W pomocy jest przykład użycia.--Jest jeszcze jeden błąd ... :)
Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.
Zrob to poprzez wewnetrzny kontroler błędu. Jest to tzw. IOResult . Pokaze na przykladzie.
VAR
l1 : integer;
l2 : integer;
BEGIN
Writeln('Podaj pierwsza wartosc: ',l1); {$I-}
Readln(l1);
IF IOResult <> 0 THEN
BEGIN {$I+}
Writeln('Nie podales liczby!');
END ELSE IF IOResult = 0 THEN
BEGIN {$I-}
Writeln('Podaj druga wartosc: ',l2); {$I-}
Readln(l2);
IF IOResult <> 0 THEN
BEGIN {$I+}
Writeln('Nie podales liczby!');
END ELSE IF IOResult = 0 THEN
BEGIN {$I+}
Writeln('Prawdilowo);
itd..
Zasada jest taka:
- nie kasuj {$I-} {$I+}
- moze to byc uciazliwe przy 6 pozycjach
- IOResult = 0 gdy operacja bez bledow
- IOResult <> 0 gdy operacja zawierala bledy
- Mozesz to zrobic w petli albo w zakladki (GOTO);
--Pozdrawiam
Gw
grekkk napisał:
Zrob to poprzez wewnetrzny kontroler błędu. Jest to tzw. IOResult . Pokaze na przykladzie.
.
.
.
Ale komibinacje.
var
Tekst : string;
Liczba : Integer;
begin
Read(Tekst);
Val(Tekst, Liczba, kod);
if kod <> 0 then
Write('Nie podałeś liczby!!!');
...
i możesz to powtórzyć 6 razy (albo w pętelkę).--Jest jeszcze jeden błąd ... :)
Apel: Piszcie w tematach o jaki język programowania chodzi np. : [Delphi], [C++], itp.
Witam
Dzieki za obie odpowiedzi.
Val zadzialal, moze nie Od razu ale zawsze :) {brawo}
Jesli chodzi o IOrezult to jest to chyba troche dlugie,
ale dobrze wiedziec ze cos takiego w ogóle istnieje. :-)