Forma de Trabajo 3 – Plantear todas las estrategias posibles 4 – Seleccionar la más adecuada...

Post on 28-Mar-2015

224 views 2 download

Transcript of Forma de Trabajo 3 – Plantear todas las estrategias posibles 4 – Seleccionar la más adecuada...

Forma de Trabajo 3 – Plantear todas las estrategias posibles

4 – Seleccionar la más adecuada

(Método de ordenamiento por Selección)

Forma de Trabajo(Método de ordenamiento por Selección)

El método de ordenamiento por Selección selecciona el elemento mayor (ó menor) y lo inserta en el lugar adecuado. El trabajo se encuentra en la selección del menor/mayor y no en la inserción.

Mientras no se termine la Pila Origen

Pasar a la Pila Destino el MAYOR de la pila Origen

Forma de Trabajo(Método de ordenamiento por Selección)

El método de ordenamiento por Selección selecciona el elemento mayor (ó menor) y lo inserta en el lugar adecuado. El trabajo se encuentra en la selección del menor/mayor y no en la inserción.

Mientras no se termine la Pila Origen

Pasar a la Pila Destino el MAYOR de la pila Origen

Pasar tope de Origen a Destino {considero que es el “mayor”}

Mientras no se termine la Pila Origen

Si el tope de Destino es menor que el tope de Origen {tengo que sacarlo}

guardar en pila Auxiliar el tope de Destino

guardar en pila Destino el tope de Origen

Sino {lo que tengo en destino sigue siendo el mas grande}

guardar en pila Auxiliar el tope de Origen

Guardar en pila Origen toda la pila Auxiliar

Forma de Trabajo

5 – Formalizar la solución mediante el diagrama de estructura

OrdenarPorSelección

PasarMayor

OrigenDestino

Procedimiento

Programa Principal

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Estado de las Pilas durante ejecución:

Destino

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Destino

Origen 3 7 1 4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Destino

Origen 3 7 1 4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Destino

Origen 3 7 1 4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3 7 1 4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3 7 1 4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3 7 1

4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3 7 1

4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3 7 1

4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3 7

4

1

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3 7

4

1

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3 7

4

1

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3 7

1 4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3

1 4

7

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3

1 4

7

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen 3

1 4

7

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen

1 4 3

7

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen

1 4 3

7

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen

1 4 3

7

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen

1 4

7

3

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen

1 4

7

3

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen

1

7

3 4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen

1

7

3 4

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Aux

Destino

Origen

7

3 4 1

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:Estado de las Pilas durante ejecución:

Aux

Destino

Origen

7

3 4 1

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Estado de las Pilas durante ejecución:

Destino

Origen

7

3 4 1

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Destino

Origen

7

3 4 1

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Estado de las Pilas durante ejecución:

Destino

Origen

7

3 4 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7

3 4 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7

3 4 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 1

3 4

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 1

3 4

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 1

3 4

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7

3 4

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

3

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

3

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

3

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

1 3

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

1 3

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

1 3

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

3

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

3

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

3 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Aux

Destino

Origen

7 4

3 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4

3 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4

3 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4

3 1

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4

3 1

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 1

3

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 1

3

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 1

3

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4

3

Aux

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3

Aux

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3

Aux

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3

Aux

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3

Aux

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3

1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3

1

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3

1

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3 1

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3 1

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3 1

Aux

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

Destino

Origen

7 4 3 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

<Base> <….><Tope> 7 4 3 1

Destino

Origen

7 4 3 1

Estado de las Pilas durante ejecución:

Program OrdenarPorSeleccion;………..procedure PasarMayor(var Origen: Pila ; var Destino:Pila);var Aux:Pila;begin InicPila(Aux, ' ' );

if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin

Apilar (Aux, Desapilar(Destino));Apilar (Destino, Desapilar(Origen));

end else Apilar (Aux, Desapilar(Origen));

while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)}

end;begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do

PasarMayor(Origen, Destino); WritePila(Destino)end.

C:\fpc\bin\OrdenarPorSeleccion

Ingresar elementos a la Pila: <Base><...><Tope> 3 7 1 4

<Base> <….><Tope> 7 4 3 1

Destino

Origen

7 4 3 1

Procedimiento

Programa Principal

MODULARIZACIÓN