forma de trabajo 1- comprender el problema 2- estudiar todas las posibles situaciones 3- plantear...

95
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

Upload: alisa-martin

Post on 28-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 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

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

Page 3: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 4: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 5: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 6: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 7: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 8: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

• 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

Page 9: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

1- Comprender el problema

Forma de Trabajo

Page 10: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

• 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

Page 11: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

3- Plantear todas las estrategias posibles

analizar todas las estrategias que

pueden solucionar el problema

Forma de Trabajo

Page 12: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 13: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 14: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 15: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 16: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 17: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 18: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 19: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 20: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 21: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

Forma de Trabajo

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

OrdenarPorSelección

PasarMayor

OrigenDestino

Page 22: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

Procedimiento

Programa Principal

Page 23: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 24: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 25: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 26: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 27: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 28: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 29: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 30: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 31: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 32: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 33: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 34: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 35: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 36: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 37: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 38: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 39: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 40: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 41: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 42: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 43: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 44: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 45: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 46: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 47: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 48: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 49: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 50: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 51: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 52: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 53: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 54: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 55: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 56: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 57: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 58: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 59: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 60: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 61: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 62: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 63: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 64: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 65: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 66: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 67: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 68: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 69: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 70: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 71: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 72: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 73: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 74: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 75: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 76: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 77: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 78: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 79: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 80: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 81: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 82: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 83: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 84: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 85: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 86: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 87: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 88: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 89: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 90: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 91: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

Procedimiento

Programa Principal

MODULARIZACIÓN

Page 92: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

• 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

Page 93: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

Otra forma de ordenar: Ordenamiento por Inserción

Page 94: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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

Page 95: Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más

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