Witam waszystkich. Otóż pisze z moim problem który dotyczy funkcji IF i pętli REPEAT
- Funkcja If
Tworze program na równanie kwadratowe, "wszystko" już prawie zrobiłem ale problem podczas wpisywania liter.
Funkcja Begin początkowego programu wygląda tak:
...
Begin
repeat
Clrscr;
TextColor(3);
WriteLn('Podaj liczbe a');
ReadLn(a)
WriteLn('Podaj liczbe b');
ReadLn(b)
WriteLn('Podaj liczbe c');
ReadLn(c)
....
Głównie rozchodzi mi się o to że gdy wpisuje jakąś litere i po zatwierdzeniu ją (wciśnięciu klawisza Enter) wyskakuj error "Exitcode = 106"
Co w takim raze musiałbym wprowadzić za funkcje, aby program wyświetlił wiadomość by powtórzyć program, ponieważ wpisaną zły znak/liczbę?
Tego samego tyczy się gdy wpisze liczbe 0 pod (a) - Exitcode = 200
Próbowałem coś z funkcją if, ale tylko pogarszałem sytuacje.
- Pętla repeat
Jeśli chodzi o pętle repeat, to problem tkwi w momencie powtarzania programu.
Kod częściowo wygląda mniej więcej tak (to samo co na górze + to):
...
If (delta<0) then
Begin
WriteLn('Odpowiedź:Nie ma miejsc zerowych');
Delay(1500);
WriteLn('');
WriteLn('Chcesz powtorzyc program?');
WriteLn('Enter - Tak');
WriteLn('Esc - Nie');
End;
...
until readkey=#27;
End.
Chodzi o to że gdy następuje wybór czy chcemy powtórzyć program, musze wcisnąć dwa razy Enter aby uruchomić program lub Enter a potem Esc żeby go zamknąć.
Coś czytałem że w funkcji Repeat nie może być Begin i End; ale bez tego moj program bedzie bez użyteczny, ponieważ w przypadku usunięcia Begin i End; cały program się zlewa i zamiast zatrzymać i skończyć program na funkcji If (delta<0) on rozpoczyna działanie na funckje If (delta>0) i If (delta=0)
Wiem że się rozpisałem ale czekam na jakąkolwiek pomoc.
Pozdrawiam