- Zu Aufgabe 1 - Umsetzung der Python-Klasse 'BankAccount' für die Verwaltung von Kontoständen, Einzahlungen und Abhebungen
- Zu Aufgabe 2 - Einfacher Taschenrechner in C++: Übersetzung der Python-Klasse 'Calculator' mit den Grundrechenarten
- Zu Aufgabe 3 - Lösung quadratischer Gleichungen
- Zu Aufgabe 4 - Sichtbarkeit der Bühne
- Fazit
Aufgabe 1: Umsetzung der Python-Klasse 'BankAccount' für die Verwaltung von Kontoständen, Einzahlungen und Abhebungen
Gegeben ist eine Python-Klasse namens "BankAccount", die ein Bankkonto repräsentiert. Die Klasse besitzt eine Konstruktor welche, den Kontostand des Kontos auf 0 setzt. Die Klasse hat ebenfalls Methoden, um den Kontostand abzufragen, Einzahlungen zu tätigen und Abhebungen vorzunehmen. Übersetzen Sie dann diese Klasse in C++ und implementieren Sie die gleiche Funktionalität:
Promt: Übersetze diesen Python Code in C++:
|
Ergebnis:
Hier ist der übersetzte C++ Code:
|
Der C++ Code definiert eine Klasse "BankAccount", die ähnliche Funktionalität wie die Python-Klasse bereitstellt. Die Klasse hat eine private Variable "balance", die den Kontostand des Bankkontos speichert. Der Konstruktor setzt den Kontostand auf 0. Die Methoden "get_balance", "deposit" und "withdraw" entsprechen den entsprechenden Python-Methoden.
In der "withdraw" Methode wird eine Ausnahme ausgelöst, wenn der Kontostand nicht ausreichend ist, um den angeforderten Betrag abzuheben. Die main-Funktion demonstriert die Verwendung der BankAccount-Klasse durch Erstellen eines Bankkontos, Einzahlen von Geld und Abheben von Geld.
Überprüfung mit converter Python | C++ Converter:
|
Aufgabe 2: Einfacher Taschenrechner in C++: Übersetzung der Python-Klasse 'Calculator' mit den Grundrechenarten
Gegeben ist eine Python-Klasse die einen einfachen Taschenrechner darstellt. Die Klasse besitzt die vier Grundrechenarten (Addition, Subtraktion, Multiplikation und Division). Schreiben Sie eine Übersetzung dieser Klasse in C++.
|
Promt: Übersetze diesen Python Code in C++:
|
Ergebnis:
Hier ist eine Übersetzung der Python-Klasse Calculator in C++:
|
In C++ wird die throw-Anweisung verwendet, um eine Ausnahme zu erzeugen, wenn die Division durch Null aufgerufen wird. Die Ausnahme wird durch die Klasse std::invalid_argument dargestellt, die in der stdexcept-Bibliothek definiert ist.
Beachte, dass in C++ Methoden standardmäßig nicht virtual sind. Wenn Sie Polymorphismus in Ihrer Klasse verwenden möchten, sollten Sie die Methoden als virtual deklarieren.
Überprüfung mit converter Python | C++ Converter:
|
Aufgabe 3: Lösung quadratischer Gleichungen
Eine quadratische Gleichung a x² + b x + c = 0 hat entweder 0, 1 oder 2 verschiedene Lösungen für reelle Werte von x. Wenn a, b und c gegeben sind, sollten Sie die Anzahl der Lösungen für die Gleichung zurückgeben. Übersetzen Sie diesen Python Code anschließend in C++.
Beispiel:
solutions(1, 0, -1) ➞ 2
// x² - 1 = 0 has two solutions
solutions(1, 0, 0) ➞ 1
// x² = 0 has one solution
solutions(1, 0, 1) ➞ 0
// x² + 1 = 0 has no real solutions.
Prompt:
Übersetze diesen Python Code in C++:
|
Ergebnis:
Hier ist der Code in C++:
|
In C++ verwenden wir die Funktion pow() aus der Bibliothek <cmath>, um das Quadrat von b zu berechnen. Der Rest des Codes bleibt gleich.
Überprüfung mit converter Python | C++ Converter:
Aufgabe 4: Sichtbarkeit der Bühne
Erstellen Sie eine Funktion, die bestimmt, ob jeder Sitz die vordere Bühne „sehen“ kann. Eine Zahl kann die vordere Stufe „sehen“, wenn sie größer als die Zahl davor ist.
Beispiel:
# FRONT STAGE
[[1, 2, 3, 2, 1, 1],
[2, 4, 4, 3, 2, 2],
[5, 5, 5, 5, 4, 4],
[6, 6, 7, 6, 5, 5]]
# Starting from the left, the 6 > 5 > 2 > 1, so all numbers can see.
# 6 > 5 > 4 > 2 - so all numbers can see, etc.
# FRONT STAGE
[[1, 2, 3, 2, 1, 1],
[2, 4, 4, 3, 2, 2],
[5, 5, 5, 10, 4, 4],
[6, 6, 7, 6, 5, 5]]
# The 10 is directly in front of the 6 and blocking its view.
Prompt: Übersetze diesen Python Code in C++
|
Ergebnis ChatGPT:
Hier ist der Code in C++, der die Funktion can_see_stage übersetzt:
|
Diese Übersetzung verwendet einen Vektor, um die Sitzplätze zu repräsentieren. Die Funktion überprüft jede Spalte und jede Zeile, um zu prüfen, ob die Zahl in jeder Zeile streng größer ist als die Zahl in der darunterliegenden Zeile. Wenn an irgendeiner Stelle eine Verletzung gefunden wird, wird sofort false zurückgegeben. Wenn die Schleifen ohne Verletzungen abgeschlossen werden, bedeutet dies, dass jeder Sitzplatz die Bühne sehen kann, und die Funktion gibt true zurück.
Bitte beachten Sie, dass diese Übersetzung voraussetzt, dass die Sitzplätze als zweidimensionaler Vektor von Ganzzahlen (int) übergeben werden. Stellen Sie sicher, dass Sie den entsprechenden Header vector eingebunden haben, um Vektoren zu verwenden.
Überprüfung mit converter Python | C++ Converter:
Das Übersetzen von Python nach C++ mithilfe von ChatGPT ermöglicht die Umwandlung von Python-Code in äquivalenten C++-Code. ChatGPT kann dabei helfen, die Unterschiede in der Schreibweise zu berücksichtigen, erforderliche Anpassungen vorzunehmen und den Code korrekt zu übersetzen. Durch die Umwandlung von Python-Funktionen, Klassen und anderen Elementen in äquivalente C++-Konstrukte können Python-Programme in C++-Programme überführt werden. Die Übersetzung wurde auch mit dem "Python | C++ Converter" überprüft und das Ergebnis war identisch mit der manuellen Übersetzung. Es ist dennoch empfehlenswert, die ChatGPT-Übersetzung durch einen Converter prüfen zu lassen. |