Root /ArchiveAbout
()

Сумма N слагаемых и произведение N сомножителей

Сумма N слагаемых и произведение N сомножителей

Снова здравствуйте. ☻ Продолжаем изучать оператор цикла с параметром for. Ниже следующие 5 заданий из решебника Абрамяна.

For10. Дано целое число N (> 0). Найти сумму 1 + 1/2 + 1/3 + ... + 1/N (вещественное число).

var
  i, N: integer;
  S: real; { <-- Искомая сумма }

begin
  write('N = ');
  readln(N);
  S := 0; { <== Начальное значение суммы }
  for i := 1 to N do
    S := S + 1 / i;
  writeln;
  writeln('Сумма первых ', N,
    ' членов гармонического ряда: ', S);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

For11. Дано целое число N (> 0). Найти сумму N2 + (N + 1)2 + (N + 2)2 + ... + (2·N)2 (целое число).

var
  i, N, Sum: integer;

begin
  write('N = ');
  readln(N);
  Sum := 0; { <== Начальное значение суммы }
  for i := N to 2 * N do
    Sum := Sum + sqr(i); { <== Увеличиваем сумму на i^2 }
  writeln;
  writeln('Сумма: ', Sum);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

For12. Дано целое число N (> 0). Найти произведение 1.1 · 1.2 · 1.3 · ... (N сомножителей).

var
  i, N: word;
  D: real;

begin
  write('N = ');
  readln(N);
  D := 1; { <== Начальное произведение }
  for i := 1 to N do
    D := D * (1 + i / 10);
  writeln;
  writeln('D = ', D);
  readln
end.

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535

**type** word;: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535

For13. Дано целое число N (> 0). Найти значение выражения 1.1 − 1.2 + 1.3 − ... (N слагаемых, знаки чередуются). Условный оператор не использовать.

var
  i, N: integer;
  a, S: real;

begin
  write('N = ');
  readln(N);
  a := -1; { <== начальное значение члена ряда }
  S := 0; { <== начальная сумма }
  for i := 1 to N do
  begin
    a := -a * (1 + i / 10); { <== i-й член ряда }
    S := S + a { <== находим сумму }
  end;
  writeln;
  writeln('Сумма: ', S);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

For14. Дано целое число N (> 0). Найти квадрат данного числа, используя для его вычисления следующую формулу:

N2 = 1 + 3 + 5 + ... + (2·N − 1).

После добавления к сумме каждого слагаемого выводить текущее значение суммы (в результате будут выведены квадраты всех целых чисел от 1 до N).

var
  i, N, A: integer;

begin
  write('N = ');
  readln(N);
  A := 0; { <== Начальное значение квадрата числа }
  writeln;
  writeln('Квадраты натуральных чисел от 1 до ', N, ':');
  writeln('':6, '-------------------');
  writeln('      | числа | квадраты |');
  writeln('':6, '-------------------');
  for i := 1 to N do
  begin
    A := A + 2 * i - 1; { <== увеличиваем сумму }
    { Выводим результат в столбец (числа - квадраты): } 
    writeln('':6, '|', i:6, ' | ', A:9, '|')
  end;
  readln
end.

$1 $2