imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 28.08.2005, 21:47     # 1
DOMRIK
Junior Member
 
Аватар для DOMRIK
 
Регистрация: 20.08.2003
Адрес: Москва, Раменки
Сообщения: 155

DOMRIK Нимб уже пробиваетсяDOMRIK Нимб уже пробивается
Помогите плиз с алгоритмом приведения дробей к общему знаменателю

Помогите плиз с алгоритмом приведения дробей к общему знаменателю
78. Даны дроби p1/q1, p2/q2, ..., pn/qn (pi, qi – натуральные). Составить программу, которая приводит эти дроби к общему знаменателю и упорядочивает их в порядке возрастания.
Плииииииииииииииз
__________________
Буду тупить, тупить и еще раз тупить... До полного просветления... Om mani padme hum
DOMRIK вне форума  
Старый 28.08.2005, 23:40     # 2
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
На Паскале:
Цитата:
function NOD(x,y:longint):longint;
begin
if x<>0 then NOD:=NOD(y mod x,x) else NOD:=y;
end;

function NOK(x,y:longint):longint;
begin
NOK:=( x div NOD(x,y) ) * y;
end;
НОК знаменателей двух дробей и будет твой общий знаменатель.
Для сравнения дробей просто приводи их к десятичной форме, т.е. дели числитель на знаменатель. А такие числа уже можно сравнивать в том же операторе if.

Для организации хранения в программе простых дробей видимо придется описать соответствующие структуры.
Вот тебе пример на Паскале, где реализовано хранение простых дробей и все основные операции http://www.mai.ru/org/auditory/program/pas/solver/solv0002.htm
ЕЖ вне форума  
Старый 28.08.2005, 23:52     # 3
Trotil
Advanced Member
 
Аватар для Trotil
 
Регистрация: 21.04.2005
Адрес: град Москва
Сообщения: 431

Trotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собой
Аналогичный пример на С:
Цитата:
int NOD(int a,int b)
{
while(a && b)
{
if(a>b) a=a%b;
else b=b%a;
}
return a+b; // Одно - ноль
}

int NOK(int x, int y)
{
return x * y / NOD(x, y);
}

int NOK(int x, int y, int z)
{
return NOK(NOK(x, y), z);
}
Trotil вне форума  
Старый 29.08.2005, 02:10     # 4
Trotil
Advanced Member
 
Аватар для Trotil
 
Регистрация: 21.04.2005
Адрес: град Москва
Сообщения: 431

Trotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собойTrotil Имеются все основания чтобы гордиться собой
Цитата:
ЕЖ:
Для сравнения дробей просто приводи их к десятичной форме, т.е. дели числитель на знаменатель. А такие числа уже можно сравнивать в том же операторе if.
Нафиг делить, если знаменатель уже одинаковый? Просто нужно провести сортировку по числителям безо всякого деления.
Trotil вне форума  
Старый 29.08.2005, 02:18     # 5
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Цитата:
Trotil:
Нафиг делить, если знаменатель уже одинаковый? Просто нужно провести сортировку по числителям безо всякого деления.
Прав, просто я не обратил внимание, что сортировать надо после приведения к общему знаменателю
ЕЖ вне форума  
Старый 29.08.2005, 15:24     # 6
DOMRIK
Junior Member
 
Аватар для DOMRIK
 
Регистрация: 20.08.2003
Адрес: Москва, Раменки
Сообщения: 155

DOMRIK Нимб уже пробиваетсяDOMRIK Нимб уже пробивается
Всем спасибо, тема закрыта
__________________
Буду тупить, тупить и еще раз тупить... До полного просветления... Om mani padme hum
DOMRIK вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 11:29.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.