ВОПРОС · Q&A

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

2 ответов 5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Статус
Закрыто для дальнейших ответов.
Автор вопроса
Есть задачка
Дана квадратная матрица 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;
Спасибо большое, так оно и есть, этот способ рабочий. С меня плюсик, респект за оперативность.
 
Статус
Закрыто для дальнейших ответов.