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.