#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;

	for (double x = -5.0; x <= 5.0; x += 1.0)
		cout << "f(" << x << ")=" << w1.ObliczWartosc(x) << endl;


	Parabola p1(1,-1,-2);
	cout << "Parabola p1 : " << p1 << endl;
	cout << "Ekstremum = " << p1.Extremum() << endl;
	double x1, x2;
	int i = p1.Pierwiastki(&x1, &x2);
	wyswietl_pierwiastki(i, x1, x2);

	for (double x = -5.0; x <= 5.0; x += 1.0)
		cout << "f(" << x << ")=" << p1.ObliczWartosc(x) << endl;

	Linia l1;
	cout << "Linia l1 (domyslnie) : " << l1 << endl;

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

	for (double x = -5.0; x <= 5.0; x += 1.0)
		cout << "f(" << x << ")=" << l2.ObliczWartosc(x) << endl;

	return 0;

}
