Zacznę od tego że, robię równania kwadratowe na funkcjach. Program uruchamia się ale nie wyświetla tego co powinien, dla przykładu jeśli delta jest mniejsza od zera to powinien wyświetlić się komunikat o tym, że równanie nie ma pierwiastków, a wyświetla się wynik taki jakby delta była równa 0. Wydaje mi się, że to może być błąd w nawiasach, lecz nie jestem pewny ponieważ dopiero zaczynam programować i się tego uczyć. Dane które pojawiają się żle to :komunikat dla delty<0, wynik dla delty==0 wyświetla się zawsze nawet jeśli delta jest ujemna lub dodatnia, nie wyświetla się wynik x1 oraz x2. Niżej załączam kod programu i mam prośbę, aby ktoś pomógł mi znależć ewentualny błąd w kodzie, lub po prostu błąd zapisu
#include <iostream>
#include <math.h>
using namespace std;
int del (int a,int b,int c,int delta)
{
delta=b*b-4*a*c;
cout<<"Delta wynosi "<<delta<<endl;
}
int obliczaniex(int b, int a, int x)
{
x=-b/(2*a);
cout<<endl;
cout<<"X wynosi "<<x<<endl;
}
int obliczaniex1 (int b,int delta,int a,int x1)
{
x1= (-b-sqrt(delta))/(2*a);
cout<<"x1 wynosi "<<x1;
}
int obliczaniex2 (int x2,int pom,int x1)
{
x2=pom/x1;
cout<<"x2 wynosi "<<x2<<endl;
}
int obliczaniexx2 (int x2,int b,int delta,int a)
{
x2= (-b+sqrt(delta))/(2*a);
cout<<"X2 wynosi"<<x2;
}
int obliczaniexx1 (int x1,int pom,int x2)
{
x1=pom/x2;
cout<<"x1 wynosi "<<x1;
}
int main ()
{
int a,b,c,pom,x1,x2,delta,x;
cout<<"Program wykonuje funkcje kwadratowa "<<endl;
cout<<"Podaj wartosc a "<<endl;
cin>>a;
cout<<"Podaj wartosc b "<<endl;
cin>>b;
cout<<"Podaj wartosc c "<<endl;
cin>>c;
if (a==0)
{
cout<<"To nie jest rownanie kwadratowe"<<endl;
return 0;
}
else
{
del (a,b,c,delta);
if (delta<0)
{
cout<<"Rownanie nie ma pierwiastkow "<<endl;
}
else
{
if (delta==0)
{
obliczaniex (b,a,x);
}
else
{
pom=c/a;
if (b>0)
{
obliczaniex1 (b,delta,a,x1);
obliczaniex2 (x2,pom,x1);
}
else
{
obliczaniexx2 (x2,b,delta,a);
obliczaniexx1 (x1,pom,x2);
}
}
}
}
cout<<"x1 wynosi "<< x1<<endl<<"x2 wynosi "<< x2<<endl;