“Proszę napisać program liczący miejsca zerowe funkcji kwadratowej i jej deltę. Program ma zawierać funkcje (nie procedurę) pobierąjacą argumenty A,B,C ( ze wzoru Ax^2 + BX + C = 0; czyli np. 3x^2 + 5x + 6 (argumenty to 3,5,6) i zwracającą deltę.”
Żeby lepiej zrozumieć temat najpierw napisałem ten program bez zabawy w funkcje:
program cw7;
uses crt;
var
a,b,c:real;
delta:real;
x1,x2:real;
begin
writeln (‘Program liczacy miejsce zerowe funkcji kwadratowej i jej delte’);
Ale kompletnie nie wiem jak mam to zrobić z użyciem funkcji. Proszę o sugestie jak napisać taki program z użyciem funkcji i wyjaśnienie, bo nie do końca wiem jak ma to wyglądać…
function LiczDelta(a,b,c:real):real;
begin
delta:=b*b-4*a*c;
end;
wywołanie:
delta:=LiczDelta(a,b,c);
Tak a propos jeżeli delta wychodzi ujemna to nadal to jest normalna funkcja kwadratowa z tym że nie ma miejsc zerowych.
Zaś komunikat: “Co ty mi tu pociskasz?” może był by na miejscu przy A=0 (ba nie sprawdzasz tego więc program jest narażony na dzielenie przez zero) wtedy to nie jest równanie kwadratowe , zaś liniowe które też może mieć miejsce zerowe (no chyba że B=0 wtedy wychodzi że x=C, a wtedy jeżeli C=0 to każde x jest miejscem zerowym, jeżeli nie to brak miejsc zerowych).