Poslao: 14 Jan 2007 19:56
|
offline
- Svemirko
- Legendarni građanin
- 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.
|
|
Poslao: 15 Jan 2007 02:05
|
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.
|
|
|
|
Poslao: 15 Jan 2007 02:40
|
offline
- Svemirko
- Legendarni građanin
- Pridružio: 24 Mar 2004
- Poruke: 3962
- Gde živiš: Zemun
|
ah da.... zaboravo sam da u korenu ne sme da bude negativan broj
Hvala puno
|
|
|
|
Poslao: 15 Jan 2007 11:49
|
offline
- meka
- 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?
|
|
|
|
Poslao: 16 Jan 2007 00:37
|
offline
- Svemirko
- Legendarni građanin
- Pridružio: 24 Mar 2004
- Poruke: 3962
- Gde živiš: Zemun
|
pa to sam namerno stavio... break je dugme x
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
|
|
|
|
Poslao: 16 Jan 2007 05:56
|
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.
|
|
|
|
Poslao: 16 Jan 2007 07:37
|
offline
- Svemirko
- Legendarni građanin
- 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
hvala na sugestiji ali linearne me nisu ni zanimale
|
|
|
|
Poslao: 16 Jan 2007 09:00
|
offline
- meka
- 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).
|
|
|
|
Poslao: 16 Jan 2007 17:21
|
offline
- Svemirko
- Legendarni građanin
- 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
|
|
|
|
Poslao: 17 Jan 2007 03:27
|
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
|
|
|
|