На Паскале:
Цитата:
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