Даны две дроби a/b и c/d (a,b,c,d - натуральные числа). составить программу умножения дроби на дробь. ответ должен быть несократимой дробью. использовать подпрограмму алгоритма евклида для определения нод
260
448
Ответы на вопрос:
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.
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
Популярно: Информатика
-
УмнаяДебилка11.08.2020 18:23
-
alex394216.05.2021 07:03
-
lemon23401.05.2020 14:21
-
тигр18710.10.2022 06:09
-
Diana200512310520.05.2020 01:46
-
ALDIAR1106.10.2020 22:19
-
буля410.01.2023 05:04
-
robotkiborg14.01.2023 13:48
-
иоапгрдгоп17.02.2021 21:41
-
svetlana671223.05.2023 03:32