• 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.

Далее всё стопорится.
 
D

Dock1100

Вот простенький способ решения (что б посчитать суму выделеных красным елементов)
Код:
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;
 
M

MusicMan

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

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