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:
-
Ihr Programm darf nur genau jene Ausgabedaten liefern, die in der Spezifikation
verlangt werden. Die Ausgaben Ihres Programmes werden automatisch mit
Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
-
Testen Sie Ihr Programm vor der Abgabe mit der mitgelieferten Eingabedatei.
Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihres Programmes mit der
ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihr
Programm auch mit anderen Eingabedaten.
-
Verwenden Sie nur das von uns mitgelieferten Package eprog
für Ihre Ein/Ausgaben. Programme, die Packages oder Klassen ausserhalb der verwendeten Übungsumgebung (Java2, Standard Edition, Version 1.3.1_1) verwenden, können von uns
nicht getestet werden und werden mit 0 Punkten bewertet!
-
Schreiben Sie Ihr Programm möglichst allgemein und kommentieren Sie es gut.
Erstellen Sie weiters eine übersichtliche und verständliche Dokumentation.
Damit erhöhen Sie Ihre Chancen, daß andere Studenten in den nächsten Runden
Ihr Programm wählen und Ihnen damit zu Zusatzpunkten verhelfen!
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.