1002 |
tantrap |
Integral mit Tangententrapezformel |
Kategorie: | Mathematik |
Klasse: | schwer |
Eingabe: | Float |
Ausgabe: | Float als Fixpunkt |
|
Abzugebende Files: tantrap.txt, tantrap.java |
Kurzbeschreibung:
Für ein Polynom soll mittels Tangententrapezformel das Integral zwischen zwei Grenzen angenähert 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:
Ihr Programm soll zuerst die Grenzen des Intervalls, in dem integriert werden
soll, und dann die Koeffizienten und Exponenten des zu integrierenden Polynoms
einlesen.
Um das Integral im angegebenen Intervall anzunähern, wird das Intervall [a,b]
in n gleich lange Teilintervalle zerlegt und der Integrand f in jedem Teilintervall durch eine lineare Funktion ersetzt.
Wählen Sie als Schrittweite (Teilintervallbreite) 0.2.
Die Formel sieht folgendermaßen aus:
Eingabedaten:
Lesen Sie zuerst die Grenzen des Intervalls ein, wobei die kleinere Zahl die
linke Grenze darstellt. Anschließend folgen die Koeffizienten und Exponenten
des Polynoms und am Ende des Datensatzes folgt die Zahl 100. Die Grenzen des Intervalls sind als Floatzahlen, die Koeffizienten und Exponenten als Integerzahlen einzulesen. Der Exponent muß
im Bereich von 0 bis 8 (inklusive) liegen.
Beispiel:
Folgende Funktion soll verarbeitet werden:
Der Eingabedatensatz hat dann folgenden Aufbau:
3.0 7.0 1 0 6 1 -1 2 5 4 100
|
Bemerkung: Die Eingabedaten sind hier aufsteigend nach Exponenten sortiert. Dies ist jedoch nicht verbindlich; die Reihenfolge der Polynomglieder ist
beliebig.
Ausgabedaten:
Bei korrekten Eingabesätzen soll Ihr Programm die Annäherung des Integrals im
angegebenen Intervall ausgeben, gefolgt von einem Zeilenvorschub.
Fehlerbehandlung:
Sämtliche Eingabedatensätze sind immer bis zum definierten Endezeichen 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 (z.B. wenn ein Exponent mehrfach auftritt), so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.
Beispiele:
Eingabedaten
|
1.0 3.0 1 0 1 2 100
1.0 3.0 1 0 100
2.5 8.5 4 0 -1 1 2 2 3 3 100
|
Ausgabedaten
|
10.660
2.000
4274.720
|
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 tantrap < tantrap.i1 > tantrap.out1
Das erzeugte File tantrap.out1 können Sie dann mit dem mitgelieferten Outputfile tantrap.o1 vergleichen.