Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear...

Preview:

Citation preview

Forma de Trabajo

1- Comprender el problema

2- Estudiar todas las posibles situaciones

3- Plantear todas las estrategias posibles

4- Seleccionar la más adecuada

5- Formalizar la solución mediante el

diagrama de Estructura

6- Codificar

7- Validar la Solución según las situaciones

planteadas en el punto 2

Forma de Trabajo

1- Comprender el problema

2- Estudiar todas las posibles situaciones

3- Plantear todas las estrategias posibles

4- Seleccionar la más adecuada

5- Formalizar la solución mediante el

diagrama de Estructura

6- Codificar

7- Validar la Solución según las situaciones

planteadas en el punto 2

Forma de Trabajo

1- Comprender el problema

2- Estudiar todas las posibles situaciones

3- Plantear todas las estrategias posibles

4- Seleccionar la más adecuada

5- Formalizar la solución mediante el

diagrama de Estructura

6- Codificar

7- Validar la Solución según las situaciones

planteadas en el punto 2

Forma de Trabajo

1- Comprender el problema

2- Estudiar todas las posibles situaciones

3- Plantear todas las estrategias posibles

4- Seleccionar la más adecuada

5- Formalizar la solución mediante el

diagrama de Estructura

6- Codificar

7- Validar la Solución según las situaciones

planteadas en el punto 2

Forma de Trabajo

1- Comprender el problema

2- Estudiar todas las posibles situaciones

3- Plantear todas las estrategias posibles

4- Seleccionar la más adecuada

5- Formalizar la solución mediante el

diagrama de Estructura

6- Codificar

7- Validar la Solución según las situaciones

planteadas en el punto 2

Forma de Trabajo

1- Comprender el problema

2- Estudiar todas las posibles situaciones

3- Plantear todas las estrategias posibles

4- Seleccionar la más adecuada

5- Formalizar la solución mediante el

diagrama de Estructura

6- Codificar

7- Validar la Solución según las situaciones

planteadas en el punto 2

Forma de Trabajo

1- Comprender el problema

2- Estudiar todas las posibles situaciones

3- Plantear todas las estrategias posibles

4- Seleccionar la más adecuada

5- Formalizar la solución mediante el

diagrama de Estructura

6- Codificar

7- Validar la Solución según las situaciones

planteadas en el punto 2

• 1- Comprender el problema

Dada la pila Origen con números que no necesariamente estén ordenados, pasarlos a la pila Destino de tal forma que queden ordenados de menos a mayor (desde el tope a la base)

Forma de Trabajo

1- Comprender el problema

Forma de Trabajo

• 2- Estudiar las posibles situaciones

Destino Se inicializará en vacío

Origen:¿Que datos puede tener? • Vacía• Con un elemento• Con varios elementos ordenados• Con varios elementos desordenados• Con elementos repetidos

Forma de Trabajo

3- Plantear todas las estrategias posibles

analizar todas las estrategias que

pueden solucionar el problema

Forma de Trabajo

3 – Plantear todas las estrategias posibles

(Métodos de ordenamiento)

4 – Seleccionar la más adecuada

(Método de ordenamiento por Selección)

Forma de Trabajo

En este caso se optó por ésta método directamente

4173

Forma de Trabajo

Método de Selección

-Extraer el Mayor de Origen y pasarlo a Destino

-Repetir este proceso para todos los elementos de Origen

-Mientras (la Pila origen no este vacía)

-Extraer el Mayor de Origen y pasarlo a Destino

4173

Forma de Trabajo

Método de Selección

Mientras (la Pila origen no este vacía)

Extraer el Mayor de Origen y pasarlo a Destino

41

3

Método de Selección

Mientras (la Pila origen no este vacía)

Extraer el Mayor de Origen y pasarlo a Destino

Forma de Trabajo

7

1

3

Forma de Trabajo

47

Método de Selección

Mientras (la Pila origen no este vacía)

Extraer el Mayor de Origen y pasarlo a Destino

1

Forma de Trabajo

347

Método de Selección

Mientras (la Pila origen no este vacía)

Extraer el Mayor de Origen y pasarlo a Destino

Forma de Trabajo

1 347

Método de Selección

Mientras (la Pila origen no este vacía)

Extraer el Mayor de Origen y pasarlo a Destino

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

• 7- Validar la Solución según las situaciones planteadas en el punto 2

Forma de Trabajo

Origen:¿Que datos puede tener? • Vacía• Con un elemento• Con varios elementos ordenados• Con varios elementos desordenados• Con elementos repetidos

Otra forma de ordenar: Ordenamiento por Inserción

Otra forma de ordenar: Ordenamiento por Inserción

Mientras Origen no este vacíaSe saca el tope de la pila OrigenSe lo inserta ordenado en la pila Destino

Ordenamiento por SelecciónLa complejidad está sobre la pila Origen, porque se debe seleccionar el MAXIMO/MINIMO…….

Ordenamiento por InserciónLa complejidad está sobre la pila Destino, porque se debe insertar un elemento de manera ordenada

Recommended