program desordenar_matriz;
const
dim = 3;
max = 4;
min = 1;
type
{fila} {columna}
matriz = array [1..dim,1..dim] of integer;
{funcion para desordenar matriz 3x3}
function ale(a:integer):integer;
begin
a:=random(max-min)+1;
randomize;
end;
{Procedimiento para leer matriz 3x3}
procedure leermatriz(dim:integer;var b:matriz);
var
i,j:integer;
begin
for i:=1 to dim do
for j:=1 to dim do
begin
writeln('b[',i,'.',j,']:');
read(b[i,j]);
end;
end;
{Procedimiento para mostrar matriz}
procedure imprimirmatriz(dim:integer;var d:matriz);
var
i,j:integer;
begin
for i:=1 to dim do
for j:=1 to dim do
begin
writeln(i,'.',j,':',d[i,j]);
end;
end;
{Comienza el programa}
var
c,m:matriz;
a,p,q:integer;
i,j:integer;
begin
writeln('Introduzca los numeros de la matriz 3x3');
leermatriz(dim,c); {Llamo al procedimiento para leer matriz}
{Comenzamos a desordenar la matriz}
for i:=1 to dim do
for j:=1 to dim do
begin
p:=ale(a);
p:=i;
q:=ale(a);
q:=j;
c[i,j]:=m[p,q];
end;
imprimirmatriz(dim,m); {Llamamos al procedimiento para imprimir matriz}
end.