- Zu Aufgabe 1 - Syntaxfehler beim Python-Taschenrechner: Debugging und Korrektur des Codes
- Zu Aufgabe 2 - Implementierung des binären Suchalgorithmus in Python
- Zu Aufgabe 3 - Nulldivision
- Zu Aufgabe 4 - Primzahltest-Durchläufe
- Fazit
1. Aufgabe: Syntaxfehler beim Python-Taschenrechner: Debugging und Korrektur des Codes
Ursprünglicher Code:
|
Error des Codes:
|
|
Prompt: Debugge mir diesen Code:
|
Ergebnis:
Gerne! Hier ist der Code, den Sie zur Fehlerbehebung bereitgestellt haben:
|
Dieser Code enthält eine Division durch 0, was zu einem Laufzeitfehler führt. Um diesen Fehler zu beheben, können Sie eine Überprüfung hinzufügen, um sicherzustellen, dass b nicht 0 ist, bevor die Division durchgeführt wird. Hier ist eine aktualisierte Version des Codes:
|
Wenn Sie den aktualisierten Code ausführen, erhalten Sie die Ausgabe:
|
Durch die Überprüfung auf eine Division durch 0 wird vermieden, dass der Fehler auftritt. Stattdessen wird eine Fehlermeldung ausgegeben und None wird zurückgegeben, um anzuzeigen, dass kein gültiges Ergebnis vorliegt.
Test in der Entwicklungsumgebung:
|
Output:
|
2. Aufgabe: Implementierung des binären Suchalgorithmus in Python
Error des Codes: None
Prompt: Debugge mir diesen Code:
|
Ergebnis ChatGPT:
Der Code, den Sie zur Verfügung gestellt haben, scheint korrekt zu sein und sollte die Primzahlen bis zum angegebenen Limit finden und ausgeben. Es gibt keinen offensichtlichen Fehler oder Anomalien im Code.
Ich werde den Code jedoch ausführen und eine zusätzliche Debugging-Anweisung hinzufügen, um den Verlauf der Schleifenvariablen zu überprüfen:
Wenn ich den Code mit dieser Debugging-Anweisung ausführe, erhalte ich die folgende Ausgabe:
|
Wenn ich den Code mit dieser Debugging-Anweisung ausführe, erhalte ich die folgende Ausgabe:
|
|
|
Die Ausgabe zeigt die Werte der Variablen num und divisor für jeden Schleifendurchlauf. Auf diese Weise können Sie überprüfen, ob die Schleifenlogik korrekt ist und ob die Variablen die erwarteten Werte haben.
In diesem Fall scheint der Code wie erwartet zu funktionieren und die Primzahlen bis zum angegebenen Limit zu finden.
Test in der Entwicklungsumgebung:
|
Output:
|
Debug der Variablen (zuzüglich der Primzahlen)
|
3. Aufgabe: Nulldivision
|
Error des Codes:
|
Promt: Debugge mir diesen Code:
|
Ergebnis:
Klar, hier ist der korrigierte Code:
|
Es gab zwei Fehler im ursprünglichen Code:
- In der for-Schleife wurde die Variable lst als list geschrieben, was zu einem NameError geführt hat. Es muss jedoch lst geschrieben werden, um die Liste aus der Funktionsargumentübergabe zu verwenden.
- Es gab keinen Doppelpunkt am Ende der for-Schleife, was zu einem Syntaxfehler geführt hat.
Durch diese beiden Korrekturen sollte der Code jetzt fehlerfrei ausgeführt werden. Die Funktion calculate_sum berechnet die Summe aller Zahlen in der übergebenen Liste lst, und das Ergebnis wird dann in der Variablen result gespeichert und ausgegeben.
Test in der Entwicklungsumgebung:
|
Output:
|
4. Aufgabe: Primzahltest-Durchläufe
|
Error des Codes:
|
Der Fehler in dieser Funktion ist ein logischer Fehler. Der Fehler tritt auf, wenn der Index des gesuchten Elements nicht im ersten Versuch gefunden werden kann. Der Index mid muss bei jedem Schleifendurchlauf aktualisiert werden, aber in der aktuellen Implementierung wird mid nur einmal am Anfang der Funktion berechnet.
|
Promt: Debugge mir diesen Code:
Ergebnis: Die korrigierte Version der Funktion ist:
|
Jetzt sollte die Funktion ordnungsgemäß ausgeführt werden und den Index des gesuchten Elements zurückgeben, wenn es im Array vorhanden ist.
Test in der Entwicklungsumgebung:
|
Output:
|
Auch beim Debuggen schneidet ChatGPT sehr gut ab. Zum einen hat es alle Fehler, die in den Codes enthalten waren, gefunden und gelöst. Zum anderen wurde, abgesehen von der Aufgabe „Implementierung des binären Suchalgorithmus in Python“, wie beim Schreiben von Code gute Erklärungen mitgeliefert. Neben der automatischen Fehlersuche kann die KI auch gegebenen Code schrittweise durchgehen, Werte dokumentieren und so bei der Fehlersuche unterstützen. Beispielsweise lassen sich so bei Schleifendurchläufen die Werte von beliebigen Variablen pro Durchlauf anzeigen, wie bei der Aufgabe „Primzahltest-Durchläufe“ gezeigt. Durch ChatGPT ist es also in den vielen Fällen nicht mehr nötig auf Seiten wie Stackoverflow langwierig nach potenziellen Lösungen zu suchen. Die Fehlersuche kann einfach von der künstlichen Intelligenz übernommen werden, ist vor allem bei häufig genutzten Algorithmen mit hoher Wahrscheinlichkeit erfolgreich und deutlich kürzer. |