z pętli możemy zapewnić sobie na dwa sposoby: albo ustalić, że jakieś specyficzne dane oznaczają, że chcemy zakończyć pracę, albo za każdym razem pytać użytkownika, czy chce skończyć pracę, czy pracować dalej.
IC Z E NI E
3.44
program cw3_44;
{ Program oblicza pierwiastki rownan kwadratowych }
{ az do podania A-O. }
{ Katalog r3_09 : 3_44.pas }
var
A, B, C : Real;
Delta, XI, X2 : Real;
begin
repeat
Writeln ('Podaj współczynniki równania kwadratowego.');
Write ('Podaj A: '); Readln (A);
if (A<>0) then
begin
Write ('Podaj B: '); Readln (B);
Write ('Podaj C: '); Readln (C);
Delta Sqr(B)-4*A*C; if (Delta<0) then
Writeln (‘Równanie nie ma pierwiastków rzeczywistych') else
if (Delta-O) then begin
XI -B/(2*A>;
Writeln ('Równanie ma jeden pierwiastek rzeczywisty:
XI:10:5);
end
else
begin
XI :- (-B-Sqrt(Delta))/(2*A);
X2 :- (-B+Sqrt(Delta))/(2*A);
Writeln ('Równanie ma dwa pierwiastki rzeczywiste: ',
XI:10:5, ',', X2:10:S);
end;
Writeln;
end;
until (A-O); end.
Zauważ, że wstawiliśmy w pętli warunek sprawdzający, czy A jest zerowe, w taki sposób, by po podaniu zerowego A nie trzeba było podawać kolejnych danych. Program w poprzedniej wersji (z ćwiczenia 3.26) nie miał żadnych zabezpieczeń poprawności •■■.'pisanych danych. Wczytaj go raz jeszcze i zobacz, jakie obliczenia wykonuje dla A = 0. Czy przekonuje Cię to do konieczności sprawdzania poprawności wpisanych przez użytkownika danych?