Dovrebbe funzionare..................
Non vedo come possa funzionare. La versione corretta è quella di Oregon (generalizzata per matrici quadrate con N al posto di 4):

codice:
for i := 1 to N do
  for j := 1 to M do
   begin
     vet[(i-1)*N+j] := mat[i, j];
   end;