EPROG-LU - Aufgabe 4103 (Polynome)
4103 polynom Polynome
Kategorie:Mathematik
Klasse:mittel
Eingabe:Siehe Spezifikation
Ausgabe:Siehe Spezifikation
Abzugebende Files: polynom.txt, Main.java, polynom/*.java , 10489.txt, 10998.txt

Kurzbeschreibung:

Schreiben Sie eine Klasse Polynom die mathematische Polynome mit einer Variablen darstellen kann. Außerdem sollen Methoden für grundlegende Rechenarten zur Verfügung gestellt werden.

Allgemeine Hinweise:

Aufgabenstellung:

Ein String, der die Koeffizienten eines Polynoms (mathematische Ausdrücke der Form a0 + a1*x + a2*x^2 + a3*x^3 +... + an*x^n) enthält soll eingelesen werden.

Implementieren Sie die Operation Polynom add(Polynom a), welche 2 Polynome addiert. Desweiteren werden auch die Operation Polynom mul(Polynom a) fü die Multplikation und Polynom sub(Polynom a) benötigt.

Schreiben Sie eine Routine welche zwei Polynome miteinander vergleicht. Die Ordnung zweier Polynome sei definiert durch a<b gdw. Grad(a)<Grad(b). Desweitern gilt a=b gdw. Grad(a)=Grad(b) sowie a>b gdw. Grad(a)>Grad(b).

Eingabedaten:

Lesen Sie einen String ein, der aus folgenden Zeichen bestehen darf: Ziffern, den Klammerzeichen "()", Operatoren "-+*<>=", dem negativen Vorzeichen "-", sowie Komma zum Trennen der einzelnen Koeffizienten.

Dieser String muß einen gültigen mathematischen Term (z.B. Klammersetzung) enthalten und darf nur einen Operator enthalten.

Die Koeffizienten werden dabei in der Reihenfolge (a0,a1,...,an) sind durch Kommas voneinander getrennt. Weiters gilt für alle Koeffizienten daß sie vom Typ short sein müssen, für fehlende Koeffizienten wird in den Eingabedatensätzen eine "0" angegeben. Es muß zumindest ein Koeffizient ungleich 0 in jedem Polynom eingelesen werden.

Ausgabedaten:

Bei korrekten Eingabesätzen soll Ihr Programm das Resultat einer Berechnungen der Form a0+a1x+a2x^2+a3x^3,...,anx^n ausgeben. Koeffizienten, welche den Wert 0 haben werden bei der Ausgabe nicht berücksichtigt.

Falls als Ergebnis ein Nullpolynom vorliegt (Polynom 0-ten Grades mit Koeffizient=0), so geben Sie 0 aus.

Bei Vergleichsoperatoren geben Sie das entweder "TRUE" oder "FALSE" aus.

Schließen Sie die Ausgabe mit einem Zeilenvorschub ab.

Fehlerbehandlung:

Generell wird bei fehlerhaften Eingabedatensätzen nur eine einzige Fehlermeldung erzeugt, weitere Berechnungen werden nicht mehr durchgeführt.

Enthält der Eingabedatensatz einen ungültigen numerischen Datentyp, so soll einmal das Zeichen "?", gefolgt von einem Zeilenvorschub, ausgegeben werden.

Wenn dann der Eingabestring nicht den Bedingungen genügt, so soll Ihr Programm die Fehlermeldung "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.

Beispiele:

Eingabedaten
(1,0,-4,1)>(0,2,2)

(3,1,-4,2)*(-1,2,1)

Ausgabedaten
TRUE

-3+5x+9x^2-9x^3+2x^5


Testen:

Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei erzeugen:

java Main < polynom.i1 > polynom.out1

Das erzeugte File polynom.out1 können Sie dann mit dem mitgelieferten Outputfile polynom.o1 vergleichen.

Fr Jul 30 13:54:24 CEST 2021
patent_button.gif valid-html401.png elektra.jpg fsfe-logo.png valid-css.png vim.gif anybrowser.gif