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.
1) 9 13 11 - единственная возможная разбивка Сумма старших разрядов могла быть равна 8 и тогда сумма средних 13 правильно помещена правее. Сумма старших разрядов также могла быть равна 13 и тогда сумма средних разрядов правильно приписана слева. Число могло быть построено. 2) Число 111319 невозможно разбить на три части так, чтобы каждая часть не превышала 9+9=18. Число не могло быть построено. 3) 14 0 1 - единственная возможная разбивка. Сумма старших разрядов не может быть нулевой, потому что тогда числа будут двухзначными. Следовательно 0 может быть только суммой средних цифр. Но она меньше суммы старших цифр и должна быть помещена левее их. Число не могло быть построено. 4. 13 11 18 - единственная возможная разбивка. Сумма старших разрядов могла быть равна 13, но тогда сумма средних 11 должны быть помещена левее. Сумма старших разрядов могла быть равна 11, но тогда сумма средних разрядов 13 должна быть приписана справа. Число не могло быть построено.
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.
Сумма старших разрядов могла быть равна 8 и тогда сумма средних 13 правильно помещена правее. Сумма старших разрядов также могла быть равна 13 и тогда сумма средних разрядов правильно приписана слева.
Число могло быть построено.
2) Число 111319 невозможно разбить на три части так, чтобы каждая часть не превышала 9+9=18.
Число не могло быть построено.
3) 14 0 1 - единственная возможная разбивка.
Сумма старших разрядов не может быть нулевой, потому что тогда числа будут двухзначными. Следовательно 0 может быть только суммой средних цифр. Но она меньше суммы старших цифр и должна быть помещена левее их.
Число не могло быть построено.
4. 13 11 18 - единственная возможная разбивка.
Сумма старших разрядов могла быть равна 13, но тогда сумма средних 11 должны быть помещена левее. Сумма старших разрядов могла быть равна 11, но тогда сумма средних разрядов 13 должна быть приписана справа.
Число не могло быть построено.