[Pascal] Zapobiec bledom...

0

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?

0

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.

0

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 &lt&gt 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 &lt&gt 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 &lt&gt 0 gdy operacja zawierala bledy
  • Mozesz to zrobic w petli albo w zakladki (GOTO);
    --Pozdrawiam
    Gw
0

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 &lt&gt 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.

0

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. :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1