Programmiertest Einführung in das Programmieren, PT
In dieser Aufgabe geht es um rechtwinklige Dreiecke. Die längste Seite eines rechtwinkligen Dreiecks (die dem rechten Winkel gegenüber liegt) heißt Hypotenuse (die beiden anderen Seiten heißen Katheten). Sind drei Seiten- längen a, b und c gegeben, so kann man mit dem Satz des Pythagoras testen, ob diese Seiten ein rechtwinkliges Dreieck bilden:
ist b² + c² == a², so ist das Dreieck rechtwinklig mit Hypotenuse a, ist a² + c² == b², so ist das Dreieck rechtwinklig mit Hypotenuse b, ist a² + b² == c², so ist das Dreieck rechtwinklig mit Hypotenuse c, ist keine der drei obigen Bedingungen erfüllt, so ergibt sich kein
rechtwinkliges Dreieck.
• Grundaufgabe (Note 4): Lesen Sie zunächst die Anzahl der zu testenden Dreiecke ein. Es sollen dann für entsprechend viele Dreiecke jeweils drei Seitenlängen (ganzzahlig) eingegeben werden. Mit Hilfe der oben ange- gebenen Fallunterscheidung soll bestimmt werden, ob die Seiten ein recht- winkliges Dreieck bilden und wenn ja, welche Seite die Hypotenuse ist (1., 2., oder 3. Seite). Die Eingaben sollen durchnummeriert werden. Hinweis:
Verwenden Sie für die oben angegebene Fallunterscheidung am besten if … else if … usw. Beispiel:
Anzahl der zu testenden Dreiecke: 5 1. Dreieck, drei Seitenlaengen: 3 4 5 Das Dreieck ist rechtwinklig.
Die 3. Seite ist die Hypotenuse.
2. Dreieck, drei Seitenlaengen: 7 7 7
Es kann kein rechtwinkliges Dreieck gebildet werden.
3. Dreieck, drei Seitenlaengen: 5 4 3 Das Dreieck ist rechtwinklig.
Die 1. Seite ist die Hypotenuse.
4. Dreieck, drei Seitenlaengen: 6 7 8
Es kann kein rechtwinkliges Dreieck gebildet werden.
5. Dreieck, drei Seitenlaengen: 12 13 5 Das Dreieck ist rechtwinklig.
Die 2. Seite ist die Hypotenuse.
• Erweiterung 1 (Eine Notenstufe besser): Es soll bei der Eingabe der Seitenlängen sichergestellt werden, dass diese alle größer als 0 sind.
Ist dies nicht der Fall, so soll eine Fehlermeldung ausgegeben und die Eingabe (ggf. mehrmals) wiederholt werden. Dabei soll die laufende Nummer aber nicht erhöht werden. Außerdem soll gezählt und am Ende ausgegeben werden, wie viele rechtwinklige Dreiecke gebildet werden konnten.
Beispiel:
Anzahl der zu testenden Dreiecke: 5 1. Dreieck, drei Seitenlaengen: 3 4 5 Das Dreieck ist rechtwinklig.
Die 3. Seite ist die Hypotenuse.
2. Dreieck, drei Seitenlaengen: 0 1 1 Alle Seiten muessen > 0 sein!
2. Dreieck, drei Seitenlaengen: 3 0 2 Alle Seiten muessen > 0 sein!
2. Dreieck, drei Seitenlaengen: 2 2 -2 Alle Seiten muessen > 0 sein!
2. Dreieck, drei Seitenlaengen: 7 7 7
Es kann kein rechtwinkliges Dreieck gebildet werden.
. . . (restliche Eingaben wie in der Grundaufgabe)
Es wurden 3 rechtwinklige Dreiecke eingegeben.
• Erweiterung 2 (Eine Notenstufe besser): Setzen Sie zum Testen der drei Seitenlängen eine Funktion rechtwinklig() ein. Diese soll die drei Seitenlängen als Parameter haben. Die Funktion soll einen ganzzahligen Wert mit return zurückgeben: Lässt sich aus diesen ein rechtwinkliges Dreieck bilden, so soll die Seitennummer der Hypotenuse (also 1, 2, oder 3) zurückgegeben werden, lässt sich kein rechtwinkliges Dreieck bilden, so soll 0 zurückgegeben werden.
Die Ausgabe des Ergebnisses und das Zählen der rechtwinkligen Dreiecke sollen im Hauptprogramm bleiben. Rufen Sie im Hauptprogramm die Funktion rechtwinklig() auf und geben Sie dort je nach Rückgabewert einen entsprechenden Text aus. Ein- und Ausgabe bleiben wie in Erw. 1.
• Erweiterung 3 (Eine Notenstufe besser): Am Ende soll eine Liste mit allen eingegebenen rechtwinkligen Dreiecken (inkl. Eingabenummer) ausgegeben werden. Hinweis: Speichern Sie die Seitenlängen und die Information, ob ein rechtwinkliges Dreieck gebildet werden kann (oder den Rückgabewert der Funktion aus Erw. 2), in je einem Feld (Größe 100) ab.
Beispiel: Mit den Werten von Erw. 1 wird am Ende zusätzlich ausgegeben:
Liste aller eingegebenen rechtwinkligen Dreiecke:
Nr. a b c --- 1 3 4 5 3 5 4 3 5 12 13 5