#include <iostream.h>
#include "ClassFlache.hpp"
#include <new.h>

void NoMemory();

long main()
{
float Xu        = 0.0;
float Xo        = 0.0;
long  Xstep     = 0;
float * Params  = NULL;
long  Grad      = 0;
long  TGrad     = 0;
long  Grad2     = 0;
KurvenFlache * A;
float i = 0;


    set_new_handler(NoMemory);

/*s*/ /* Eingabe */
    cout<<endl<<"Bitte geben Sie den Grad Ihrer Funktion an\t:";
    cin>>Grad;
    cout<<endl<<"Bitte geben Sie den unteren X Wert Ihrer Funktion an\t:";
    cin>>Xu;
    cout<<endl<<"Bitte geben Sie den oberen X Wert Ihrer Funktion an\t:";
    cin>>Xo;
    cout<<endl<<"Bitte geben Sie die Anzahl der Unterteilungen an \t:";
    cin>>Xstep;

    Params = new float[Grad+1];  // Speicherbereich für Abfrage allocieren

    Grad2 = 0;
    TGrad = Grad;
    while(Grad2<=Grad)  // Alle zahlen einlesen. Bei einer Funktion 127 Grades müssen 128 Werte eingelesen werden.
    {
        // Keine eingabesicherheit
        cout<<"\nBitte geben Sie den Wert für x^"<<TGrad--<<" ein\t\t\t:";
        cin>>Params[Grad2];   // Wert für x^grad2 speichern
        Grad2++;
    }
/*e*/


    A = new KurvenFlache;
    A->Init(Grad,Xu,Xo,Xstep,Params);

//    A->CreateList();
//    cout<<A->FlachenBerechnungFromList()<<endl;
//    cout<<A->FlachenBerechnungAbsFromList()<<endl;
    cout<<A->FlachenBerechnung()<<endl;
    cout<<A->FlachenBerechnungAbs()<<endl;

    delete A;
}



/*s*/ /* NoMemory */
void NoMemory()
{

    cout<<"Es konnte kein Speicher allociert werden"<<endl;
    cout<<"Programm wurde abnormal beendet!"<<endl;
    exit(20); // Beendet das Programm und gibt ein paar Resourcen frei
}
/*e*/

