Presentation is loading. Please wait.

Presentation is loading. Please wait.

Forma de Trabajo 3 – Plantear todas las estrategias posibles 4 – Seleccionar la más adecuada (Método de ordenamiento por Selección)

Similar presentations


Presentation on theme: "Forma de Trabajo 3 – Plantear todas las estrategias posibles 4 – Seleccionar la más adecuada (Método de ordenamiento por Selección)"— Presentation transcript:

1 Forma de Trabajo 3 – Plantear todas las estrategias posibles 4 – Seleccionar la más adecuada (Método de ordenamiento por Selección)

2 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

3 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

4 Forma de Trabajo 5 – Formalizar la solución mediante el diagrama de estructura OrdenarPorSelección PasarMayor Origen Destino

5 Procedimiento Programa Principal

6 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

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: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 3 7 1 4

8 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: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 3 7 1 4

9 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: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 3 7 1 4

10 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4

11 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4

12 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4

13 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4

14 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4

15 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 4 1

16 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 4 1

17 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 4 1

18 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4

19 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 1 4 7

20 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 1 4 7

21 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 1 4 7

22 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 3 7

23 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 3 7

24 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 3 7

25 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 7 3

26 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 7 3

27 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 7 3 4

28 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 7 3 4

29 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 7 3 4 1

30 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: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 7 3 4 1

31 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: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 7 3 4 1

32 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: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 7 3 4 1

33 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: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 7 3 4 1

34 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: 3 7 1 4 Aux Destino Origen 7 3 4 1

35 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: 3 7 1 4 Aux Destino Origen 7 3 4 1

36 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: 3 7 1 4 Aux Destino Origen 7 1 3 4

37 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: 3 7 1 4 Aux Destino Origen 7 1 3 4

38 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: 3 7 1 4 Aux Destino Origen 7 1 3 4

39 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: 3 7 1 4 Aux Destino Origen 7 3 4 1

40 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: 3 7 1 4 Aux Destino Origen 7 4 3 1

41 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: 3 7 1 4 Aux Destino Origen 7 4 3 1

42 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: 3 7 1 4 Aux Destino Origen 7 4 3 1

43 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: 3 7 1 4 Aux Destino Origen 7 4 1 3

44 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: 3 7 1 4 Aux Destino Origen 7 4 1 3

45 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: 3 7 1 4 Aux Destino Origen 7 4 1 3

46 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: 3 7 1 4 Aux Destino Origen 7 4 3 1

47 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: 3 7 1 4 Aux Destino Origen 7 4 3 1

48 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: 3 7 1 4 Aux Destino Origen 7 4 3 1

49 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: 3 7 1 4 Aux Destino Origen 7 4 3 1

50 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: 3 7 1 4 Destino Origen 7 4 3 1

51 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: 3 7 1 4 Destino Origen 7 4 3 1

52 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: 3 7 1 4 Destino Origen 7 4 3 1 Aux

53 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: 3 7 1 4 Destino Origen 7 4 3 1 Aux

54 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: 3 7 1 4 Destino Origen 7 4 1 3 Aux

55 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: 3 7 1 4 Destino Origen 7 4 1 3 Aux

56 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: 3 7 1 4 Destino Origen 7 4 1 3 Aux

57 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: 3 7 1 4 Destino Origen 7 4 3 Aux 1

58 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: 3 7 1 4 Destino Origen 7 4 3 Aux 1

59 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: 3 7 1 4 Destino Origen 7 4 3 Aux 1

60 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: 3 7 1 4 Destino Origen 7 4 3 Aux 1

61 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: 3 7 1 4 Destino Origen 7 4 3 Aux 1

62 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: 3 7 1 4 Destino Origen 7 4 3 1

63 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: 3 7 1 4 Destino Origen 7 4 3 1

64 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: 3 7 1 4 Destino Origen 7 4 3 1

65 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: 3 7 1 4 Destino Origen 7 4 3 1 Aux

66 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: 3 7 1 4 Destino Origen 7 4 3 1 Aux

67 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: 3 7 1 4 Destino Origen 7 4 3 1 Aux

68 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: 3 7 1 4 Destino Origen 7 4 3 1 Aux

69 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: 3 7 1 4 Destino Origen 7 4 3 1 Aux

70 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: 3 7 1 4 Destino Origen 7 4 3 1

71 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: 3 7 1 4 Destino Origen 7 4 3 1

72 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: 3 7 1 4 7 4 3 1 Destino Origen 7 4 3 1

73 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: 3 7 1 4 7 4 3 1 Destino Origen 7 4 3 1

74 Procedimiento Programa Principal MODULARIZACIÓN


Download ppt "Forma de Trabajo 3 – Plantear todas las estrategias posibles 4 – Seleccionar la más adecuada (Método de ordenamiento por Selección)"

Similar presentations


Ads by Google