1201 polydiff n-faches Differenzieren einer Polynomfunktion
Kategorie:Mathematik
Klasse:mittel
Eingabe:siehe Spez.
Ausgabe:siehe Spez.
Abzugebende Files: polydiff.txt, polydiff.java

Kurzbeschreibung:

Eine Polynomfunktion soll beliebig oft differenziert werden.

Allgemeine Hinweise:

Aufgabenstellung:

Ihre Aufgabe ist es, eine gegebene Polynomfunktion eine angegebene Anzahl mal zu differenzieren. Sie sollten dabei wie folgt vorgehen:

Lesen Sie zunächst den Grad der Polynomfunktion sowie die Zahl n (wie oft Sie differenzieren sollen) als Integer-Zahl ein, danach die einzelnen Koeffizienten (in absteigender Reihenfolge der Potenzen) als Float-Zahlen.
Der Grad ist die höchste Potenz von x die vorkommt, und muß < 10 sein.
Sie müssen genau (Grad + 1) Koeffizienten einlesen.

Differenzieren Sie dann die Funktion n mal. Verwenden Sie dafür die folgende Formeln:

(Hinweis: Die 0-te Ableitung einer Funktion ist die Funktion selbst)

Wegen (b) dürfen sie also jedes Glied der Polynomfunktion für sich alleine ableiten, und wie man ein einzelnes Glied ableitet steht in (a).

Ein Beispiel:
(der Grad wäre hier also 4), und sie sollen die 3. Ableitung bestimmen.

1. Ableitung:

2. Ableitung:

3. Ableitung:

Geben Sie abschließend die n mal abgeleitete Funktion und ihren Grad aus.

Eingabedaten:

Das Inputfile hat folgendes Format:
"<g> <n> <kn> <k(n-1)> ... <k1> <k0> 999"
wobei <g> der Grad der Polynomfunktion ( positiv, <10 ),
<n> die Anzahl der Ableitungen die Sie durchführen sollen,
<kn> der Koeffizient von (x hoch n)
...
<k0> der Koeffizient von (x hoch 0), also eine Konstante ist.
<g> und <n> sind Integer-Zahlen, die Koeffizienten Float-Zahlen.
(999 kann kein Koeff. sein.)

Beispiel: "5 2 1.5 5.4 3 -13.01 4 3.5 999"

bedeutet:

und Sie sollen die Funktion 2 mal differenzieren.

Die Zeichen "999" markieren das Ende des Datensatzes.

Ausgabedaten:

Geben Sie zuerst den Grad Ihrer abgeleiteten Funktion und danach alle Koeffizienten (in absteigender Reihenfolge der Potenzen) aus. Trennen Sie die einzelnen Daten mit einem Leerzeichen.
Schließen Sie die Ausgabe mit einem Zeilenvorschub ab.
Beispiel: Sie haben als Ergebnis die Funktion erhalten.
Ausgabefile: 2 3.000 -4.500 2.000

Fehlerbehandlung:

Sämtliche Eingabedatensätze sind immer vollständig einzulesen. 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 Datentyp, so soll einmal das Zeichen "?", gefolgt von einem Zeilenvorschub, ausgegeben werden.

Sind die Datentypen bei allen Eingaben richtig, die eingegebenen Daten aber inhaltlich nicht korrekt oder erfüllen nicht die Bedingungen (z.B. Grad <10, Anzahl der Koeffizienten stimmt nicht), so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.

Beispiele:

Eingabedaten
-2 3 3 3 3 3 3 3 999

2 5 1.5 3 -2 999

3 3 2 -0.5 1.2 1 999

Ausgabedaten
FALSCHE EINGABE

0 0.000

0 12.000

Bemerkung: 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 polydiff < polydiff.i1 > polydiff.out1

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