Table of Contents

Anhang: GGT

Dieses Beispiel berechnet den groessten gemeinsamen Teiler (GGT) zweier Zahlen.

Programm

var x, y, t;
begin
  ? x;
  ? y;
  while y # 0 do
  begin
    t := x;
    x := y;
    y := t - (t / y) * y
  end;
  ! x
end.

📥 Programm herunterladen

Erklaerung

  • Die Schleife implementiert den Euklidischen Algorithmus.
  • Ergebnis ist der Wert von x.

Details

  • Euklidischer Algorithmus per wiederholter Subtraktion/Division.
  • Ergebnis ist der GGT.

Beispiel

Eingabe:

54 24

Ausgabe:

6

Testfaelle

  • 8 12 -> 4
  • 7 3 -> 1

Ausfuehrung

Beispiel:

dotnet run --project src/Pl0.Cli -- examples/appendix/ggt/program.pl0

Tipp: Fuege --list-code hinzu, um den P-Code zu sehen. Fuege noch --wopcod hinzu, um zusaetzlich den Op-Code anzuzeigen.

P-Code anzeigen:

dotnet run --project src/Pl0.Cli -- examples/appendix/ggt/program.pl0 --list-code

P-Code mit Op-Codes anzeigen:

dotnet run --project src/Pl0.Cli -- examples/appendix/ggt/program.pl0 --list-code --wopcod