Работа 3.5 Упр.6 Задание 1 ГДЗ Семакин 10 класс (Информатика)
Рассмотрим вариант решения задания из учебника Семакин, Хеннер, Шеина 10 класс, Бином: 6. Написать программу вычисления суммы 1 + 1/2 + 1/3 + … + 1/n для заданного числа n. Результат представить в виде несократимой дроби p/q (р, q — натуральные). Использовать подпрограммы алгоритма Евклида для определения НОД и сложения двух простых дробей. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 10 semakin10 pract/3-5/zad1/6 98
Сумму $$1+\frac{1}{2}+\frac{1}{3}+\dots+\frac{1}{n}$$ удобно накапливать как дробь $$\frac{p}{q}$$. Сначала берём $$p=1$$, $$q=1$$, а затем последовательно прибавляем очередную дробь $$\frac{1}{i}$$.
Если к дроби $$\frac{p}{q}$$ прибавить $$\frac{1}{i}$$, то получим:
$$\frac{p}{q}+\frac{1}{i}=\frac{p\cdot i+q}{q\cdot i}$$
Значит, после каждого шага нужно обновлять числитель и знаменатель по формулам:
$$p:=p\cdot i+q$$
$$q:=q\cdot i$$
После вычисления суммы дробь нужно сократить. Для этого используют алгоритм Евклида для нахождения НОД числителя и знаменателя, а затем делят оба числа на этот НОД.
var
p, q, n: integer;procedure sum(var p, q, n: integer);
var
i: integer;
begin
p := 1;
q := 1;
for i := 2 to n do
begin
p := p * i + q;
q := i * q;
end;
end;begin
write(‘n=’);
readln(n);
sum(p, q, n);
write(‘Summa=’, p, ‘/’, q);
readln
end.
Программа вводит $$n$$, вычисляет сумму в виде дроби и выводит результат как $$p/q$$.
Ответ
Программа вычисляет сумму $$1+\frac{1}{2}+\frac{1}{3}+\dots+\frac{1}{n}$$ и выводит её в виде дроби $$p/q$$.