Добре :-)
Първо виж процедурата ReadM.
Там двата цикъла трябва да ги въртиш до m, а не до n.
Нали това ти е вътрешната променлива за размера на масива.
Честно казано позабравила съм в Паскала как стои въпроса с глобалните променливи, но доколкото n е глобална, можеш изобщо да не я предаваш на процедурата.
Ако искаш, пробвай.
Имам предвид процедурата ти да си остане както е в момента, само да й махнеш първия параметър.
Нещо такова:
Код:
function MinElement(var mi, mj: integer; var X: Masiv2): real;
var
i, j, lo, hi: integer;
y: real;
begin
if mi < n then
begin
y := X[mi + 1,mj];
for i := mi + 2 to n do
begin
if (mi + mj - i + 1 > 1)
then lo := mi + mj - i + 1
else lo := 1;
if (mj - mi + i - 1 < n)
then hi := mj - mi + i - 1
else hi := n;
for j := lo to hi do
if (X[i,j] < y) then y := X[i,j];
end;
MinElement := y;
end
else MinElement := X[mi,mj];
end;
И в главната:
Код:
begin
write('n = '); readln(n);
ReadM(A);
for i:=1 to n do
for j:=1 to n do
B[i,j] = MinElement(i,j,A);
WriteM(B);
end.