1)опишите на языке или одном из языков программирования алгоритм подсчета суммы произведений последовательных пар элементов в целочисленном массиве из 30 элементов. (это означает, что нужно сосчитать сумму произведений первого и второго, третьего и четвертого, пятого и шестого элементов, и так далее.) 2)опишите на языке или одном из языков программирования алгоритм поиска номера первого из двух последовательных элементов в целочисленном массиве из 30 элементов, сумма которых максимальна (если таких пар несколько, то можно выбрать любую из них).

irinamyn1 irinamyn1    3   28.06.2019 10:30    0

Ответы
5мояоценка 5мояоценка  22.07.2020 17:21
Первый алгоритм:
const
  n=30;
var
  a:array[1..30] of integer;
  s:longint;
  i:integer;
begin
  { формируем массив }
  Randomize;
  Writeln('Элементы массива:');
  for i:=1 to n do
  begin a[i]:=Random(51)-25; Write(a[i]:4) end;
  Writeln;
  { собственно, алгоритм }
  s:=a[1]*a[2]; i:=3;
  while i<=n-1 do
  begin s:=s+a[i]*a[i+1]; i:=i+2 end;
  Writeln('Сумма пар произведений равна ',s)
end.

Тестовое решение:
Элементы массива:
   1  10  -9 -12  -2  20  21  14   5  19  21 -14 -10 -17   5  -9  -8  17  18  11 -21  -3 -15 -10 -15 -16 -15   2   3  21
Сумма пар произведений равна 846

Второй алгоритм
const
  n=30;
var
  a:array[1..30] of integer;
  smax,imax:longint;
  i:integer;
begin
  { формируем массив }
  Randomize;
  Writeln('Элементы массива:');
  for i:=1 to n do
  begin a[i]:=Random(51)-25; Write(a[i]:4) end;
  Writeln;
  { собственно, алгоритм }
  smax:=a[1]+a[2]; imax:=1;
  for i:=2 to n-1 do
    if smax<a[i]+a[i+1] then
    begin smax:=a[i]+a[i+1]; imax:=i end;
  Writeln('Номер первого из пары элементов с максимальной суммой: ',imax)
end.

Тестовое решение:
Элементы массива:
  23  13 -11  -1 -18  20 -23   1 -21 -10   7  15  -2  24 -18 -22 -13  12 -16  22  19 -14 -14 -14  19  15   8 -15 -19 -22
Номер первого из пары элементов с максимальной суммой: 20
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика