Помощь - Поиск - Пользователи - Календарь
Полная версия: задача на дроби
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
zoha
Даны 2 дроби А/В и С/D (ADCй - натуральное число). Составить программу для сложения дробей. Результат должен быть несократимой дробью.
Что то не так! Проверьте пожалуйста!

Код
Program 3;
var n, i: integer;

begin
Readln (n);
writeln('Dividers: ');

for i := 1 to n div 2 do
  if (n mod i) = 0 then begin
    write(i,'  ');
      end;
writeln(n);
readln
end.
sheka
По идее код должен вывести ВСЕ делители числа 2. И?
potter-by

{Дополнительные переменные введены на случай,
если требуется сохранение исходных данных (в конце вывод действий)}
var a,b,c,d,a1,c1,nod_b,nod_d,zn,ch: integer;
begin
write('Введите числитель 1-й дроби: ');
readln(a);
repeat
write('Введите знаменатель 1-й дроби: ');
readln(b);
until b<>0;
write('Введите числитель 2-й дроби: ');
readln©;
repeat
write('Введите знаменатель 2-й дроби: ');
readln(d);
until d<>0;
nod_b:=b;
nod_d:=d;
while nod_b<>nod_d do
if nod_b>nod_d then nod_b:=nod_b-nod_d
else nod_d:=nod_d-nod_b;
zn:=(b*d) div nod_d;
a1:=zn div b;
c1:=zn div d;
ch:=a*a1+c*c1;
//writeln(ch,'/',zn);
a1:=ch;
c1:=zn;
while a1<>c1 do
if a1>c1 then a1:=a1-c1
else c1:=c1-a1;
ch:=ch div a1;
zn:=zn div a1;
writeln(a,'/',b,'+',c,'/',d,'=',ch,'/',zn);
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.