Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2011, 15:17   #1
trnext
 
Регистрация: 04.10.2011
Сообщений: 6
По умолчанию Не получается найти общий делитель

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

Код:
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 Кб, 26 просмотров)
trnext вне форума Ответить с цитированием
Старый 04.10.2011, 15:20   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А второй блок (выделен красным) — это к чему относится? Мб вы там else пропустили?
Код:
    if m < n then
    begin
      n1 := m;
      m1 := n;
    end;
    begin
      n1 := n;
      m1 := m;
    end;
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 05.10.2011, 17:06   #3
trnext
 
Регистрация: 04.10.2011
Сообщений: 6
По умолчанию

Вставил else, все равно не работает.
ошибка не вылетает, но не получается все равно найти общий делитель...
trnext вне форума Ответить с цитированием
Старый 05.10.2011, 17:49   #4
val_nnm
Форумчанин
 
Регистрация: 18.10.2009
Сообщений: 185
По умолчанию

ну вроде если исправить ошибку на которую указал Alex11223. то впринципе должно работать. можно только строку panel1.Caption:=IntToStr(R); перенести после end;
в результате у вас должно получиться
Код:
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 else
    begin
      n1 := n;
      m1 := m;
    end;
    while n1 > 0 do
    begin
      p := m1 mod n1;
      m1 := n1;
      n1 := p;
    end;
    R := m1;
  end;
  panel1.Caption:=IntToStr(R);
end;
после изменний скажите что выводит?
(если ничего невыводит, даже невыводит 0, то посмотрите в свойства копки, указанна ли там процедура Button1Click в качестве метода обработки нажатия на кнопку?)
На С# пишу лучше чем на русском.
"У меня правильнописание хромает. Оно хорошее, но почему-то хромает."
val_nnm вне форума Ответить с цитированием
Старый 11.10.2011, 18:12   #5
trnext
 
Регистрация: 04.10.2011
Сообщений: 6
По умолчанию

Спасибо за помощь!
trnext вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти наибольший общий делитель sektor2011 Помощь студентам 5 27.01.2011 17:36
определить общий делитель Antil Помощь студентам 2 01.11.2010 15:58
Как найти общий делитель? Xcopy Общие вопросы Delphi 2 13.09.2009 17:53
наибольший общий делитель Ge0rGE Помощь студентам 12 03.05.2009 20:09
Наименьший общий делитель Witaliy Помощь студентам 11 25.03.2009 13:20