• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Двумерный массив, контур

  • Автор темы Автор темы MusicMan
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.
M

MusicMan

Есть задачка
Дана квадратная матрица A произвольной размерности. Определить сумму значений элементов, стоящих по контуру данной матрицы.

Т.е. контур, это элементы, которые находятся по краям матрицы?

11 12 13 14 15
21 22 23 24 25
31 32 33 34 35
41 42 43 44 45
51 52 53 54 55

Я правильно понимаю? Каким образом можно выбрать этот контур?

PS: Язык Pascal.

Решение не нужно, просто нужно условие, которым выделяется этот самый контур, либо последовательность действий.

program program_1;
uses crt;
var a:array[1..100,1..100] of Integer;
i,j,n,summ:integer;
begin
clrscr;
write('Vvedite razmernost matrici: ');
readln(n);
for i:=1 to n do
for j:=1 to n do begin
write('element [',i,':',j,']:');
readln(a[i,j]);
end;
writeln;
for i:=1 to n do begin
for j:=1 to n do
write(a[i,j]:3);
writeln;
end;
...
readln;
end.

Далее всё стопорится.
 
Вот простенький способ решения (что б посчитать суму выделеных красным елементов)
Код:
function suma_contur(a:array[1..n,1..m] of real):real; //n и m размеры матрицы
var i,j:integer;
s:real;
begin
s:=0;
for i:=1 to n do
for f:=1 to m do
if (i=1)or(j=1)or(i = n)or(j = m) then s:=s+a[i,j];

suma_contur:=s;
end;
 
Вот простенький способ решения (что б посчитать суму выделеных красным елементов)
Код:
function suma_contur(a:array[1..n,1..m] of real):real; //n и m размеры матрицы
var i,j:integer;
s:real;
begin
s:=0;
for i:=1 to n do
for f:=1 to m do
if (i=1)or(j=1)or(i = n)or(j = m) then s:=s+a[i,j];

suma_contur:=s;
end;
Спасибо большое, так оно и есть, этот способ рабочий. С меня плюсик, респект за оперативность.
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!