ErrorDeSintaxis

Pequeños fragmentos de código fuente en distintos lenguajes de programación, agrupados por categorías.

Puedes buscar entre los fuentes existentes, o aportar los tuyos.

Pascal: Desordenar array

Barajar los datos de un array usando el algoritmo de Fisher-Yates

Lenguaje: Pascal (compilador: Free Pascal 2.4)

Categoría: Tipos de datos

(* Fuente procedente de ErrorDeSintaxis.es *)
(* Barajar los datos de un array usando el algoritmo *)
(*  de Fisher-Yates *)
(* Lenguaje: Pascal *)
(* Compilador: Free Pascal 2.4 *)
(* Nivel: Básico *)
(* Disponible desde 20/01/2012 *)
(* Aportado por Nacho *)
(* Autor original: Luis Torres *)
(* Web original: http://www.aprendeaprogramar.com/mod/forum/view.php?id=19 *)

{ Desordenar un array usando el algoritmo de Fisher-Yates}
program desordenarArray;
 
var
Arreglo: array[1..12] of integer;
i,j,aux: integer;
 
begin
{ Genero y muestro el array inicial }
for i:=1 to 12 do
  begin
  Arreglo[i]:= i;
  write(Arreglo[i],' ');
  end;
writeLn;
 
{ Desordeno el array }
randomize;
for i:= 12 downto 2 do
  begin
    j:= random(i)+1;
    aux:= Arreglo[j];
    Arreglo[j]:= Arreglo[i];
    Arreglo[i]:= aux;
  end;
 
{ Muestro el array desordenado }  
for i:=1 to 12 do write(Arreglo[i],' ');
writeLn;
 
{ Pausa para poder leer los resultados }
ReadLn;
end.
 

 
Resultado:

1 2 3 4 5 6 7 8 9 10 11 12 
11 5 7 1 2 4 9 8 12 3 6 10