Witam :)
Jestem początkującą osobą, w dodatku to mój pierwszy post także proszę o wyrozumiałość :))
Napisałam program, który po podaniu sumy liczb a i b oraz ich iloczynu, ma podać wartość liczby a i b. Oto kod:
program Liczby;
var
il,s : real;
delta : real;
begin
writeln('Podaj iloczyn liczb a i b');
readln(il);
writeln('Podaj sume liczb a i b');
readln(s);
delta:= ((s*s) - (4*il));
if delta >= 0 then
writeln ('Twoje liczby to:', (-s+(sqrt(delta))/(-2)):0:2, (-s-(sqrt(delta))/(-2)) :0:2)
else Writeln ('Podales bledne liczby');
readln;
end.
Program kompiluje się bez najmniejszego problemu jednak liczby a i b są niepoprawne.
Zmodyfikowałam troszkę kod na taki:
program Liczby;
var
il,s : real;
delta : real;
d : real;
begin
writeln('Podaj iloczyn liczb a i b');
readln(il);
writeln('Podaj sume liczb a i b');
readln(s);
delta:= ((s*s) - (4*il));
d := sqrt(delta);
if delta >= 0 then
writeln ('Twoje liczby to:', ((-s+d)/(-2)):0:2, ((-s-d)/(-2)):0:2)
else Writeln ('Podales bledne liczby');
readln;
end.
i ten już oblicza liczby poprawnie :)
Zastanawia mnie jednak fakt, dlaczego pierwszy kod błędnie oblicza liczby, skoro wykonany jest analogicznie tylko przy pomocy jednej zmiennej mniej niż w programie drugim. Czy ktoś mógłby mi napisać dlaczego tak jest?
Z góry dziękuję za odpowiedź, pozdrawiam
Magda :)
dodanie znaczników <code class="delphi"> - furious programming