Forma de Trabajo 3 – Plantear todas las estrategias posibles 4 – Seleccionar la más adecuada (Método de ordenamiento por Selección)
Forma de Trabajo (Método de ordenamiento por Selección) El método de ordenamiento por Selección selecciona el elemento mayor (ó menor) y lo inserta en el lugar adecuado. El trabajo se encuentra en la selección del menor/mayor y no en la inserción. Mientras no se termine la Pila Origen Pasar a la Pila Destino el MAYOR de la pila Origen
Forma de Trabajo (Método de ordenamiento por Selección) El método de ordenamiento por Selección selecciona el elemento mayor (ó menor) y lo inserta en el lugar adecuado. El trabajo se encuentra en la selección del menor/mayor y no en la inserción. Mientras no se termine la Pila Origen Pasar a la Pila Destino el MAYOR de la pila Origen Pasar tope de Origen a Destino {considero que es el mayor} Mientras no se termine la Pila Origen Si el tope de Destino es menor que el tope de Origen {tengo que sacarlo} guardar en pila Auxiliar el tope de Destino guardar en pila Destino el tope de Origen Sino {lo que tengo en destino sigue siendo el mas grande} guardar en pila Auxiliar el tope de Origen Guardar en pila Origen toda la pila Auxiliar
Forma de Trabajo 5 – Formalizar la solución mediante el diagrama de estructura OrdenarPorSelección PasarMayor Origen Destino
Procedimiento Programa Principal
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Estado de las Pilas durante ejecución: Destino
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Destino Origen
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Procedimiento Programa Principal MODULARIZACIÓN