Работа 3.5 Упр.5 Задание 1 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 5. Даны две дроби A/B и C/D (А, В, С, D — натуральные числа). Составить программу вычитания из первой дроби второй. Ответ должен быть несократимой дробью. Использовать подпрограмму алгоритма Евклида для определения НОД. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-5/zad1/5 98
Пусть первая дробь равна $$\frac{a}{b}$$, а вторая — $$\frac{c}{d}$$. Тогда
$$\frac{a}{b}-\frac{c}{d}=\frac{ad-bc}{bd}.$$
Чтобы получить несократимую дробь, нужно сократить числитель и знаменатель на их НОД. Для этого используем подпрограмму алгоритма Евклида.
function Euclid(a,b:integer):integer;
begin
while a<>b do
if a>b then a:=a-b else b:=b-a;
Result:=a;
end;var a,b,c,d: integer;
var zn, ch, gcd, sgn: integer;
begin
Write(‘Числитель и знаменатель первой дроби: ‘);
Read(a,b);
Write(‘Числитель и знаменатель второй дроби: ‘);
Read(c,d);zn := b * d;
ch := a * d — c * b;
sgn := Sign(ch);
ch := Abs(ch);
gcd := Euclid(ch, zn);Write(‘Результат вычитания: ‘);
if sgn = -1 then Write(‘-‘);
Writeln(ch div gcd, ‘/’, zn div gcd);
end.
Программа находит общий знаменатель, вычисляет числитель разности, определяет знак результата и сокращает дробь на НОД.
Ответ
Программа вычитает из первой дроби вторую и выводит результат в виде несократимой дроби.