Как можно найти сумму 1 + 1/2 + 1/3 + ... + 1/N для натурального числа N, и какой алгоритм можно использовать для этого? Напишите два варианта программы на Паскале: один с циклом "до", а другой с циклом "пока".
Информатика 8 класс Алгоритмы и программирование сумма 1 + 1/2 + 1/3 + ... + 1/N алгоритм нахождения суммы программа на Паскале цикл "до" цикл "пока"
Чтобы найти сумму ряда 1 + 1/2 + 1/3 + ... + 1/N для натурального числа N, мы можем использовать простой алгоритм, который включает в себя следующие шаги:
Теперь давайте рассмотрим два варианта программы на Паскале: один с циклом "до", а другой с циклом "пока".
Вариант 1: Программа с циклом "до"
program SumSeriesDo;
var
N, i: integer;
sum: real;
begin
sum := 0;
write('Введите натуральное число N: ');
readln(N);
i := 1;
// Цикл "до"
repeat
sum := sum + 1 / i;
i := i + 1;
until i > N;
writeln('Сумма ряда 1 + 1/2 + 1/3 + ... + 1/', N, ' = ', sum:0:4);
end.
Вариант 2: Программа с циклом "пока"
program SumSeriesWhile;
var
N, i: integer;
sum: real;
begin
sum := 0;
write('Введите натуральное число N: ');
readln(N);
i := 1;
// Цикл "пока"
while i <= N do
begin
sum := sum + 1 / i;
i := i + 1;
end;
writeln('Сумма ряда 1 + 1/2 + 1/3 + ... + 1/', N, ' = ', sum:0:4);
end.
В обоих вариантах программы мы сначала запрашиваем у пользователя значение N, а затем рассчитываем сумму ряда, используя соответствующий цикл. Результат выводится с точностью до четырех знаков после запятой.