LU10.A03: Logikfehler

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()

Die ggT-Berechnung geschieht nach dem Algorithmus von Steiner nach Euklid.

  1. R wird zum Divisionsrest aus A / B. (Falls B > A, so wird R einfach zu A.)
  2. Ist R = 0, so ist B der ggT, und das Unterprogramm wird beendet.
  3. Der Variable A wird der Wert von B zugewiesen, und der Variable B wird R zugewiesen.
  4. Zurück zu 1.
  1. Akzeptieren Sie das Assignment im GitHub Classroom
  2. Klonen Sie ihr Repository in PyCharm.
  3. Führen Sie die Tests in main_test.py aus. Schauen Sie, welche Testfälle fehlerhaft sind.
  4. Verfolgen Sie den Programmablauf mit dem Debugger.
  5. Korrigieren Sie den/die Fehler und führen Sie die Tests erneut aus.
  6. Commit & Push
  • modul/archiv/m319python/learningunits/lu10/aufgaben/ggt_logikfehler.txt
  • Last modified: 2024/03/28 14:07
  • by 127.0.0.1