Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:m320_2024:learningunits:lu12:aufgaben:calculatorext [2026/08/30 14:05] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1de:modul:m320_2024:learningunits:lu12:aufgaben:calculatorext [2026/08/30 14:06] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden msuter
Zeile 1: Zeile 1:
 +====== LU12.A01 - Polymorphie am Beispiel Taschenrechner ======
 +
 +<WRAP center round todo 60%>
 +Sie können eine bestehende OO-Anwendung erweitern.
 +</WRAP>
 +
 +===== Auftrag =====
 +Der von Ihnen erstellt Rechner soll neben den 4 Grundoperationen auch noch die Exponentialfunktion anbieten.
 +
 +{{modul:archiv:m320:learningunits:lu99:aufgaben:lu07-aufg4_klassendiagramm.png?250|}}
 +
 +Als Operationszeichen dient das Zeichen ''^''.\\
 +
 +===== Vorgehen =====
 +  - Verwenden Sie als Basis das Projekt aus [[.:modul:m320_2024:learningunits:lu11:aufgaben:calculator]]. 
 +  - Erstellen Sie einen neuen Branch mit Namen exposer. 
 +  - Erstellen Sie nun in diesem Branch Ihre Lösung.
 +    * Studieren Sie das Klassendiagramm der Klasse ''Tokenizer''. Wie können Sie weitere Operationszeichen zufügen? Passen Sie entsprechend **Ihren Code** an. 
 +  - Erstellen Sie die neue Klasse ''Exposer''. Suchen Sie im Internet nach einer Lösung, wie Sie in Python eine Potenz berechnen können.
 +  - Ergänzen Sie den Code, so dass die Operation ''^'' auch erkannt und die entsprechende Klasse instanziiert wird.
 +  - Testen Sie Ihre Anwendung. Die Eingabe 2^6 müsste 64 ergeben.
 +
 +===== Abgabe =====
 +Keine.
 +
 +===== Zu Polymorphie =====
 +Sie haben hier und jetzt gesehen, wie kräftig das Konstrukt der Polymorphie bei OO sein kann. 
 +Es bedarf aber einer guten Planung der Klassen und deren Methoden, damit Polymorphie auch wirklich genutzt werden kann. 
 +Diesen Teil - das OOD (object oriented design) - werden Sie im Rahmen des Schulunterrichts leider nicht erlernen.
 +
 +Darum ist es wichtig, dass Sie die gewonnenen Erkenntnisse mit auf Ihren beruflichen Weg nehmen und bei Gelegenheit sich weiteres Wissen rundum OO - so z.B. auch den Umgang mit Design Pattern - im Selbststudium aneignen.
 +
 +----
 +{{tag>M320-LU12}}
 +[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] René Probst, bearbeitet durch Marcel Suter