Var a,b,c,d,x,y,z,y1,z1,y2,z2,nod:integer; begin writeln('1-я дробь (числитель и знаменатель):'); readln(a,b); writeln('2-я дробь (числитель и знаменатель):'); readln(c,d); y1:=a*d+c*b; y2:=y1; z1:=b*d; z2:=z1; while (y2>0)and(z2>0) do if y2>z2 then y2:=y2 mod z2 else z2:=z2 mod y2; nod:=y2+z2; y1:=y1 div nod; z:=z1 div nod; x:=y1 div z; y:=y1 mod z; if x>0 then writeln(x,' ',y,'/',z) else writeln(y,'/',z); end.
Пример: 1-я дробь (числитель и знаменатель): 1 10 2-я дробь (числитель и знаменатель): 2 5 1/2
1 0 0 начало 2 5 0 налить 5-ти литровое из родника 3 0 5 перелить из 5-ти в 9-ти л 4 5 5 налить в 5-ти из родника 5 1 9 из 5-ти долить 9-ти л 6 1 0 вылить воду из 9-ти л 7 0 1 из 5-ти л перелить в 9-ти 8 5 1 наполнить 5-ти л из родника 9 0 6 из 5-ти л перелить в 9-ти 10 5 6 наполнить 5-ти л из родника 11 2 9 из 5-тил долить 9-ти л 12 2 0 вылить из 9-ти л 13 0 2 из 5-ти л перелить в 9-ти л 14 5 2 налить из родника в 5-ти л 15 0 7 вылить из 5-ти л в 9-ти л 16 5 7 набрать из родника в 5-ти л 17 3 9 долить 9-ти л из 5-тил и в 5-ти л останутся заветные 3 литра 18 3 0 выливаем из 9-ти л 19 КОНЕЦ
2*20*20=800делим на 200=4 бит 1 символ =>2 в 4 степени .умнажаем 2 на степень=16 мощность