Să se realizeze un program pentru calculul rădăcinilor ecuaţiei de gradul II folosind o funcţie ai carei parametrii (coeficienţii ecuaţiei) vor fi apelaţi prin pointer şi prin referinţă.
Acest program trebuie realizat in C++
Răspunsuri la întrebare
Răspuns:
Ți-am făcut în c++ codul pentru problema cerută.
Explicație:
Am luat d pe post de delta, pe care îl știm drept b^2-4ac.
Apoi am pus condițiile în funcție de delta, astfel când <0 nu avem solutii reale, cand e ==0 avem solutia unica de forma (-b/2a), iar cand e >0 avem solutiile x1, x2.
#include <iostream>
#include <math.h>
using namespace std;
float a, b, c, d, x1, x2;
int main()
{
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"c="; cin>>c;
d=b*b-4*a*c;
if(d<0)
cout<<"Nu are solutii reale";
else if(d==0)
cout<<"Solutia este "<<(-b/(2*a));
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
cout<<"Solutiile ecuatiei sunt: "<<x1<<" si "<<x2;
}
return 0;
}
Aici varianta cu funcție:
#include <iostream>
#include <math.h>
using namespace std;
float a, b, c, d, x1, x2;
void fct (float a, float b, float c)
{
float d;
d=b*b-4*a*c;
if(d<0)
cout<<"Nu are solutii reale";
else if(d==0)
cout<<"Solutia este "<<(-b/(2*a));
else
{
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
cout<<"Solutiile ecuatiei sunt: "<<x1<<" si "<<x2;
}
}
int main()
{
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"c="; cin>>c;
fct(a,b,c);
return 0;
}