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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.10.2011, 20:49   #1
StoneGod
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 15
По умолчанию даны m и n, m-числитель, n-знаменатель. Сократить дробь

даны m и n, m-числитель, n-знаменатель. Сократить дробь
Код:
program dsf;
var m,n:real;
  function nod( a, b: longint): longint;
  begin
  while (a <> 0) and (b <> 0) do
  if a >= b then
  a:= a mod b
  else
  b:= b mod a;
  nod:= a + b;
  end;
begin
writeln('vvedi m and n');
readln(m,n);
m:=m/nod(m,n);
n:=n/nod(m,n);
writeln(m,'/',n);
end.
______________
1) Название темы по правилам форума должно адекватно отражать суть решаемой задачи/проблемы.
На первый раз я исправил.
В последующем, темы с подобным названием будут закрываться или удаляться,
а автор такой темы будет получать штрафные баллы.

2) Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)

Модератор.

Последний раз редактировалось Serge_Bliznykov; 05.10.2011 в 00:07.
StoneGod вне форума Ответить с цитированием
Старый 04.10.2011, 20:53   #2
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

если функция и правильно находит общий делитель, то нужно ее значение запомнить в переменной и использовать его, т.к. после
Код:
m:=m/nod(m,n);
при последующем ее вызове она находит для измененого m и исходного значения n
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 04.10.2011, 20:58   #3
StoneGod
Пользователь
 
Регистрация: 13.09.2011
Сообщений: 15
По умолчанию

у меня в этой строчке
PHP код:
m:=m/nod(m,n); 
выдает 26 ошибку
StoneGod вне форума Ответить с цитированием
Старый 04.10.2011, 23:17   #4
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

... в функции входные параметры целого типа, а вы передаете ей вещественного
Код:
program dsf;
var m,n,k:longint;
  function nod( a, b: longint): longint;
  begin
  while (a <> 0) and (b <> 0) do
  if a >= b then
  a:= a mod b
  else
  b:= b mod a;
  nod:= a + b;
  end;
begin
writeln('vvedi m and n');
readln(m,n);
k:=nod(m,n);
m:=trunc(m/k);
n:=trunc(n/k);
writeln(m,'/',n);
end.
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
несократимая дробь druger Помощь студентам 6 02.10.2011 18:53
Delphi, ошибка деления на ноль, хотя знаменатель не ноль Эренка Помощь студентам 7 22.04.2010 15:56
Несократимая дробь strateg66 Помощь студентам 1 20.12.2009 15:34
Переделать дробь в натуральное число pro100-delphi Паскаль, Turbo Pascal, PascalABC.NET 2 26.09.2009 08:24