#include <iostream>
#include "wielomian.h"
#include "parabola.h"
#include "linia.h"

using namespace std;

void wyswietl_pierwiastki(int i,double x1,double x2)
{
	switch(i)
	{
	case 0:
		cout << "Brak miejsc zerowych" << endl;
		break;
	case 1:
		cout << "Jedno miejsce zerowe x1= " << x1 << endl;
		break;
	case 2:
		cout << "Dwa pierwiastki x1=" << x1 << " x2=" << x2 << endl;
		break;
	default:
		cout << "Cos nie tak";	
	}
}


int main()
{
	double wsp[]={ 1,2,0,4,5 };
	Wielomian w1(wsp,4);
	cout << "Wielomian w1 : " << w1 << endl;

	Parabola p1(1,1,1);
	cout << "Parabola p1 : " << p1 << endl;
	cout << "Parabola p1 * 3 " << p1*3 << endl;
	cout << "Pochodna 1 stopnia paraboli p1 : "  << *p1 << endl;
	cout << "Pochodna 2 stopnia paraboli p1 : "  << p1.Pochodna(2) << endl;
	cout << "Ekstremum = " << p1.Extremum() << endl;
 
	double x1,x2;
	int i=p1.Pierwiastki(&x1,&x2);

	cout << "Parabola p1 : " << p1 << endl;
	wyswietl_pierwiastki(i,x1,x2);

	Parabola p2(1,-4,4);
	cout << "Parabola p2 : " << p2 << endl;
	i=p2.Pierwiastki(&x1,&x2);
	wyswietl_pierwiastki(i,x1,x2);

	Parabola p3(1,-3,2);
	cout << "Parabola p3 : " << p3 << endl;
	i=p3.Pierwiastki(&x1,&x2);
	wyswietl_pierwiastki(i,x1,x2);

	Parabola p4=p1;
	cout << "Parabola p4 = p1 (test konstr. kopiujacego) : " << p4 << endl;
	
	Linia l1;
	cout << "Linia l1 (domyslnie) : " << l1 << endl;

	Linia l2(1,1);
	cout << "Linia l2 : " << l2 << endl;
	cout << "Miejsce zerowe = " << l2.MiejsceZerowe() << endl;
	cout << "Pochodna 1 stopnia : " << l2.Pochodna() << endl;
	cout << "Pochodna 2 stopnia : " << **l2 << endl;

	return 0;

}
