Hola Miguel.
El primer error que veo es que aquí:
Código Delphi
[-]
begin
a:=strtoint(edit2.text);
...
for i:=1 to a do
for j:=1 to a do
read(archivo,m[i, j]);
Cargas
a x
a valores en la matriz
m. Pero inmediatamente luego de entrar al bucle
while y sin asignarle valor a
j, haces:
Código Delphi
[-]
...
while i<>a do
begin
for i:=z to (z+1) do
begin
k:= m[i,j];
...
Resulta que
j, luego de salir del ciclo for, tiene un valor de
a+1 y el valor de
m[i, (a+1)] es indeterminado ya que nunca se le asigno algo...
Saludos.