3136 |
Aufprall |
Aufprall geschwindigkeit |
Kategorie: | Mathematik |
Klasse: | leicht |
Eingabe: | siehe Spezifikation |
Ausgabe: | siehe Spezifikation |
|
Abzugebende Files: Aufprall.txt, Aufprall.java, *.java , 194.txt, 721.txt |
Kurzbeschreibung:
Die Aufprallgeschwindigkeit und die beim Aufprall freiwerdende kinetische Energie eines Körpers im freien Fall werden berechnet.
Allgemeine Hinweise:
-
Sie haben Lösungen (und Spezifikationen) aus der 1. Runde von anderen Studenten erhalten,
die Ihnen Ihre Aufgabe erleichtern sollen. Wählen Sie eine Lösung aus, die Ihnen hinsichtlich Lesbarkeit, Programmierstil,
Korrektheit und Verwendbarkeit am besten erscheint. Verwenden Sie
diese Lösung in Ihrem Programm. Sie können auch die anderen Lösungen einsetzen.
- Merken Sie sich die Lösungsnummer des ausgewählten Beispieles für die Abgabe. Diese Nummer müssen Sie bei der Abgabe angeben. Geben Sie nur jene Lösungsnummer an, die Sie auch wirklich ausgewählt haben.
-
Erstellen Sie für alle Lösungen zu diesem Beispiel (siehe: "Abzugebende Files") ein File mit dem Namen <number>.txt. und schreiben in dieses File ein Review (=Kritik) zu der Lösung. Diese Reviews erhalten dann die TeilnehmerIn von dem/der die Lösung stammt. Beachten Sie das bitte bei der Form Ihrer Kritik.
-
Sie können für die Lösung der gewählten Aufgabe eine oder mehrere Klassen programmieren. Die Klasse Aufprall.java muß aber die Methode main enthalten. Weiters müssen alle abgegebenen Klassenfiles in demselben Verzeichnis vorliegen, Pfadangaben sind nicht gestattet.
-
Achten Sie auf die korrekten Konventionen der Groß/Kleinschreibung bei
Klassen und Methoden!
[Wir tun das jetzt auch :-)]
-
Falls Ihre Lösung einen Exit Code zurueckliefert, so
achten Sie darauf, dass dieser den Wert 0 hat.
Bei allen anderen Werten können Probleme bei der Bewertung und in weiterer
Folge unbeabsichtigte Punkteabzüge auftreten.
- Ihre Lösung darf nur genau jene Ausgabedaten liefern, die in der
Spezifikation verlangt werden. Die Ausgaben Ihrer Lösung werden automatisch mit Referenzdaten verglichen; etwaige Abweichungen führen zu Punkteabzügen!
- Testen Sie Ihre Lösung vor der Abgabe mit der mitgelieferten Eingabedatei. Geben Sie Ihre Lösung erst ab, wenn die Ausgaben Ihrer Lösung mit der ebenfalls mitgelieferten Ausgabedatei übereinstimmen! Testen Sie Ihre Lösung auch mit anderen Eingabedaten.
-
Verwenden Sie nur das von uns mitgelieferten Package eprog
für Ihre Ein/Ausgaben. Klassen, 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 daher mit 0 Punkten bewertet!
- Schreiben Sie Ihre Klasse(n) möglichst allgemein und kommentieren
Sie diese gut. Erstellen Sie weiters eine übersichtliche und
verständliche Dokumentation. Damit erhöhen Sie Ihre Chancen,
daß andere Studenten in der nächsten Runde Ihre Lösung
wählen und Ihnen damit zu Zusatzpunkten verhelfen!
FALLBEISPIEL:
Ein Paragleiter gerät in eine Turbulenz, dabei "klappt" sein Gleitsegel zusammen,
die Störung ist nicht mehr zu beheben. Absturz. Glücklicherweise
müssen aber Paragleiter einen Rettungschirm mitführen.
Unser Unglückrabe wirft
natürlich sofort seine "Second Change". Wie gesagt, wir haben einen Unglücksraben,
sein Retter geht nicht auf. In den letzten Sekunden seines Daseins versucht
er hektisch, noch die Aufprallgeschwindigkeit auszurechnen. Sein Variometer
(unter anderen ein Höhenmesser) zeigt im eine Höhe von 650 m (MSL) an.
Da sich der Bereich in dem er Einschlagen wird auf einer Höhe von 500 m (MSL)
befindet, beträgt die Fallhöhe 150m. Unser Guter wird also mit ca. 54 m/s
(etwa 195 km/h) auf der Erde "eintreffen". Keine guten Aussichten.
(Anmerkung:
Der Luftwiderstand reduziert aber die maximale Geschwindigkeit auf ca. 210
km/h, bei teilweise geöffnetem Gleitsegel sogar auf ca. 120 km/h. Diese Angabe
brauchen Sie aber nicht zu berücksichtigen.)
Aufgabenstellung:
Ihr Programm soll zwei Strings einlesen, wobei der erste einen Startwert
(Fallhöhe oder Fallzeit) und der zweite die Masse des Körpers angibt. Aus
diesen Werten sollen Sie die Geschwindigkeit beim Aufprall und die beim
Aufprall freiwerdende kinetische Energie berechnen. Der Körper hat dabei
Anfangsgeschwindigkeit 0 (kein "fliegender" Start).
Als begeisterter Physiker kennen Sie sicherlich folgende Formeln für die
gleichmäßig beschleunigte Bewegung, die hier nochmals aufgeführt sind (wobei
h für Höhe und g für die Erdbeschleunigung von 9.81 m/s² steht; Puristen
mögen statt dessen s für Weg und a für Beschleunigung schreiben).
Ignorieren Sie bei Ihren Berechnungen den Luftwiderstand.
h...Fallhöhe
g...Erdbeschleunigung (9.81 m/s²)
t...Fallzeit
v...Aufprallgeschwindigkeit
w...kinetische Energie beim Aufprall
m...Masse des Körpers
(Verwenden Sie jene Formel, die weniger Rundungsfehler verursacht!)
Eingabedaten:
Lesen Sie zwei Strings ein, die jeweils maximal 10 Zeichen lang sein dürfen.
Der erste String enthält entweder die Fallhöhe oder die Falldauer. Er besteht
aus einer Zahl und einer der Maßeinheiten mm, cm, m, km (Höhe) bzw. s, min, h
(Zeit). Die Zahl kann auch Nachkommastellen haben, die durch einen Punkt getrennt sind. Es muß
aber zumindest eine Ziffer vor dem Punkt stehen; wenn ein
Dezimalpunkt auftritt, dann muß auch zumindest eine Nachkommastelle folgen
(richtig: 1s 0.1m 123.456m FALSCH: 1.s .1m). Negative Zahlen sind verboten.
Der zweite String besteht aus einer Zahl (Format wie oben) und einer Maßeinheit für die Masse des Körpers. Erlaubte Einheiten sind hierbei kg, t und g.
Die Maßeinheiten müssen in Kleinbuchstaben angegeben werden. Ein Datensatz
ist ungültig, wenn er zu einer Aufprallgeschwindigkeit >= 1000 km/h führt.
Ausgabedaten:
Bei korrekten Eingabesätzen soll Ihr Programm die Aufprallgeschwindigkeit in
km/h und die kinetische Energie beim Aufprall in Joule ausgeben. Beachten Sie,
daß sie in die oben genannten Formeln Meter bzw. Sekunden einsetzen müssen und
als Ergebnis m/s bzw. Joule erhalten. Sie müssen die Geschwindigkeit also vor
der Ausgabe noch umrechnen.
Ihr Programm soll die Ergebnisse als Float-Zahlen mit 3 Nachkommastellen liefern (OHNE Maßeinheit!!!).
Trennen Sie die beiden Werte durch ein Leerzeichen und geben Sie am Ende einen
Zeilenvorschub aus.
Fehlerbehandlung:
Bei fehlerhaften Eingabedaten ist die Meldung "FALSCHE EINGABE", gefolgt von
einem Zeilenvorschub, auszugeben.
Lesen Sie aber auf jeden Fall beide Strings ein, auch wenn schon der erste
fehlerhaft ist.
Beispiele:
Eingabedaten
|
150m 70kg
2s 20g
|
Ausgabedaten
|
195.298 103005.000
70.632 3.849
|
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 Aufprall < Aufprall.i1 > Aufprall.out1
Das erzeugte File Aufprall.out1 können Sie dann mit dem mitgelieferten Outputfile Aufprall.o1 vergleichen.