unit Euklid;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Buttons, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    Label3: TLabel;
    Edit2: TEdit;
    Button1: TButton;
    Label4: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Label5: TLabel;
    Button2: TButton;
    Button3: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

var a, b, r, i : Integer;

procedure TForm1.Button1Click(Sender: TObject);
begin

     (* Zahlen einlesen *)

     a := StrToInt(Edit1.Text);
     b := StrToInt(Edit2.Text);
     r := b;
     i := 0;

     (* Euklidischer Algorithmus *)

     while r <> 0 do
      begin
       i := i + 1;
       r := a mod b;
       a := b;
       b := r;
      end;
    
     (* Schleifendurchläufe ausgeben *)
    
     Edit4.Text := IntToStr(i);

     (* ggT ausgeben *)
    
     Edit3.Text := IntToStr(a);
     if a = 1 then ShowMessage('Die beiden Zahlen sind teilerfremd.');

end.


procedure TForm1.Button2Click(Sender: TObject);
begin
     Edit1.Text := '1';
     Edit2.Text := '1';
     Edit3.Text := '1';
     Edit4.Text := '0';

end.


procedure TForm1.Button3Click(Sender: TObject);
begin
     close;

end.