Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Üdv , valaki fel tudná irni nekem Delphi be ? (programot)

500
ax(négyzet)+bx+c egyenlő 0
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Felsőoktatás / Informatika

Válaszok

1
A komponens működésének alapja a másodfokú egyenlet megoldó képlete. A képlet A, B, C tagjainak értékét a komponens megfelelő nevű property-jében adhatjuk meg.
Az eredményt a Calculate eljárás meghívásával kapjuk meg.

procedure Calculate(var r: TSecFormResult);

Az eredményt az eljárásnak paraméterként megadott, TSecFormResult típusú változóban kapjuk vissza.

TSecFormResult = record
x1: Extended;
x2: Extended;
ResIsAvailable: Boolean;
end;

Ha az egyenletnek létezik megoldása, akkor a két gyököt az x1 és x2 tagokban kapjuk meg, a ResIsAvailable értéke pedig igaz, ezzel jelezve, hogy van megoldás. Ha nincs megoldás, akkor a ResIsAvailable értéke hamis, és az x1, x2 egyaránt 0 értéket tartalmaz. A komponens Calculate eljárásában a megoldó képletet használjuk fel.

Disc:=Sqr(FB)-4*FA*FC;
if (Disc>=0) and (FA>0) then begin
r.x1:=(-FB+Sqrt(Disc))/(2*FA);
r.x2:=(-FB-Sqrt(Disc))/(2*FA);
r.ResIsAvailable:=True;
end;

Egy másodfokú egyenletnek akkor nincs megoldása, ha a diszkrimináns (gyökjel alatti rész) értéke kisebb 0-nál, vagy ha az A tag értéke 0.

0