REPEAT...UNTIL

unit Unit1;

interface

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

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

var
  Form1: TForm1;

implementation
var a,b,c,d,ggt, Rest :integer;
                  kgV :real;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
      a:=strtoint(edit1.Text);
      b:=strtoint(edit2.Text);
      c:=a;
      d:=b;

      repeat
        Rest:=a mod b;
        a:=b;
        b:=Rest;
      until Rest=0;

        ggt:=a;
        kgV:=c*d/ggt;

        Label4.Caption:='Der ggT beträgt '+floattostr(ggt);
        Label6.Caption:='Das kgV beträgt '+floattostr(kgV);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
      edit1.Text:='';
      edit2.text:='';
      label4.Caption:='';
      label6.Caption:='';

end;

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

end.
 
Schreibe das Programm, so um, dass der größte gemeinsame Teiler mit Hilfe eines Unterprogramms function ermittelt wird. 
Zur Wiederholung : siehe Quadratische Funktion