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

Задача

Найти (вычислить) сумму и произведение элементов матрицы (двумерного массива).

Решение

Чтобы найти сумму элементов матрицы (двумерного массива) в Pascal, надо до цикла перебора присвоить переменной, в которой хранится сумма, значение 0. При переборе во внутреннем цикле добавлять к этой переменной очередной элемент матрицы. После цикла вывести значение на экран.

Произведение элементов матрицы вычисляется аналогично сумме, за исключением того, что начальным значением переменной должно быть число 1 (т. к. при умножении на 0 результат обнулится). Если матрица содержит хотя бы один нуль, то результат произведения также станет равным нулю.

Следует обратить внимание на то, что при нахождении произведения элементов матрицы, легко выйти за пределы допустимых типом данных значений. В этом случае программа будет работать не корректно (например, выдавать ноль или отрицательное число, когда такого быть не может). Поэтому в программе ниже переменная mult (в которой хранится произведение элементов) объявляется типом longint, а элементы массива принимают значения от 1 до 5 включительно.

В программе ниже сначала двумерный массив заполняется. После этого переменным sum и mult присваиваются начальные значения. Подсчет суммы и произведения происходит во второй конструкции циклов (при вторичном обходе матрицы). Программу можно сократить, если подсчет выполнять в том же цикле, что и заполнение массива.

const
    N = 3; M = 5;
var
    arr: array[1..N,1..M] of integer;
    i,j: byte;
    sum: integer;
    mult: longint; 
begin
    randomize;
    for i:=1 to N do begin
        for j:=1 to M do begin
            arr[i,j] := random(5)+1;
            write(arr[i,j]:3);
        end;
        writeln;
    end;
    sum := 0; mult := 1;
    for i:=1 to N do
        for j:=1 to M do begin
            sum := sum + arr[i,j];
            mult := mult * arr[i,j];
        end;
    writeln ('Sum:  ', sum);
    writeln ('Mult: ', mult);
end.

Пример выполнения:

 1 4 2 2 4 5 3 4 1 4 1 1 3 5 2 Sum: 42 Mult: 460800

Тема

Матрицы

Уровень

Простые задачи

Последняя редакция

Добавить комментарий