====== LU08.A03: Logikfehler ====== ===== Aufgabenstellung ===== Der Sourcecode des Programms ''m319_lu10_wrongdivider'' enthält einen oder mehrere Fehler in der Programmlogik. Das Programm sollte den grössten gemeinsamen Teiler aus zwei Zahlen berechnen. def main(): """ Ermittelt den grössten gemeinsamen Teiler von zwei Ganzzahlen :return: None """ first_number = int(input('Gib die erste Ganzzahl ein > ')) second_number = int(input('Gib die zweite Ganzzahl ein > ')) while second_number != 0: modulo = first_number % second_number second_number = first_number first_number = modulo print(str(second_number)) if __name__ == '__main__': main() ===== Hinweis ===== Die ggT-Berechnung geschieht nach dem [[https://de.wikipedia.org/wiki/Steinscher_Algorithmus|Algorithmus von Steiner nach Euklid]]. - R wird zum Divisionsrest aus A % B. (Falls B > A, so wird R einfach zu A.) - Ist R = 0, so ist B der ggT, und das Unterprogramm wird beendet. - Der Variable A wird der Wert von B zugewiesen, und der Variable B wird R zugewiesen. - Zurück zu 1. ==== Vorgehen ==== - Akzeptieren Sie das Assignment im GitHub Classroom - Klonen Sie ihr Repository in PyCharm. - Führen Sie die Tests in ''main_test.py'' aus. Schauen Sie, welche Testfälle fehlerhaft sind. - Verfolgen Sie den Programmablauf mit dem Debugger. - Korrigieren Sie den/die Fehler und führen Sie die Tests erneut aus. - Commit & Push ==== Bonusfrage ==== Mit dem fehlerhaften Programm läuft ''test_2'' korrekt. Nachdem Sie das Programm korrigiert haben, zeigt ''test_2'' plötzlich einen Fehler an. Wie können Sie dieses Verhalten erklären? ----
//=> GitHub Repo für externe Besucher// GitHub-Repo: https://github.com/templates-python/m319-lu08-a03-logikfehler //Lernende am BZZ **müssen** den Link zum GitHub Classroom Assignment verwenden//
{{tag>M319-LU08}} [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter