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

Задача

Найти сумму элементов матрицы.

Решение

Задача вычисления суммы элементов массива достаточно проста: все элементы массива перебираются и добавляются в одну и ту же переменную. Перебор элементов массива осуществляется в цикле for. Аналогично находится сумма элементов двумерного массива с той лишь разницей, что добавляется вложенный цикл for для прохода по элементам каждой строки матрицы.

Более сложная задача – это найти сумму не всех элементов массива, а только удовлетворяющих какому-нибудь условию или находящихся в определенных местах матрицы.

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

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

 

const
    m = 5;
    n = 4;
 
var
    a: array[1..m,1..n] of byte;
    s: array[1..n] of byte;
    i,j, sum: byte;
 
begin
    randomize;
 
    for i := 1 to m do begin
        for j := 1 to n do begin
            a[i,j] := random(10);
            write (a[i,j]:3)
        end;
        writeln
    end;
 
    writeln ('------------');
 
    for j := 1 to n do begin
        for i := 1 to m do begin
            s[j] := s[j] + a[i,j];
            sum := sum + a[i,j]
        end;
        write (s[j]:3)
    end;
 
    write (' | sum = ', sum);
 
readln
end.

Тема

Матрицы

Уровень

Комбинированные задачи

Комментарии

Дана матрица A(5;4). Найти новый одномерный массив B из суммы элементов каждой строки матрицы A. Найти максимальный элемент матрицы A в 5-й строке. Заменить последний элемент в 3-й строке матрицы A на найденный максимальный элемент.

Ответ на от Гость

var
  mas_a: array [1..5, 1..4] of byte;
  mas_b: array [1..5] of byte;
  l, i, j, max: byte;
 
begin
  writeln('Массив А:');
  for i := 1 to 5 do
  begin
    for j := 1 to 4 do
    begin
      mas_a[i, j] := random(9) + 1; 
      write(mas_a[i, j]:2)
    end;
    writeln;
  end;
 
  writeln;
  l := 1;  
  writeln('Массив B: ');
  for i := 1 to 5 do
  begin
    for j := 1 to 4 do
      mas_b[l] := mas_b[l] + mas_a[i, j];
    inc(l);
  end;
 
  for i := 1 to 5 do write(mas_b[i], ' ');
 
  max := mas_a[5, 1]; 
  j := 5;
 
  for i := 2 to 4 do
    if max < mas_a[j, i] then max := mas_a[j, i];
 
  writeln;
  writeln;
  writeln('MAX = ', max);
  writeln;
    for i := 1 to 4 do
    if max = mas_a[j, i] then mas_a[3,4]:=max;
 
    writeln('Измененный массив А:');
 
    for i:=1 to 5 do
    begin
      for j:=1 to 4 do
        write(mas_a[i,j]:2);
        writeln;
        end;
 
end.

Составить программу, позволяющую с помощью датчика случайных чисел сформировать матрицу (NxM). Значения N и M ввести с клавиатуры. Определить:

  1. минимальный элемент ниже побочной диагонали
  2. произведение ненулевых элементов последней строки

Ответ на от Гость

var
n,m,min,i,j:integer;
a:array [1..100,1..100] of integer;
prod:longint;
 
begin
  randomize; //инициализация генератора случайных чисел
 
  readln(n,m);  //ввод размеров матрицы
 
  for i:=1 to n do
  for j:=1 to m do
  a[i,j]:=random(20); //заполнение матрицы случайными числами от 0 до 19
 
  for i:=1 to n do
  begin
    for j:=1 to m do
    write(a[i,j]:3,' ');  //вывод получившейся матрицы
    writeln;
  end;
 
  min:=10000;
  for i:=1 to n do
  begin
    j:=m;
    while (j > n-i+1) do
    begin
      if (a[i,j] < min) then min:=a[i,j];  //поиск минимального элемента ниже побочной диагонали
      dec(j);
    end;
  end;
 
  if (min < 10000) then writeln('min = ',min);
 
  prod:=1;
  for i:=1 to m do
  if (a[n,i] > 0) then prod:=prod*a[n,i];  //произведение ненулевых элементов последней  строки
 
  writeln('prod = ',prod);
 
end.

Дан двумерный массив 6*6, заполненный с помощью случайных чисел, вывести его на экран. Нйти суммы диагональных элементов матрицы отдельно, определение суммы значений диагональных элементов оформить в виде процедуры.

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

CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.
CAPTCHA на основе изображений
Введите символы, которые показаны на картинке.