• Даны две дроби a/b и c/d (a,b,c,d - натуральные числа). составить программу умножения дроби на дробь. ответ должен быть несократимой дробью. использовать подпрограмму алгоритма Евклида для определения НОД

Ответы 1

  • PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018Внимание! Если программа не работает, обновите версию!function gcd(a,b:integer):integer; // НОДbegin  while b<>0 do begin a:=a mod b; Swap(a,b) end;  Result:=aend;procedure RedFrac(var a,b:integer); // сокращение дробиbegin  var (sgna,sgnb):=(Sign(a),Sign(b)); // мы должны учитывать знак!  (a,b):=(Abs(a),Abs(b));  var d:=gcd(a,b);  a:=(a div d)*sgna; b:=(b div d)*sgnbend;begin  var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');  var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');  (a,b):=(a*c,b*d);  RedFrac(a,b);  Writeln('Результат умножения: ',a,' / ',b)end.ПримерВведите числитель и знаменатель 1-й дроби: 32 1024Введите числитель и знаменатель 2-й дроби: 60 300Результат умножения: 1 / 160В качестве бонуса - решение на базе входящей в состав PascalABC.NET библиотеки численных методовuses NumLibABC;begin  var (a,b):=ReadInteger2('Введите числитель и знаменатель 1-й дроби:');  var (c,d):=ReadInteger2('Введите числитель и знаменатель 2-й дроби:');  Writeln('Результат умножения: ',Frc(a,b)*Frc(c,d))end.
    • Автор:

      lady
    • 5 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years