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

code: #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.      
Поделиться:

Похожие статьи: