Hola ^^ soi nuevo jeje me acabo de registrar 

 y la verdad el foro está bastante bien 

...
haber si me podeis ayudar con este ejercicio no se bien donde está fallando... soi bastante novato y llevo muy poco programando :S .
El ejercicio pide leer una matriz por pantalla 3x3, generar un numero aleatorio entre 1 y 3 y asignarlo a p , hacer lo mismo y asignarlo a q y luego intercambiar M[i,j] con M[p,q].
El resultado sera la matriz desordenada.
nota: se pide implementar una funcion que genere l numero aleatorio.
Este es el codigo, tengo el problema de que siempre me genera el numero 0 . :S
 
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.
 
 
-------------------
Tengo otra duda sobre generar numeros aleatorios en un ejercicio tengo que generar 4 numeros aleatorios pero cuando lo hago me saca 4 numeros iguales... porque?¿ tampoco se muy bien como funciona lo de randomize si me podeis aclarar eso mejor jeje.