Сумма и произведение элементов одномерного массива

Задача: 

Задачи данного типа являются достаточно простыми и сводятся к поэлементному перебору массива и выполнению соответствующих алгебраических операций.

Алгоритм решения задачи: 

Перед этим вводятся "пустые" переменные, значения которых в цикле for перезаписываются. Сумма элементов массива находится путем прибавления элемента к прежнему значению переменной. Произведение – умножением прежнего значения переменной на очередной элемент.

Первым значением переменной для суммы должен быть ноль, для произведения – единица.

В примере ниже отводится память под массив, максимальное количество элементов которого равно 100. Однако пользователь сам задает количество элементов массива (разумеется, до 100). Это значение присваивается переменной n.

Пользователь сам заполняет массив значениями (первый цикл for).

Переменные sum и op хранят соответственно значения суммы и произведения элементов массива. В соответствующих циклах их значения постепенно увеличиваются.

Программа на языке Паскаль: 

const
    max = 100;
var
    arr: array[1..max] of real;
    n: integer;
    sum, op: real;
    i: integer;
 
begin
    write('Количество элементов: ');
    readln(n);
 
    write('Укажите значения: ');
    for i := 1 to n do
        read(arr[i]);
 
    sum := 0;
    for i := 1 to n do
        sum := sum + arr[i];
 
    op := 1;
    for i := 1 to n do
        op := op * arr[i];
 
    writeln('Сумма элементов: ', sum:10:2);
    writeln('Произведение элементов: ', op:20:2);
 
end.

Комментарии

помогите решить, пожалуйста.

Помогите пожалуйста!!!
Определить произведение, сумму и количество элементов массива A(N.M), ЗНАЧЕНИЯ КОТОРЫХ ПОПАДАЮТ В ИНТЕРВАЛ (1.5;3.2). Результаты вывести на печать.

Помогите пожалуйста Дан

Помогите пожалуйста
Дан массив Xi, i = 1, 2, …, 15. Найти произведения положительных и
отрицательных элементов массива Р1 и Р2. Определить, что больше по
абсолютной величине – Р1 или Р2

Может такvar Xi:array

Может так

var Xi:array [1..15] of integer;
P1,P2,i,pos,neg:integer;
begin
pos:=0;
neg:=0;
for i:=1 to 15 do begin
write('mas[',i,']=');
readln(Xi[i]);
if Xi[i]>0 then
pos+=Xi[i]
else
neg+=Xi[i];
end;
if pos>abs(neg) then
writeln('Positive numbers  are more than negative')
else
writeln('Negative numbers  are more than positive');
end.

единственное замечание -- в условии написано "прозведение"

а у вас получается сумма так же у вас в расчеты отрицательного включается "0". При сумме это не критично, а вот в произведении P2 будет всегда 0;
Хотя оба числа такие выйдут т.к. вы обе переменные объявляете как
pos:=0; neg:=0;
-----------------------------------------------------------

const
  n= 15;
var
mas:array[1..n]of integer;
i:integer;
P1,P2:integer;
 
 
begin
 
P1:=1;    //переменна для произведения положительных
P2:=1;    //переменная для прозведения отрицательных
 
    //задаем массив чисел
for i:=1 to n do
 begin  
  mas[i]:= Random(10)-5;
  write(mas[i]:3);
 end;
 writeln(#10);
 
    //описываем два if'а так как про mas[i]:= 0 нам ничего не сказано
for i:=1 to n do
  if mas[i] > 0 then
    P1 *= mas[i] 
      else
        if mas[i] < 0 then
          P2 *= mas[i];
 
Writeln('P1:= ', P1,#10,'P2:= ', P2);    
 
    //P1 модуль не нужен, т.к. она и так положтельная
    // что касается P2 - его знак зависит от количества отрицательных элементов 
if P1 > abs(P2) then
  writeln('P1 -- макимальное число по модулю') 
    else
      writeln('P2 -- макимальное число по модулю') 
end.

Помогите пожалуйста

Есть одномерный массив а кводратные скобки , в котором N элементов. Найти сумму всех элементов массива