Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // #include "Polynom.h"
- #include <stdarg.h> // für va_list a, va_start(a,anzahl), va_next(a, typ von ...), va_end(a)
- // in typ Funktion(int anzahl,...) => Variable Anzahl von Parametern
- #include <iostream> // Input per std::cin>>.. & Output per std::cout<<.., ..<<std::endl;
- using namespace std; // für cin>>.., cout<<.., ..<<endl; ohne std:: davor
- // Polynom.h
- /* Polynom
- f(x) = [Summe, i=0 bis n] a_i * x^i
- = a_0 + a_1 * x + a_2 * x^2 + ... + a_(n-1) * x^(n-1) + a_n * x^n
- = a_0 + x * (a_1 + x * (a_2 + x * (...(a_(n-1) + x * a_(n))...))) (Horner-Schema)
- Grad: Als Grad des Polynoms wird der höchste Exponent n bezeichnet,
- für den der Koeffizient a_n des Monoms a_n * x^n nicht null ist.
- Dieser Koeffizient heißt Leitkoeffizient. => Grad = max{ n | a_n != 0}
- f(x)=0 => Grad(f)=-(unendlich), Nullpolynom
- f(x)=a_0, a_0 != 0 => Grad(f)=0, konstante Funktion
- f(x)=a_0 + a_1 * x, a1!=0 => Grad(f)=1, lineare Funktionen
- Grad(f)=2 => quadratische Funktion; Grad(f)=3 => kubische Funktion; Grad(f)=4 => quartische Funktion
- Ableitung f'(x) von [Summe, i=0 bis n] a_i * x^i = [Summe, i=1 bis n] i * a_i * x^(i-1)
- = a_1 + 2 * a_2 * x + 3 * a_3 * x^2 + ... + (n-1) * a_(n-1) * x^(n-2) + n * a_n * x^(n-1)
- Integral: a<=b: aS^b f(x) dx = F(b) - F(a); a>b: aS^b f(x) dx = -(bS^a f(x) fx) = -(F(a) - F(b))
- Implementierung:
- - Koeffizienten a_i in einem Array a speichern, s.d. a_i * x^i ^= a[i]
- - dazu noch grad für grad; -8 ^= -(unendlich);
- */
- class Polynom {
- private:
- int grad;
- // int groesse; => if (grad != -8) -> groesse=grad+1; else [if grad==-8]-> groesse=1;
- double* a;
- public:
- Polynom(); // Default-Konstruktor (Nullpolynom)
- Polynom(int x, double b[]); // 1. Konstruktor
- Polynom(int x,...); // 2. Konstruktor
- Polynom(const Polynom& g); // Copy-Konstruktor
- ~Polynom(); // Destruktor
- int get_grad(); //-8 ^= -(unendlich);
- void AusgabeG(); // a_0 * x^0 + a_1 *x^1 + ... + a_n * x^n, inkl. 0 * x^i
- void AusgabeGU(); // a_n * x^n + ... + a_1 * x^1 + a_0 * x^0, inkl. 0 * x^i
- void Ausgabe(); // a_0 + a_1 * x + ... + a_n * x^n, sofern a_i != 0
- void AusgabeU(); // a_n * x^n + ... + a_1 * x + a_0, sofern a_i != 0
- bool gleich(Polynom g); // if (f==g)?
- bool ungleich(Polynom g); // if (f!=g)?
- bool Achsensymmetrisch(); // Achsensymmetrisch zur y-Achse; a_0 * x^0 + a_2 * x^2 + ... + a_(2k) * x^(2k)
- bool Punktsymmetrisch(); // Punktsymmtrisch zum Ursprung; a_1 * x^1 + a_3 * x^3 + ... + a_(2k+1) * x^(2k+1)
- double AuswertungT(double u); // triviale/einfache/gewöhnliche Auswertung
- double Auswertung(double u); // Auswertung nach Horner-Schema
- Polynom Addition(Polynom g); // f+g (=g+f)
- Polynom Minus(); // f -> -f
- Polynom Substraktion(Polynom g); // f-g (=f+(-g))
- Polynom SubstraktionAlt(Polynom g); // f+(-g) (=f-g)
- // Polynom Multiplikation(Polynom g); // f*g (=g*f)
- // Polynom Division(Polynom g); // f:g v f/g
- // Polynom[] Faktorisierung();
- // double [] Nullstellen();
- // Polynombrüche, wie 1/x = x^1 usw.
- // ggf. "Polynom operator # (const Polynom& g) const;" , um bei zB. h=f+g; f und g per const zu schützen?
- bool operator == (const Polynom& g);
- bool operator != (const Polynom& g);
- Polynom operator = (const Polynom& g);
- Polynom operator + (const Polynom& g);
- Polynom operator - ();
- Polynom operator - (const Polynom& g);
- // Polynom operator * (const Polynom& g);
- // Polynom operator / (const Polynom& g);
- Polynom Ableitung(); // f -> f'
- Polynom Stammfunktion(); // f -> F
- double Integral(double untereGrenze, double obereGrenze);
- };
- // Polynom.cpp
- Polynom::Polynom() { // Default-Konstruktor (Nullpolynom)
- grad=-8; a=new double[1]; a[0]=0.0;
- }
- Polynom::Polynom(int x, double b[]) { // Konstruktor 1. Eingabe: Anzahl der Elemente (int) und Array (double), b[j] ^= b[j] * x^j
- for (int i=x-1; i>=0; i--) { // führende 0en 'entfernen'; (sizeof(b)/sizeof(b[0]))
- grad = i;
- if (b[i] != 0.0) {
- i=-1;
- }
- }
- if (grad == 0.0 && b[0] == 0.0) { // Nullpolynom
- grad=-8; a=new double[1]; a[0]=0.0;
- }
- else {
- a=new double[grad+1];
- for (int i=0; i<=grad; i++) { // b ohne führende 0en in a speichern
- a[i] = b[i];
- }
- }
- }
- Polynom::Polynom(int x,...) { // Konstruktor 2. Eingabe: Anzahl der Koeffizienten als int und dann alle Koeffizienten als double
- if (x==0) { // Nullpolynom
- grad=-8; a=new double[1]; a[0]=0.0;
- }
- else {
- double *b = new double[x];
- double doublepar;
- va_list koeffs;
- va_start(koeffs, x);
- for (int i=0; i<x; i++) { // va in Array b speichern
- doublepar = va_arg(koeffs, double);
- b[i] = doublepar;
- }
- for (int i=x-1; i>=0; i--) { // führende 0en 'entfernen'
- grad = i;
- if (b[i] != 0.0) {
- i=-1;
- }
- }
- if (grad == 0.0 && b[0] == 0.0) { // Nullpolynom
- grad=-8; a=new double[1]; a[0]=0.0;
- }
- else {
- a=new double[grad+1];
- for (int i=0; i<grad+1; i++) { // b ohne führende 0en in a speichern
- a[i] = b[i];
- }
- }
- va_end(koeffs);
- }
- }
- Polynom::Polynom(const Polynom &g) { // Copy-Konstruktor
- grad=g.grad;
- if (grad==-8) {
- a=new double[1]; a[0]=0.0;
- }
- else {
- a=new double[grad+1];
- for (int i=0; i<=grad; i++) {
- a[i] = g.a[i];
- }
- }
- }
- Polynom::~Polynom() { // Destruktor
- delete[] a;
- }
- int Polynom::get_grad() { // O(1)
- return grad;
- }
- void Polynom::AusgabeG() { // a_0 * x^0 + a_1 *x^1 + ... + a_n * x^n, inkl. 0 * x^i
- if (a[0] < 0)
- cout << "- " << -a[0] << " * x^" << 0;
- else
- cout << a[0] << " * x^" << 0;
- for (int i = 1; i <= grad; i++) {
- if (a[i] < 0)
- cout << " - " << -a[i] << " * x^" << i;
- else // a[i] >= 0
- cout << " + " << a[i] << " * x^" << i;
- }
- }
- void Polynom::AusgabeGU() { // a_n * x^n + ... + a_1 * x^1 + a_0 * x^0, inkl. 0 * x^i
- if (grad==-8) cout << "0";
- else {
- if (a[grad] < 0)
- cout << "- " << -a[grad] << " * x^" << grad;
- else
- cout << a[grad] << " * x^" << grad;
- for (int i=grad-1; i>=0; i--) {
- if (a[i] < 0)
- cout << " - " << -a[i] << " * x^" << i;
- else // a[i] >= 0
- cout << " + " << a[i] << " * x^" << i;
- }
- }
- }
- void Polynom::Ausgabe() { // a_0 + a_1 * x + ... + a_i * x^i + ... + a_n * x^n, sofern a_j != 0
- if (grad==-8) cout << "0";
- else if (a[0] != 0) {
- if (a[0] < 0)
- cout << "- " << -a[0];
- else if (a[0] > 0)
- cout << a[0];
- if (grad >= 1) {
- if (a[1] < 0)
- cout << " - " << -a[1] << " * x";
- else if (a[1] > 0)
- cout << " + " << a[1] << " * x";
- }
- for (int i=2; i<grad+1; i++) {
- if (a[i] < 0)
- cout << " - " << -a[i] << " * x^" << i;
- else if (a[i] > 0)
- cout << " + " << a[i] << " * x^" << i;
- // else: a[i] = 0 => 0*x^i=0
- }
- }
- else {
- int s=0;
- for (int i=0; i<=grad; i++) {
- s=i;
- if (a[i] != 0) i=grad+1;
- }
- if (s==0) {
- if (a[0] < 0)
- cout << "- " << -a[0];
- else if (a[0] > 0)
- cout << a[0];
- if (grad >= 1) {
- if (a[1] < 0)
- cout << " - " << -a[1] << " * x";
- else if (a[1] > 0)
- cout << " + " << a[1] << " * x";
- }
- s=1;
- }
- else if (s==1) {
- if (a[1] < 0)
- cout << "- " << -a[1] << " * x";
- else if (a[1] > 0)
- cout << a[1] << " * x";
- }
- else {
- if (a[s] < 0)
- cout << "- " << -a[s] << " * x^" << s;
- else if (a[s] > 0)
- cout << a[s] << " * x^" << s;
- }
- for (int i=s+1; i<=grad; i++) {
- if (a[i] < 0)
- cout << " - " << -a[i] << " * x^" << i;
- else if (a[i] > 0)
- cout << " + " << a[i] << " * x^" << i;
- // else: a[i] = 0 => 0*x^i=0
- }
- }
- }
- void Polynom::AusgabeU() { // a_n * x^n + ... + a_i * x^i + ... + a_1 * x + a_0, sofern a_j != 0
- if (grad==-8) cout << "0";
- else if (grad==0) {
- if (a[0] < 0)
- cout << "- " << -a[0];
- else if (a[0] > 0)
- cout << a[0];
- }
- else if (grad==1) {
- if (a[1] < 0)
- cout << "- " << -a[1] << " * x";
- else if (a[1] > 0)
- cout << a[1] << " * x";
- if (a[0] < 0)
- cout << " - " << -a[0];
- else if (a[0] > 0)
- cout << " + " << a[0];
- }
- else {
- if (a[grad] < 0)
- cout << "- " << -a[grad] << " * x^" << grad;
- else if (a[grad] > 0)
- cout << a[grad] << " * x^" << grad;
- for (int i=grad-1; i>=2; i--) {
- if (a[i] < 0)
- cout << " - " << -a[i] << " * x^" << i;
- else if (a[i] > 0)
- cout << " + " << a[i] << " * x^" << i;
- // else: a[i] = 0 => 0*x^i=0
- }
- if (a[1] < 0)
- cout << " - " << -a[1] << " * x";
- else if (a[1] > 0)
- cout << " + " << a[1] << " * x";
- if (a[0] < 0)
- cout << " - " << -a[0];
- else if (a[0] > 0)
- cout << " + " << a[0];
- }
- }
- bool Polynom::gleich(Polynom g) { // if (f==g)?; worst-case: O(grad)
- if (grad != g.grad) return false;
- for (int i=0; i<=grad; i++)
- if (a[i] != g.a[i]) return false;
- return true;
- }
- bool Polynom::ungleich(Polynom g) { // if (f!=g)?; worst-case: O(grad)
- if (grad != g.grad) return true;
- for (int i=0; i<=grad; i++)
- if (a[i] != g.a[i]) return true;
- return false;
- }
- bool Polynom::Achsensymmetrisch() { // Achsensymmetrisch zur y-Achse; a_0 * x^0 + a_2 * x^2 + ... + a_(2k) * x^(2k); O(grad/2)
- for (int i=1; i<=grad; i=i+2)
- if (a[i] != 0) return false;
- return true;
- }
- bool Polynom::Punktsymmetrisch() { // Punktsymmtrisch zum Ursprung; a_1 * x^1 + a_3 * x^3 + ... + a_(2k+1) * x^(2k+1); O(grad/2)
- for (int i=0; i<=grad; i=i+2)
- if (a[i] != 0) return false;
- return true;
- }
- double potenz(double a, int b) { // a € |R, b € |N
- if (a == 0 || a == 1) return a; // mit der normalen Berechnung abgedeckt, aber für a^n bei n->unendlich schneller
- if (b == 1) return a;
- else if (b == 2) return a*a;
- else if (b%2==0) return potenz((potenz(a,(int)b/2)),2);
- else return a*potenz((potenz(a,(int)(b-1)/2)),2);
- /* double potenz(double a, int b) { // a € |R, b € /Z
- if (a == 0 && b == 0) throw 2; // Fehler: 0^0
- else if (a == 0 && b < 0) throw 1; // Fehler: 0^b=1/(0^(-b))=1/0
- else if (a == 0 || a == 1) return a; // mit der normalen Berechnung abgedeckt, aber für a^n bei n->unendlich schneller
- else if (b >= 0) {
- if (b==0) return 1;
- else if (b == 1) return a;
- else if (b == 2) return a*a;
- else if (b%2==0) return potenz((potenz(a,(int)b/2)),2);
- else return a*potenz((potenz(a,(int)(b-1)/2)),2);
- }
- else return(1.0/potenz(a,-b)); // b<0; Ergebnis selbst bei a,b € Z nicht mehr in Z => double
- try {
- cout << "potenz(" << a << ", " << b << ") = " << potenz(a,b) << endl << endl;
- }
- catch(int e) {
- if (e == 2)
- cout << "0^0 nicht bzw. unterschiedlich definiert.\n" << endl;
- else // if (e == 1)
- cout << a << "^(" << b << ") = 1/(0^" << -b << ") = 1/0, d.h. Division durch Null.\n" << endl;
- }
- } */
- }
- double Polynom::AuswertungT(double u) { // triviale/einfache/gewöhnliche Auswertung
- if (grad == -8) return 0;
- else if (grad == 0 || u == 0.0) return a[0];
- else if (u == 1.0) { // & Grad > 0
- double sum = a[0];
- for (int i = 1; i <= grad; i++)
- sum = sum + a[i];
- return sum;
- }
- else { // Grad > 0 & (u!=0 & u!=1)
- double erg = a[0];
- for (int i = 1; i <= grad; i++) {
- erg = erg + a[i] * potenz(u,i); // potenz(u,i) = u^i; 0<i € |N
- }
- return erg;
- }
- }
- double Polynom::Auswertung(double u) { // Auswertung nach Horner-Schema
- if (grad == -8) return 0;
- else if (grad == 0 || u == 0.0) return a[0];
- else if (u == 1.0) { // & Grad > 0
- double sum = a[0];
- for (int i = 1; i <= grad; i++)
- sum = sum + a[i];
- return sum;
- }
- else { // Grad > 0 & (u!=0 & u!=1)
- double erg = a[grad];
- for (int i = grad-1; i >= 0; i--)
- erg = erg * u + a[i]; // Grad(f) Additionen & Multiplikationen, also 2*Grad(f) Rechenoperationen
- return erg;
- }
- }
- Polynom Polynom::Addition(Polynom g) { // f+g (=g+f)
- if (grad == -8) return Polynom(g);
- else if (g.grad == -8) return Polynom(*this);
- else if (grad > g.grad) {
- double h[grad+1];
- for (int i=0; i<=g.grad; i++)
- h[i] = a[i] + g.a[i];
- for (int i=g.grad+1; i<=grad; i++)
- h[i] = a[i];
- return Polynom(grad+1,h);
- }
- else {
- double h[g.grad+1];
- for (int i=0; i<=grad; i++)
- h[i] = a[i] + g.a[i];
- for (int i=grad+1; i<=g.grad; i++)
- h[i] = g.a[i];
- return Polynom(g.grad+1,h);
- }
- }
- Polynom Polynom::Minus() { // f -> -f
- if (grad == -8) return Polynom(0);
- else {
- double h[grad+1];
- for (int i=0; i<=grad; i++)
- h[i] = -a[i];
- return Polynom(grad+1,h);
- }
- }
- Polynom Polynom::Substraktion(Polynom g) { // f-g (=f+(-g))
- if (g.grad == -8) { // f-0 = f
- Polynom h(*this);
- return h;
- }
- else if (grad == -8) { // & Grad(g) != -(unendlich); ^= h = 0-g = -g
- double h[g.grad+1];
- for (int i=0; i<=g.grad; i++)
- h[i] = -g.a[i];
- return Polynom(g.grad+1,h);
- }
- else if (grad > g.grad) {
- double h[grad+1];
- for (int i=0; i<=g.grad; i++)
- h[i] = a[i] - g.a[i];
- for (int i=g.grad+1; i<=grad; i++)
- h[i] = a[i];
- return Polynom(grad+1,h);
- }
- else {
- double h[g.grad+1];
- for (int i=0; i<=grad; i++)
- h[i] = a[i] - g.a[i];
- for (int i=grad+1; i<=g.grad; i++)
- h[i] = -g.a[i];
- return Polynom(g.grad+1,h);
- }
- }
- Polynom Polynom::SubstraktionAlt(Polynom g) {
- return (*this).Addition(g.Minus());
- }
- // Polynom Polynom::Multiplikation(Polynom g) { // f*g (=g*f) }
- // Polynom Polynom::Division(Polynom g) { // f:g v f/g }
- // Polynom[] Polynom::Faktorisierung() { }
- // double [] Polynom::Nullstellen() { }
- // Polynombrüche, wie 1/x = x^1 usw.
- bool Polynom::operator == (const Polynom& g) {
- if (grad != g.grad) return false;
- for (int i=0; i<=grad; i++)
- if (a[i] != g.a[i]) return false;
- return true;
- }
- bool Polynom::operator != (const Polynom& g) {
- if (grad != g.grad) return true;
- for (int i=0; i<=grad; i++)
- if (a[i] != g.a[i]) return true;
- return false;
- }
- Polynom Polynom::operator = (const Polynom& g) {
- grad=g.grad;
- if (grad==-8) {
- a=new double[1]; a[0]=0.0;
- }
- else {
- a=new double[grad+1];
- for (int i=0; i<=grad; i++) {
- a[i] = g.a[i];
- }
- }
- }
- Polynom Polynom::operator + (const Polynom& g) {
- if (grad == -8) return Polynom(g);
- else if (g.grad == -8) return Polynom(*this);
- else if (grad > g.grad) {
- double h[grad+1];
- for (int i=0; i<=g.grad; i++)
- h[i] = a[i] + g.a[i];
- for (int i=g.grad+1; i<=grad; i++)
- h[i] = a[i];
- return Polynom(grad+1,h);
- }
- else {
- double h[g.grad+1];
- for (int i=0; i<=grad; i++)
- h[i] = a[i] + g.a[i];
- for (int i=grad+1; i<=g.grad; i++)
- h[i] = g.a[i];
- return Polynom(g.grad+1,h);
- }
- }
- Polynom Polynom::operator - () {
- if (grad == -8) return Polynom(0);
- else {
- double h[grad+1];
- for (int i=0; i<=grad; i++)
- h[i] = -a[i];
- return Polynom(grad+1,h);
- }
- }
- Polynom Polynom::operator - (const Polynom& g) {
- if (g.grad == -8) { // f-0 = f
- Polynom h(*this);
- return h;
- }
- else if (grad == -8) { // & Grad(g) != -(unendlich); ^= h = 0-g = -g
- double h[g.grad+1];
- for (int i=0; i<=g.grad; i++)
- h[i] = -g.a[i];
- return Polynom(g.grad+1,h);
- }
- else if (grad > g.grad) {
- double h[grad+1];
- for (int i=0; i<=g.grad; i++)
- h[i] = a[i] - g.a[i];
- for (int i=g.grad+1; i<=grad; i++)
- h[i] = a[i];
- return Polynom(grad+1,h);
- }
- else {
- double h[g.grad+1];
- for (int i=0; i<=grad; i++)
- h[i] = a[i] - g.a[i];
- for (int i=grad+1; i<=g.grad; i++)
- h[i] = -g.a[i];
- return Polynom(g.grad+1,h);
- }
- }
- // Polynom Polynom::operator * (const Polynom& g) {}
- // Polynom Polynom::operator / (const Polynom& g) {}
- /* ostream& operator<<(ostream& Stream, const Bruch& B) {
- return Stream << B.Zaehler() << "/" << B.Nenner();
- } */
- Polynom Polynom::Ableitung() { // f -> f'
- if (grad == -8 || grad == 0) { // f(x)=0 v f(x)=c => f'(x)=0
- return Polynom(0);
- }
- else {
- double abl[grad];
- abl[0] = a[1];
- for (int i=1; i<=grad; i++)
- abl[i] = (i+1.0)*a[i+1];
- return Polynom(grad,abl);
- }
- }
- Polynom Polynom::Stammfunktion() { // f -> F
- if (grad == -8) { // f(x)=0 => F(x)=0(+c)
- return Polynom(0);
- }
- else {
- double sta[grad+2];
- sta[0] = 0; // (+c)
- for (int i=1; i<=grad+1; i++)
- sta[i] = (1.0/i)*a[i-1];
- return Polynom(grad+2,sta);
- }
- }
- double Polynom::Integral(double untereGrenze, double obereGrenze) { // a=untereGrenze, obereGrenze=b
- if (untereGrenze == obereGrenze) return 0.0; // aS^a f(x) dx = F(a) - F(a) = 0
- else if (untereGrenze > obereGrenze) { // a > b => Integral: - (bS^a f(x) fx) = - (F(a) - F(b))
- Polynom F = (*this).Stammfunktion();
- return( - (F.Auswertung(untereGrenze) - F.Auswertung(obereGrenze)) );
- }
- else { // a < b => Integral: aS^b f(x) dx = F(b) - F(a)
- Polynom F = (*this).Stammfunktion();
- return(F.Auswertung(obereGrenze) - F.Auswertung(untereGrenze));
- }
- }
- // main.cpp
- int main() {
- // Konstruktoren
- Polynom a(2,3.3,5.7); Polynom b(3,6.5,-1.5,2.3); Polynom c(1,2.7);
- Polynom d(0); Polynom e(2,0.0,0.0,0.0); Polynom f(6,8.4,0.0,1.7,-2.3,3.2,0.0);
- Polynom f2(6,0.0,0.0,-1.2,0.0,3.2); Polynom g(3,3.3,5.7,0.0); Polynom h1(e);
- Polynom h2 = b; Polynom h3; double ii[]={4.5,7.1,3.4}; Polynom i(3,ii);
- //Ausgabe
- a.Ausgabe(); cout<<endl; b.Ausgabe(); cout<<endl; c.AusgabeU(); cout<<endl;
- d.Ausgabe(); cout<<endl; e.AusgabeG(); cout<<endl; f.AusgabeU(); cout<<endl;
- f2.Ausgabe(); cout<<endl; g.AusgabeG(); cout<<endl; h1.Ausgabe(); cout<<endl;
- h2.AusgabeGU(); cout<<endl; h3.Ausgabe(); cout<<endl; i.Ausgabe(); cout<<"\n"<<endl;
- // gleich/ungleich?
- cout<< a.gleich(b) <<" "<< d.gleich(e) <<" "<< g.gleich(a) <<" "<< a.ungleich(g) <<"\n"<<endl;
- // Auswertung
- cout<< potenz(2,4) <<" "<< potenz(3,3) <<endl;
- cout<< d.AuswertungT(0) <<" "<< a.AuswertungT(1) <<" "<< a.AuswertungT(0);
- cout<<" "<< a.Auswertung(-2) <<" "<< f2.Auswertung(2) <<endl;
- cout<< d.Auswertung(0) <<" "<< a.Auswertung(1) <<" "<< a.Auswertung(0);
- cout<<" "<< a.Auswertung(-2) <<" "<< f2.Auswertung(2) <<"\n"<<endl;
- // Symmetrie
- cout<< a.Achsensymmetrisch() <<" "<< a.Punktsymmetrisch() <<" ";
- cout<< e.Achsensymmetrisch() <<" "<< d.Punktsymmetrisch() <<endl;
- Polynom s1(6,0.0,1.0,0.0,3.4,0.0,0.3); Polynom s2(4,0.5,0.0,3.2,0,0,8.7);
- cout<< s1.Achsensymmetrisch() <<" "<< s1.Punktsymmetrisch() <<" ";
- cout<< s2.Achsensymmetrisch() <<" "<< s2.Punktsymmetrisch() <<"\n"<<endl;
- // Addition
- (a.Addition(c)).Ausgabe(); cout<<endl; (a.Addition(e)).Ausgabe(); cout<<endl;
- (b.Addition(a.Addition(c))).Ausgabe(); cout<<endl; (a.Addition(b)).Ausgabe(); cout<<"\n"<<endl;
- // Minus
- Polynom m(a.Minus()); a.Ausgabe(); cout<<endl; m.Ausgabe(); cout<<endl;
- (a.Minus()).Ausgabe(); cout<<endl; a.Ausgabe(); cout<<"\n"<<endl;
- // Substraktion
- (a.Substraktion(f)).Ausgabe(); cout<<endl; (f.Substraktion(a)).Ausgabe(); cout<<endl;
- (a.Substraktion(a)).Ausgabe(); cout<<endl; (e.Substraktion(a)).Ausgabe(); cout<<endl;
- (a.Substraktion(e)).Ausgabe(); cout<<endl;
- (a.SubstraktionAlt(a)).Ausgabe(); cout<<endl; a.Ausgabe(); cout<<endl;
- (e.SubstraktionAlt(a)).Ausgabe(); cout<<endl; (a.SubstraktionAlt(e)).Ausgabe(); cout<<endl;
- (f.SubstraktionAlt(b)).Ausgabe(); cout<<endl;cout<<"\n"<<endl;
- // Ableitung
- (e.Ableitung()).Ausgabe(); cout<<" <- "; e.Ausgabe(); cout<<endl;
- (a.Ableitung()).Ausgabe(); cout<<" <- "; a.Ausgabe(); cout<<endl;
- (f.Ableitung()).AusgabeU(); cout<<" <- "; f.AusgabeU(); cout<<"\n"<<endl;
- // Stammfunktion
- (e.Stammfunktion()).Ausgabe(); cout<<" <- "; e.Ausgabe(); cout<<endl;
- (a.Stammfunktion()).AusgabeU(); cout<<" <- "; a.AusgabeU(); cout<<"\n"<<endl;
- // Integral
- Polynom i1(1,2.0);
- cout << i1.Integral(0.0, 4.0) <<" "<< i1.Integral(4.0,0.0) <<" "<< a.Integral(3,3) <<"\n"<<endl;
- // Operatoren
- cout << (a==b) <<" "<< (b==a) <<" "<< (a!=b) <<" "<< (a==g) <<" "<< (g!=a) << endl;
- (a+f).Ausgabe(); cout<<endl; (a.Addition(f)).Ausgabe(); cout<<endl;
- (a-b).Ausgabe(); cout<<endl; (-a).Ausgabe(); cout<<endl; Polynom a2 = a; a2.Ausgabe(); cout<<endl;
- Polynom o; o=f; o.Ausgabe(); cout<<"\n"<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement