Кто знает, может поможет решить вот такую задачу:
Дан двумерный действительный массив А[n, n]. Найти сумму элементов заштрихованной области массива А, предварительно записав их в массив В[k].
Всем заренее благодарен

i:=0;j:=1;s:=0;
while i<n do
begin
inc(i);
inc(s,x[i,j]);
end;
j:=1;
while j<n do
begin
inc(j);
inc(s,x[i,j]);
end;
while i<>1 do
begin
dec(i);
inc(s,x[i,j]);
end;
while j<>2 do
begin
dec(j);
inc(s,x[i,j]);
end;
s:=0;
for i:=1 to n do
begin
inc(s,x[i,i]);
inc(s,x[i,n-i+1]);
end;
dec(s,x[(n+1) div 2,(n+1) div 2]);
s:=0;
for i:=1 to n div 2 do
for j:=i+1 to n-i do
inc(s,x[i,j]);
for i:=n downto n div 2 do
for j:=n-i+2 to i-1 do
inc(s,x[i,j]);
s:=0;
for i:=2 to n-1 do
for j:=2 to n-1 do
inc(s,x[i,j]);
for ...
s:=s+a[i,j];
b[i,j]:=s;
если тебе надо предварительно записать элементы для суммирования в массив B?s:=0;
for i:=1 to n do
if (i<>1)and(i<>n) then
begin
inc(s,x[i,1]);
inc(s,x[i,n]);
end
else
for j:=1 to n do
inc(s,x[i,j]);
inc(s,x[i,j])
естественно только в случае, если матрица из целых чисел, иначе просто
s:=s+x[i,j];
program z18d;
uses crt;
type mas=array[0..5,0..5] of integer;
var i,j,n,m,i1,j1,k,s:integer;
a:mas;
b:array [1..20] of integer;
begin
clrscr;
writeln('vvedite razmernost');
readln(n,m);
writeln('vvedite elementi');
for i:=1 to n do
for j:=1 to m do read(a[i,j]);
write('i=');readln(i1);
write('j=');readln(j1);
k:=1;
for i:=i1+1 to n-i1 do begin
for j:=j1+1 to m-j1 do begin
s:=s;
s:=s+a[i,j];
b[k]:=a[i,j];inc(k);
end;
end;
writeln('s=',s);
{for i:=2 to n-1 do begin writeln;}
for i:=1 to k-1 do write(b[i],' ');
readkey
end.
Может что не так, не пойму...Надо как-то по-другому конец проги написать...
for i:=n downto n div 2 do
for j:=n-i+2 to i-1 do
inc(s,x[i,j]);
for i:=n downto n div 2 do
for j:=n-i+2 to i-1 do
inc(s,x[i,j]);