Zadanie z C# (lub C++): Stwórz program, który obliczy deltę oraz miejsca zerowe funkcji kwadratowej. Na początku wypisz do czego służy program i podaj wzór funkcji, następnie poproś użytkownika o wprowadzenie danych (dane liczbowe mają mieć typ double), poinformuj o następnych krokach i wzorach, które wykorzystujesz. Wartości miejsc zerowych zaokrąglij do dwóch miejsc po przecinku. Pamiętaj, aby zachować własności funkcji kwadratowej i rozpatrz różne przypadki delty.

Zadanie Z C Lub C Stwórz Program Który Obliczy Deltę Oraz Miejsca Zerowe Funkcji Kwadratowej Na Początku Wypisz Do Czego Służy Program I Podaj Wzór Funkcji Nast class=
Zadanie Z C Lub C Stwórz Program Który Obliczy Deltę Oraz Miejsca Zerowe Funkcji Kwadratowej Na Początku Wypisz Do Czego Służy Program I Podaj Wzór Funkcji Nast class=

Odpowiedź :

Moja propozycja programu:

#include <iostream>

#include <iomanip>

#include <math.h>

#include <complex>

using namespace std;

int main()

{

double a=0.,b,c;

complex<double> delta;

complex<double> x1,x2;

cout<<"Program oblicza pierwiastki funkcji kwadratowej"<<endl;

cout<<"o wzorze ogólnym: f(x)=ax^2+bx+c"<<endl;

while(a==0.){

cout<<"Podaj a różne od zera:\t";

cin>>a;

}

cout<<"Podaj b:\t";

cin>>b;

cout<<"Podaj c:\t";

cin>>c;

cout<<"obliczam deltę ze wzoru: b^2-4ac\n";

delta=pow(b,2.)-4.*a*c;

cout<<"Delta jest równa:"<<real(delta)<<endl;

cout<<"Obliczam miejsca zerowe ze wzoru:"<<endl;

cout<<"x1=(-b-sqrt(delta))/(2a)"<<endl;

cout<<"oraz"<<endl;

cout<<"x2=(-b+sqrt(delta))/(2a)"<<endl;

x1=(-b+sqrt(delta))/(2.*a);

x2=(-b-sqrt(delta))/(2.*a);

cout.setf(std::ios_base::fixed, std::ios_base::floatfield);

cout.precision(2);

if(real(delta)>0.){

cout<<"x1="<<real(x1)<<endl;

cout<<"x2="<<real(x2)<<endl;

}

else

{

 if(real(delta)<0.)

 {

 cout<<"Nie ma rozwiązań rzeczywistych, ale są zespolone:"<<endl;

 cout<<"x1="<<real(x1)<<"+("<<imag(x1)<<")i"<<endl;

 cout<<"x1="<<real(x2)<<"+("<<imag(x2)<<")i"<<endl;

 }

 else

 {

 cout<<"x1=x2="<<real(x1)<<endl;

 }

}

return 0;

Wyświetla pierwiastki zgodnie z poleceniem, ale to nie jest dobra droga. Może się zdarzyć, że pierwiastek jest mniejszy od 0.01 i wtedy mamy już poważny błąd zaokrąglenia. Lepiej jest trzymać np. dwie cyfry znaczące (a najlepiej 15 :))

pozdrawiam