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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Aux Destino Origen

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: Destino Origen

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: Destino Origen

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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen

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: Destino Origen

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: Destino Origen

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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen 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: Destino Origen

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: Destino Origen

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: Destino Origen

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: Destino Origen

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