La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más."— Transcripción de la presentación:

1 Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más adecuada 5- Formalizar la solución mediante el diagrama de Estructura 6- Codificar 7- Validar la Solución según las situaciones planteadas en el punto 2

2 Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más adecuada 5- Formalizar la solución mediante el diagrama de Estructura 6- Codificar 7- Validar la Solución según las situaciones planteadas en el punto 2

3 Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más adecuada 5- Formalizar la solución mediante el diagrama de Estructura 6- Codificar 7- Validar la Solución según las situaciones planteadas en el punto 2

4 Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más adecuada 5- Formalizar la solución mediante el diagrama de Estructura 6- Codificar 7- Validar la Solución según las situaciones planteadas en el punto 2

5 Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más adecuada 5- Formalizar la solución mediante el diagrama de Estructura 6- Codificar 7- Validar la Solución según las situaciones planteadas en el punto 2

6 Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más adecuada 5- Formalizar la solución mediante el diagrama de Estructura 6- Codificar 7- Validar la Solución según las situaciones planteadas en el punto 2

7 Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más adecuada 5- Formalizar la solución mediante el diagrama de Estructura 6- Codificar 7- Validar la Solución según las situaciones planteadas en el punto 2

8 1- Comprender el problema Dada la pila Origen con números que no necesariamente estén ordenados, pasarlos a la pila Destino de tal forma que queden ordenados de menos a mayor (desde el tope a la base) Forma de Trabajo

9 1- Comprender el problema Forma de Trabajo

10 2- Estudiar las posibles situaciones Destino Se inicializará en vacío Origen: ¿Que datos puede tener? Vacía Con un elemento Con varios elementos ordenados Con varios elementos desordenados Con elementos repetidos Forma de Trabajo

11 3- Plantear todas las estrategias posibles analizar todas las estrategias que pueden solucionar el problema Forma de Trabajo

12 3 – Plantear todas las estrategias posibles (Métodos de ordenamiento) 4 – Seleccionar la más adecuada (Método de ordenamiento por Selección) Forma de Trabajo En este caso se optó por ésta método directamente

13 41734173 Forma de Trabajo Método de Selección -Extraer el Mayor de Origen y pasarlo a Destino -Repetir este proceso para todos los elementos de Origen -Mientras (la Pila origen no este vacía) -Extraer el Mayor de Origen y pasarlo a Destino

14 41734173 Forma de Trabajo Método de Selección Mientras (la Pila origen no este vacía) Extraer el Mayor de Origen y pasarlo a Destino

15 413413 Método de Selección Mientras (la Pila origen no este vacía) Extraer el Mayor de Origen y pasarlo a Destino Forma de Trabajo 7

16 1313 4747 Método de Selección Mientras (la Pila origen no este vacía) Extraer el Mayor de Origen y pasarlo a Destino

17 1 Forma de Trabajo 347347 Método de Selección Mientras (la Pila origen no este vacía) Extraer el Mayor de Origen y pasarlo a Destino

18 Forma de Trabajo 13471347 Método de Selección Mientras (la Pila origen no este vacía) Extraer el Mayor de Origen y pasarlo a Destino

19 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

20 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

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

22 Procedimiento Programa Principal

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

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

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

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

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 3 7 1 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 3 7 1 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 3 7 1 4

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 3 7 1 4

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

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

34 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

35 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

36 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

37 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

38 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

39 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

40 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

41 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

42 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

43 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

44 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

45 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

46 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

47 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

48 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

49 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

50 Program OrdenarPorSeleccion; ……….. procedure PasarMayor(var Origen: Pila ; var Destino:Pila); var Aux:Pila; begin InicPila(Aux, ' ' ); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); while Not PilaVacia(Origen) do if Tope(Destino) < Tope(Origen) then begin Apilar (Aux, Desapilar(Destino)); Apilar (Destino, Desapilar(Origen)); end else Apilar (Aux, Desapilar(Origen)); while Not PilaVacia(Aux) do Apilar (Origen, Desapilar(Aux)); end; {if PilaVacia(origen)} end; begin {programa principal} 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

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

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

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

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

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

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

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

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

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

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

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

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

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 Aux

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 1 3 Aux

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

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

74 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

75 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

76 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

77 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

78 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

79 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

80 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

81 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

82 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

83 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

84 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

85 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

86 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

87 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

88 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

89 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

90 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

91 Procedimiento Programa Principal MODULARIZACIÓN

92 7- Validar la Solución según las situaciones planteadas en el punto 2 Forma de Trabajo Origen: ¿Que datos puede tener? Vacía Con un elemento Con varios elementos ordenados Con varios elementos desordenados Con elementos repetidos

93 Otra forma de ordenar: Ordenamiento por Inserción

94 Mientras Origen no este vacía Se saca el tope de la pila Origen Se lo inserta ordenado en la pila Destino

95 Ordenamiento por Selección La complejidad está sobre la pila Origen, porque se debe seleccionar el MAXIMO/MINIMO……. Ordenamiento por Inserción La complejidad está sobre la pila Destino, porque se debe insertar un elemento de manera ordenada


Descargar ppt "Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más."

Presentaciones similares


Anuncios Google