Program na liczenie pierwiastkow funkcji kwadratowej, lecz nie działa poprawnie... W ogole nie liczy pierwiastkow. poza tym, jezeli delta jest dodatnia, w ogole nie wykonuje obliczen.
#include #include using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main() {
float a,b,c,d,p,r,s1,s2,x0,x1,x2;
cout<<"Podaj 3 wartosci funkcji kwadratowej (a,b,c)"< cin>>a; cin>>b; cin>>c; d=(b*b)-(4*a*c);
if (d=0) { x0=-b/(2*a); cout<<"Rozwiazanie : "< } else
if (d>0) { x1=(-b-sqrt(d))/(2*a); x2=(-b+sqrt(d))/(2*a); cout<<"Rozwiazaniaaaaa : "< }
return 0; }
MeHowZ
Piszesz, że nie liczy pierwiastków - ten program w ogóle się nie kompiluje.. I nie wiem, czy zdajesz sobie sprawę, ale przy ujemnej delcie rozwiązania istnieją tylko w zbiorze liczb zespolonych - nie przedstawisz ich za pomocą float (ani innych prymitywnych typów). Kolejna uwaga dotyczy if(d=0). Po pierwsze, porównanie zapisuje się przy użyciu dwóch znaków =, czyli if(d==0), po drugie nie powinno się w ogóle używać porównania dla liczb zmiennopozycyjnych. if(d=0) przypisuje wartość 0 do d, po czym sprawdza czy d jest różne od 0 - w tym wypadku nie jest, więc nie wejdzie do tego if'a. Tu masz działającą wersję.
I nie wiem, czy zdajesz sobie sprawę, ale przy ujemnej delcie rozwiązania istnieją tylko w zbiorze liczb zespolonych - nie przedstawisz ich za pomocą float (ani innych prymitywnych typów).
Kolejna uwaga dotyczy if(d=0). Po pierwsze, porównanie zapisuje się przy użyciu dwóch znaków =, czyli if(d==0), po drugie nie powinno się w ogóle używać porównania dla liczb zmiennopozycyjnych. if(d=0) przypisuje wartość 0 do d, po czym sprawdza czy d jest różne od 0 - w tym wypadku nie jest, więc nie wejdzie do tego if'a. Tu masz działającą wersję.