Выполните сложение двух дробных чисел в Pascal ABC через while

0 голосов
49 просмотров

Выполните сложение двух дробных чисел в Pascal ABC через while


Информатика (163 баллов) | 49 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

Var
  i,z:integer;
  a:array[1..2,1..3]of integer;
  begin
for i:=1 to 2 do
  begin
  write('Введите числитель и знаменатель дроби (через пробел): ');
  readln(a[1,i],a[2,i]);
  end;
a[2,3]:=a[2,1]*a[2,2]; 
a[1,3]:=a[1,1]*a[2,2]+a[1,2]*a[2,1];
z:=a[1,3] div a[2,3];
a[1,3]:=a[1,3] mod a[2,3];
i:=a[2,3];
while i>1 do
   begin
   if (a[2,3] mod i=0) and (a[1,3] mod i=0) then
     begin
     a[2,3]:=a[2,3] div i;
     a[1,3]:=a[1,3]div i;
     i:=a[2,3];
     end
     else i:=i-1;
   end;
write(a[1,1],'/',a[2,1],'+',a[1,2],'/',a[2,2],'=');
if z>0 then write(z);
if a[1,3]>0 then writeln('(целая часть) ',a[1,3],'/',a[2,3],'(дробная часть)')
end.