Показать сообщение отдельно
  #1  
Старый 04.10.2011, 15:15
trnext trnext вне форума
Прохожий
 
Регистрация: 04.10.2011
Сообщения: 3
Репутация: 10
По умолчанию Не получается найти общий делитель

Неполучается найти наибольший общий делитель двух чисел.
Поискал в инете, вот нашел.
Где то здесь есть ошибка.
Помогите найти и исправить.

Код:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Button1: TButton;
    Panel1: TPanel;
procedure Button1Click(Sender: TObject);

private

    { Private declarations }

public

    { Public declarations }

  end;


var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
 var
  p, n1, m1, n, m, R: LongWord;
begin
   n:= StrToInt(edit1.text);
   m:= StrToInt(edit2.Text);
  if (n = 0) or (m = 0) then
    R:= 0
  else
  begin
    if m < n then
    begin
      n1 := m;
      m1 := n;
    end;
    begin
      n1 := n;
      m1 := m;
    end;
    while n1 > 0 do
    begin
      p := m1 mod n1;
      m1 := n1;
      n1 := p;
    end;
    R := m1;
    panel1.Caption:=IntToStr(R);
  end;
end;
end.
Изображения
Тип файла: jpg jpeg.jpg (16.0 Кбайт, 3 просмотров)
Ответить с цитированием