1. Для задачи из примера 4.2 выполните перечисленные задания.

1.  Заполните таблицу.

  n a S P
1 3 –2 –3 –5 –10 –30
2 5 1 2 3 4 5 15 120
3 10 1 –3 –2 3 4 3 2 4 3 2 17 10 368

2.  Добавьте в таблицу свои значения n и a.

  n a S P
1 6 –10 5 –4 2 9 3 5 10 800
2 8 9 7 5 9 22 4 2 3 61 1 496 880
3 10 –1 –7 –6 –5 –3 –5 4 3 –2 0 –22 0

3. Попытайтесь подобрать такие значения элементов массива, чтобы S = P, для n = 2,5.

  n a S P
1 2 2 2 4 4
2 5 1 2 2 2 1 8 8

4. Для n = 10 ввели все элементы массива, равные 9. Какой результат получили? Почему? Что нужно исправить в программе для получения правильного результата?

Мы получили неверный результат при перемножении, потому что тип данных integer имеет длину в 2 байта, которые не могут в себя поместить результат такого вычисления — число получается слишком большим. Для получения правильного результата в программе нужно изменить тип данных для переменной P на longint.

var
  a: array[1..10] of integer;
  n, S: integer;
  P: longint;

begin
  write('Введите n = ');
  readln(n);
  writeln('Вводите элементы');
  for var i := 1 to n do
    read(a[i]);
  S := 0;
  P := 1;
  for var i := 1 to n do
  begin
    S := S + a[i];
    P := P * a[i];
  end;
  writeln('Сумма = ', S);
  writeln('Произведение = ', P);
end.