Download presentation
Presentation is loading. Please wait.
Published byAshanti Eustis Modified over 10 years ago
1
Forma de Trabajo 3 – Plantear todas las estrategias posibles 4 – Seleccionar la más adecuada (Método de ordenamiento por Selección)
2
Forma de Trabajo (Método de ordenamiento por Selección) El método de ordenamiento por Selección selecciona el elemento mayor (ó menor) y lo inserta en el lugar adecuado. El trabajo se encuentra en la selección del menor/mayor y no en la inserción. Mientras no se termine la Pila Origen Pasar a la Pila Destino el MAYOR de la pila Origen
3
Forma de Trabajo (Método de ordenamiento por Selección) El método de ordenamiento por Selección selecciona el elemento mayor (ó menor) y lo inserta en el lugar adecuado. El trabajo se encuentra en la selección del menor/mayor y no en la inserción. Mientras no se termine la Pila Origen Pasar a la Pila Destino el MAYOR de la pila Origen Pasar tope de Origen a Destino {considero que es el mayor} Mientras no se termine la Pila Origen Si el tope de Destino es menor que el tope de Origen {tengo que sacarlo} guardar en pila Auxiliar el tope de Destino guardar en pila Destino el tope de Origen Sino {lo que tengo en destino sigue siendo el mas grande} guardar en pila Auxiliar el tope de Origen Guardar en pila Origen toda la pila Auxiliar
4
Forma de Trabajo 5 – Formalizar la solución mediante el diagrama de estructura OrdenarPorSelección PasarMayor Origen Destino
5
Procedimiento Programa Principal
6
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Estado de las Pilas durante ejecución: Destino
7
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 3 7 1 4
8
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 3 7 1 4
9
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 3 7 1 4
10
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4
11
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4
12
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4
13
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4
14
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4
15
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 4 1
16
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 4 1
17
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 4 1
18
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 7 1 4
19
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 1 4 7
20
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 1 4 7
21
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 3 1 4 7
22
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 3 7
23
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 3 7
24
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 3 7
25
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 7 3
26
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 4 7 3
27
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 7 3 4
28
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 1 7 3 4
29
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 7 3 4 1
30
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Aux Destino Origen 7 3 4 1
31
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 7 3 4 1
32
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 7 3 4 1
33
Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Estado de las Pilas durante ejecución: Destino Origen 7 3 4 1
34
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 3 4 1
35
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 3 4 1
36
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 1 3 4
37
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 1 3 4
38
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 1 3 4
39
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 3 4 1
40
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 3 1
41
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 3 1
42
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 3 1
43
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 1 3
44
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 1 3
45
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 1 3
46
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 3 1
47
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 3 1
48
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 3 1
49
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Aux Destino Origen 7 4 3 1
50
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1
51
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1
52
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1 Aux
53
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1 Aux
54
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 1 3 Aux
55
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 1 3 Aux
56
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 1 3 Aux
57
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 Aux 1
58
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 Aux 1
59
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 Aux 1
60
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 Aux 1
61
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 Aux 1
62
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1
63
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1
64
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1
65
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1 Aux
66
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1 Aux
67
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1 Aux
68
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1 Aux
69
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1 Aux
70
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1
71
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 Destino Origen 7 4 3 1
72
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 7 4 3 1 Destino Origen 7 4 3 1
73
Estado de las Pilas durante ejecución: Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} InicPila(Destino, ' '); ReadPila(Origen); while not PilaVacia(Origen) do PasarMayor(Origen, Destino); WritePila(Destino) end. C:\fpc\bin\OrdenarPorSeleccion Ingresar elementos a la Pila: 3 7 1 4 7 4 3 1 Destino Origen 7 4 3 1
74
Procedimiento Programa Principal MODULARIZACIÓN
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.