Есть ответ 👍

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

260
448
Посмотреть ответы 2

Ответы на вопрос:


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: =a end; 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)*sgnb end; 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.
юра416
4,8(28 оценок)

Cls input "a="; s$ l = len(s$) max = val(right$(s$, 1)) min = val(right$(s$, 1)) for i = 1 to l k = val(mid$(s$, i, 1)) if k < min then min = k end if if k > max then max = k end if next i print "max ="; max print "min ="; min

Популярно: Информатика