Problem z formułą obliczeniową w c++


(Sujekkoks) #1

Witam

Jako, że dopiero zaczynam przygodę z programowaniem( 1 rok studiów) mam pewien problem.

Do napisania mam program obliczający miejsca zerowe funkcji: x^2 +b=0

Napisałem coś takiego:

include

include

using namespace std;

int main()

{

float a,b;

cout << "Podaj liczbe a="; cin >> a;</p> <p>cout << endl <<"Podaj liczbe b="; cin >> b;</p> <p>if(a!=0)</p> <p>cout << endl << "x1="<</p> <p>else</p> <p>cout << endl << "Brak rozwiazan"<

cout << endl<<"To koniec programu - ";

system("pause");

return 0;//koniec programu

}

Wszystko wydaje się dobrze, nie wyskakują mi żadne błędy, funkcja else jest poprawna lecz wynik obliczeń po if zawsze wychodzi taki:

x1=-1. #IND

1052ED48

x2=-1. #IND

Proszę o pomoc.


(matty24) #2

Najważniejsza sprawa to brak sprawdzenia, czy wyrażenie które pierwiastkujesz jest większe lub równe zero.

Druga rzecz, to podwójne wywołanie cout w jednej linii. Przez to wyświetla ci się adres (u Ciebie 1052ED48).

#include 

#include 

using namespace std;


int main()

{

float a,b,w;

cout << "Podaj liczbe a="; cin >> a;

cout << endl <<"Podaj liczbe b="; cin >> b;

if(a!=0)

{

	w=-b/a;

	if (w>=0)

	{

		cout << endl << "x1="<
		cout << endl << "x2="<<-1*sqrt(w)<
	}

	else 

		cout << endl << "Brak rozwiazan"<
}

else

cout << endl << "Brak rozwiazan"<

cout << endl<<"To koniec programu - ";

system("pause");

return 0;//koniec programu

}

(Sujekkoks) #3

Dzięki Ci :slight_smile: już poprawiłem i działa :slight_smile: