Witam moim zadaniem jest policzenie funkcji kwadratowej albo liniowej oba te algorytmy działają poprawnie problem pojawia się kiedy gdy ktoś wpisze dane w których a=0 przy liczeniu funkcji kwadratowej to chcę aby mój program automatycznie liczył wtedy funkcje liniową próbowałem coś zrobić ale nijak to działa :/
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
int main() {
float a,b,x,a1,b1,c1,delta,x1,x2,x0,p,q,a2,b2,x3;
int liczba;
cout<<"Wybierz co chcesz liczyc \n 1.Funkcja liniowa \n 2.Funkcja kwadratowa"<<endl;
cin>>liczba;
switch(liczba){
case 1:
cout<<"Podaj a"<<endl;
cin>>a;
cout<<"Podaj b"<<endl;
cin>>b;
if(a!=0){
x=-b/a;
cout<<x<<endl;
}
else if(b!=0)
cout<<"Rownianie sprzeczne"<<endl;
else
cout<<"Nieskończenie wiele rozwiązań"<<endl;
break;
case 2:
cout<<"Podaj a"<<endl;
cin>>a1;
cout<<"Podaj b"<<endl;
cin>>b1;
cout<<"Podaj c"<<endl;
cin>>c1;
if(a1!=0){
delta=pow(b1,2)-4*a1*c1;
cout<<delta<<endl;
if(delta>0){
x1=((-b)-sqrt(delta))/2*a;
x2=((-b)+sqrt(delta))/2*a;
cout<<"Nasze rownanie kwadratowe ma 2 miejsca zerowe" <<endl;
cout<<"Pierwszemu miejscu zerowemu odpowiada wartosc"<<x1<<endl;
cout<<"Drugiemu miejscu zerowemu odpowiada wartosc"<<x2<<endl;
}
else if (delta=0){
x0=(-b)/2*a;
cout<<"Nasze rownanie kwadratowe ma jedno miejsce zerowe" <<endl;
cout<<"Jest nim"<<x0<<endl;
}
else
cout<<"Nasze rownanie kwadratowe nie ma miejsce zerowych"<<endl;
}
else
cout<<"To równanie jest liniowe a jego rozwiązanie to:"<<endl;
b1=a2;
c1=b2;
if(a2!=0){
x3=-b2/a2;
cout<<x3<<endl;
}
else if(b!=0)
cout<<"Rownianie sprzeczne"<<endl;
else
cout<<"Nieskończenie wiele rozwiązań"<<endl;
break;
default:
cout<<"Podaj liczbe 1 albo 2"<<endl;
}
system("Pause");
return 0;
}