Последовательно вводятся целые числа в одной строке. Количество их заранее неизвестно. Найти сумму попарных произведений соседних чисел: а1*а2+а2*а3+а3*а4+… — Pascal(Паскаль)

program ht;

{ ************************************ }
var
  p, code: integer; { описание переменных }
  i, j, n: integer;
  sum: integer;
  s, x: string;
  A: array [1 .. 100] of integer;

begin
  write('Vvedite stroky cisel (cerez probel): ');
  readln(s); { считываем с клавы строку с числами }
  j := 0; { обнуляем кол-во чисел в строке }
  repeat { начало цикла записывающего числа из строки - в массив }
    inc(j); { увеличиваем счётчик кол-ва чисел в строке }
    p := pos(' ', s); { смотрим где есть текущий пробел }
    x := copy(s, 1, p - 1); { копируем число до пробела }
    if p = 0 then
      x := s; { если пробелов не осталось - то эта вся строка явл. числом }
    val(x, i, code); { преобразовываем строку-число в ЧИСЛО }
    A[j] := i; { записываем текущее число в МАССИВ }
    delete(s, 1, p); { удаляем из строки проверенное число }
  until p = 0; { конец цикла }

  n := j; { "n" присваиваем кол-во чисел (размер массива) }

  sum := 0; { обнуляем переменную с суммой }
  for i := 2 to n do
    sum := sum + (A[i - 1] * A[i]);
  { идём по массиву и вычисляем сумму по формуле }
  writeln('Summa= ', sum); { выводим получившеюся сумму на экран }

  readln;

end.

Leave a Comment

46 − 37 =