Aufgabe:
Berechnungen mit vielziffrigen Zahlen sind zumeist mangels verfügbarer, geeigneter Datentypen nicht möglich. Es soll ein neuer Datentyp tLangzahl als Klasse modelliert und - zumindest teilsweise - implementiert werden. Die Grundoperationen Addition, Subtraktion, Multiplikation und Division sind als Methoden Plus(), Minus(), Mal() und Durch() zu realisieren. Anfangs sollen die Zahlen noch vorzeichenfrei und ganzzahlig sein. a) Beginnen Sie mit einfachen Beispielen zu Addition und Division. Analysieren Sie, welche Datenstruktur zur Aufnahme der Ziffernfolge sinnvoll ist. Modellieren Sie mittels UML-Klassendiagramm dann die Klasse tLangzahl mit sämtlichen Attributen und Methoden. Kontrollieren Sie die notwendigen Schutzklassen. Notieren Sie auch geeignete Aufrufe zur Berechnung z. B. von 12+345 ; 12+23+345 ; 5678:123 Untersuchen Sie immer wieder kritisch Ihren Modellierungsansatz hinsichtlch späterer Erweiterung auf vorzeichenbehaftete, auch rationale Zahlen und weiterer Methoden (Potenzieren, Bruchrechnen, ...). |
|
b) Führen Sie die Methode tLangzahl.Plus() in Form eines Grobalgorithmus und/oder eines Struktogrammes näher aus. Tuen Sie dies auch für die Methode tLangzahl.Durch(). |
|
c) Zur Eingabe der Langzahlen sollte ein String genutzt werden. Denkbar ist auch (wegen der Beschränkung auf 255 Zeichen), die Langzahl in Teilen einzugeben und diese mittels einer Methode tLangzahl.Append() zu verketten. d) Zusätzlich kann ggf. die Flexibilität der übergebbaren Zahlen durch Überladung der Methoden erreicht werden. Wägen Sie hierzu Aufwand und Nutzen ab. |
|
Weitere Materialien: Wichtiger Hinweis: Falls Inhalte von Verweisen (Links) nicht angezeigt werden, könnte das an einer falschen Konfigurierung des Zielservers liegen. Versuchen Sie dann mit Rechtsklick und Öffnen im neuen Fenster bzw. Register dort in der Adresszeile zu Beginn das angegebene Protokoll (https://) in die unsichere Variante (http://) zu ändern und den Link so aufzurufen. |
|
|
|
Dokumentierende Tafelbilder:
|
|
© 2006-2019 Ziemke .:. Letzte Aktualisierung am 12. März 2019 durch den WebMaster