sergeev-alp5
?>

Дано число n. Обчислити ∑_(k=1)^n▒k!/(1/2+1/3+1/4+⋯+1/(k+1))

Информатика

Ответы

tatasi

ответ: 110.

Объяснение:

Максимально подробно.

В начале программы переменная s равна 0, n - 10.

Далее идет цикл "for" от 0 до n, то есть от 0 до 10.

Цикл "for" - последовательность команд, которые программа будет выполнять какое-то количество раз (в данном случае 11 раз:

для "i" равного 0,1,2,3,4,5,6,7,8,9 и 10).

Последовательность команд описывается между словами begin и end:

if і = n-i then s:=s+A[i]+A[i+1];

Рассмотрим подробнее эту строчку. В ней проверяется равенство:

i = n-i

Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Если же неверно - программа переходит к следующему значению i.

n - число постоянное и нигде не меняется, оно равно 10, то есть условие выглядит так:

i = 10-i

Когда такое возможно? "i" у нас меняется от 0 до 10 включительно. Посмотрим. Для этого мысленно продумаем весь ход работы программы. В начале i равно 0. Смотрим условие:

0 = 10 - 0

Неверно. 0 не равно 10. Далее программа переходит к следующему i, то есть единице.

i=1: 1 = 10 - 1

Тоже неверно. 1 не равно 9.

i=2: 2 = 10 - 2 Неверно. 2 не равно 8.

i=3: 3 = 10 - 3 Неверно. 3 не равно 7.

i=4: 4 = 10 - 4 Неверно. 4 не равно 6.

i=5: 5 = 10 - 5

Верно. Если это равенство верно, то программа переходит к инструкции, описанной после слова then: s:=s+A[i]+A[i+1];

Здесь к переменной "s", которая изначально равна нулю, прибавляется сама s, то есть 0, и значение элементов массива "A" под индексами i и i+1.

i у нас равно 5.

Следовательно: s=0+A[5]+A[5+1]

Или s=0+A[5]+A[6].

Посмотрим на массив:

(0,10,20,30,40,50,60,70,80,90,100)

A[0]=0, A[1]=10.

Значит пятый элемент равен 50, а шестой - 60.

Следовательно наше выражение:

s=0+A[5]+A[6] = 0 + 50 + 60 = 110.

Но на этом работа программы не закончена.

Цикл будет выполняться до тех пор, пока "i" не станет равно 10.

Идем дальше.

i=6: 6 = 10 - 6 Неверно. 6 не равно 4.

i=7: 7 = 10 - 7 Неверно. 7 не равно 3.

i=8: 8 = 10 - 8 Неверно. 8 не равно 2.

i=9: 9 = 10 - 9 Неверно. 9 не равно 1.

i=10: 10 = 10 - 10 Неверно. 10 не равно 0.

Теперь "i" равно 10, цикл больше выполняться не будет.

ответ: 110.

zodgener

Pascal

const

 nmax = 100;

var

 a: array [1..nmax, 1..nmax] of integer;

 i, j: byte;

 n, max, max1: integer;

begin

 randomize;

 Writeln('Введите размер матрицы: ');

 Read(n);

 for i := 1 to n do

 begin

   for j := 1 to n do

   begin

     a[i, j] := Random(-10, 10);

     Write(a[i, j]:5);

   end;

   Writeln;

 end;

 Writeln;

 Max := A[1, 1];

 Max1 := 1;

 for i := 2 to n do

 begin

   for j := 2 to n do

     if (i = j) then

       if a[i, j] > max then max := a[i, j];

   if a[i, n - i + 1] > a[max1, n - max1 + 1] then max1 := i;

 end;

 Writeln('Максимальный элемент главной диагонали: ', max);

 writeln('Максимальный элемент побочной диагонали: ', a[max1, n - max1 + 1]);

end.

Тестовое решение:

Введите размер матрицы:  

5

   6   -2  -10   -9   -6

   2   -2   -8   -7    7

  -5   -8    4    2    3

   4    6    6    2    2

   6    7   -3   -9   -2

Максимальный элемент главной диагонали: 6

Максимальный элемент побочной диагонали: 6

const

 nmax = 50;

var

 a: array [1..nmax] of real;

 b: array [1..nmax] of real;

 c: array [1..nmax] of real;

 i, n: integer;

begin

 writeln('Введите размер массива: ');

 Read(n);

 for i := 1 to n do

 begin

   a[i] := Random(-20, 20); end;

 for i := 1 to n do

 begin

   if a[i] > 0 then b[i] := a[i] else c[i] := a[i];

 end;

 writeln('Исходный массив');

 for i := 1 to n do

 begin

   write(a[i], ' '); end;

 Writeln;

 writeln('Массив положительных');

 for i := 1 to n do

 begin

   write(b[i], ' '); end;

 Writeln;

 writeln('Масив отрицательных');

 for i := 1 to n do

 begin

   write(c[i], ' '); end;

end.

Тестовое решение:

Введите размер массива:  

10

Исходный массив

19 -1 16 -13 -6 -7 -17 13 18 19  

Массив положительных

19 0 16 0 0 0 0 13 18 19  

Масив отрицательных

0 -1 0 -13 -6 -7 -17 0 0 0

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Дано число n. Обчислити ∑_(k=1)^n▒k!/(1/2+1/3+1/4+⋯+1/(k+1))
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Стадник620
лукашова940
Anait_Natalya451
ecocheminnov437
Khrimyan1207
srgymakarov
olimp201325
Диана820
juliat200520
melissa-80
natalia-bokareva
Artyom
artem-dom
victoriapetrs
Полковников_Милана