Работа 3.5 Упр.4 Задание 1 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 4. Даны две дроби A/B и C/D (А, В, С, D — натуральные числа). Составить программу умножения дроби на дробь. Ответ должен быть несократимой дробью. Использовать подпрограмму алгоритма Евклида для определения НОД. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-5/zad1/4 98
При умножении дробей числители перемножаются, как и знаменатели:
$$\frac{A}{B}\cdot\frac{C}{D}=\frac{A\cdot C}{B\cdot D}$$
Чтобы результат был несократимой дробью, нужно найти НОД числителя и знаменателя с помощью алгоритма Евклида и разделить обе части дроби на этот НОД.
Подпрограмма для НОД может быть такой:
function NOD(x, y: integer): integer;
begin
while x <> y do
begin
if x > y then x := x — y
else y := y — x;
end;
NOD := x;
end;
Основная программа считывает четыре натуральных числа, вычисляет произведение дробей, находит НОД и выводит сокращённый результат.
var
a, b, c, d, p, q, g: integer;function NOD(x, y: integer): integer;
begin
while x <> y do
begin
if x > y then x := x — y
else y := y — x;
end;
NOD := x;
end;begin
readln(a, b, c, d);
p := a * c;
q := b * d;
g := NOD(p, q);
writeln(p div g, ‘/’, q div g);
end.
Ответ
Программа умножает две дроби, находит НОД числителя и знаменателя алгоритмом Евклида и выводит несократимую дробь.