Kako da ispise imaginarni deo

1

Kako da ispise imaginarni deo

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

Nesto sam uzeo malo da radim u C++ i imam problem sa prikazom rezlutata kvadratne jednacine...

#include<iostream> #include<cmath> using namespace std; int main() {    for(;;) {       double a, b, c;       cout << "Unesi koeficijente a, b i c kvadratne jednacine:\n";       cin >> a >> b >> c;       double d = b * b - 4 * a * c;       if(d >= 0) {          double x1 = (-b - sqrt(d)) / (2 * a);          double x2 = (-b + sqrt(d)) / (2 * a);          cout << "x1 = " << x1 << "\nx2 = " << x2 << endl;       }       else {          double re = -b / (2 * a);          double im = fabs(sqrt(d) / (2 * a));          cout << "x1 = " << re << " + (" << im << "i)\nx2 = " << re << " - (" << im << "i)\n";       }    }    return 0; }

Kada unesem nesto da je D<0 (primer 10, 3 i 5)
izbacuje mi nesto ovako...
x1 = -0.15 + (-1.#INDi)
x2 = -0.15 - (-1.#INDi)

kako se ovo radi ?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 23 Jan 2004
  • Poruke: 43

Greška ti je u vađenju korena. Ako ti je D<0 vadiš koren iz negativnog broja i ne dobijaš dobar rezultat. Zbog toga ti je takav ispis.

Zameni
double im = fabs(sqrt(d) / (2 * a));
sa
double im = fabs(sqrt(fabs(d)) / (2 * a));

i radiće kako treba.



offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

ah da.... zaboravo sam da u korenu ne sme da bude negativan broj Smile

Hvala puno

offline
  • meka  Male
  • Počasni građanin
  • Pridružio: 06 Avg 2003
  • Poruke: 811
  • Gde živiš: Novi Sad / Vojvodina

A i for petlja nema break, koliko ja vidim. Da li je prekid sa CTRL+C?

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

pa to sam namerno stavio... break je dugme x Smile
Ranije me smaralo kada pisem pa uradim jedan primer i on "rikne" pa sada uvek kada pisem stavljam neku beskonacnu petlju da radi do besvesti, a kada mi ne treba vise samo udarim na x Smile

offline
  • Pridružio: 23 Jan 2004
  • Poruke: 43

I još jedna stvar... Specijalan slučaj kvadratne jednačine je linearna jednačina, odnosno sličaj kada ti korisnik unese da je a=0. Program ti ne radi dobro u tom slučaju jer deil sa 0.

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

hmmm pa nisam bas neki matematicar.... ali ako je a=0 onda to nije kvadratna...to je kao sto si rekao linearna........
e sad ako je neki matematicar i to proglasio kvadratnom iako od kvadrata nema ni k onda me blago receno zabole Smile
hvala na sugestiji ali linearne me nisu ni zanimale

offline
  • meka  Male
  • Počasni građanin
  • Pridružio: 06 Avg 2003
  • Poruke: 811
  • Gde živiš: Novi Sad / Vojvodina

Svemirko, kvadratna jednačina je a * x ^ 2 + b * x + c. Kako a može biti bilo koji broj, zašto ne bi bio i 0? To, po definiciji, jeste kvadratna jednačina (tačnije, možeš je posmatrati kao takvu).

offline
  • Pridružio: 24 Mar 2004
  • Poruke: 3962
  • Gde živiš: Zemun

Ma kapiram ja sta vi pricate ali mene taj oblik ne zanima....
ovo mi je trebalo da ako izgresim "pravu" kvadratnu mogu da proverim rezultat, a ne da prodajem program.... jednostavno u razlomku ne sme da stoji 0 pa je ne treba ni pisati u ovom slucaju

offline
  • Pridružio: 23 Jan 2004
  • Poruke: 43

OK, ako ti ne treba, samo sam hteo da skrenem pažnju...

Inače, kao što sam rekao, linearna jednačina je specijalan slučaju kvadratne jednačine, isto kao što je kvadratna specijalan slučaj kubne jednačine i td. Ako ti za tvoje potrebe ne treba tako nešto, OK, ali lepo je uraditi sve kad si već većinu posla uradio Very Happy

Ko je trenutno na forumu
 

Ukupno su 768 korisnika na forumu :: 29 registrovanih, 5 sakrivenih i 734 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Aleksandar Tomić, amaterSRB, Apok, aramis s, Areal84, Bane san, bojanM84, caesar2, cicus91, darkangel2, Drug pukovnik, ikan, indja, kuntalo, ladro, MaksicZoran, MB120mm, miodrag3, moldway, MORAVA1, Profica, Recce, ruseskij, S-lash, Toni, vukm, yrraf, Zerajic