Pilas Una Pila es una colección de elementos del mismo tipo organizada como una superposición ordenada de los mismos. Por ejemplo Pila de platos, Pila.

Slides:



Advertisements
Presentaciones similares
ESTRUCTURAS DE CONTROL
Advertisements

Programación de Computadores
Sesión 3 Estructuras Repetitivas
Unidad 1 DISEÑO DE ALGORITMOS ING. Nelwi Baez. MSC
Estructuras de Repetición Algoritmos
Programación Estructurada
Introducción a los Algoritmos
Iteración La iteración permite modelar problemas en los cuales una secuencia de instrucciones debe ejecutarse varias veces. La cantidad de iteraciones.
Fundamentos de Programación
Metodología de la Programación
Estructuras de control
Estructura General de Un Programa Programación Estructurada
Seminario de Actualización - Excel Avanzado y Macros
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
Estructuras de Control
INFORMÁTICA PROGRAMACIÓN.
1.5 Algoritmos, Pseudocódigo y Diagramas de Flujo
DIAGRAMAS DE FLUJO Y PSEUDOCÓDIGO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Estructuras de Control
Curso de Programación I Parte III
Estructuras de Repetición
PARADIGMA Es un esquema de pensamiento que nos lleva a concebir las cosas de una manera determinada. el término paradigma puede indicar el concepto de esquema.

Son aquellas que van a ejecutar un número determinado de veces una instrucción o un conjunto de ellas. Un BUCLE O CICLO son las instrucciones a repetirse.
Ingeniero Anyelo Quintero
ESTRUCTURAS ITERATIVAS
ESTRUCTURAS DE CONTROL
Estructuras de Control Iterativas
Programación de Computadores
Estructuras de Iteracion (Repetitivas ) while , for,, do-while
ESTRUCTURAS DO-WHILE Y FOR.
Página Web del Lenguaje Pascal.
Capítulo 1 “Elementos de Programación”
Conversión cadena a número
Capítulo 2 – Estructuras de Control
Programación I Universidad Nacional de Luján
WHILE Estructuras Repetitivas
Resolución de Problemas y Algoritmos Uso de iteración con secuencias
Sesión 5 Sentencias de Selección y repetición Prof:Eridan Otto Programación de Computadores Lenguaje Pascal.
COMPUTACION 2009 C lase 4 Programa PASCAL SENTENCIAS DATOS Expresiones Tipos Declaración de variables Declaración de variables Asignación Entrada/Salida.
Forma de Trabajo 1- Comprender el problema 2- Estudiar todas las posibles situaciones 3- Plantear todas las estrategias posibles 4- Seleccionar la más.
Ciclos (Loops, Repeticiones) Permiten ejecutar una secuencia de sentencias mas de una vez. Hay 2 tipos de loops:  WHILE repite la acción un número indefinido.
Teoría – Alejandro Gonzalez
EXPRESIONES Y SENTENCIAS

Estructuras de Control.
While En este ciclo el cuerpo de instrucciones se ejecuta mientras una condición permanezca como verdadera en el momento en que la condición se convierte.
COMPUTO III Ing. Jimmy Ojeda Arnica.
ELEMENTOS DE COMPUTACIÓN Profesor: Guillermo Figueroa
Estructuras de repetición
Sesión 13: Python (4) – Estructura Repetición. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Informática.
Estructuras de Control en Visual Basic.net
Se pueden incluir comentarios en cualquier parte de un programa pero deben delimitarse con llaves o con paréntesis y asterisco:
“variables , sentencia if y bucles”
ESTRUCTURAS REPETITIVAS
Estructuras de Decisión
Las funciones son librerías ya estandarizadas que permiten al usuario realizar sus respectivas programaciones. Una función es un conjunto de líneas de.
ESTRUCTURA DE CONTROL REPETITIVAS: WHILE, DO… WHILE
PROGRAMACIÓN Grupo de Modelamiento de Sistemas
Programación Básica Bachillerato Ingeniería en Informática Lic. Carlos H. Gutiérrez León.
Estructuras de Decisión en Visual Basic 6.0
Tema 8: Programación estructurada Introducción La importancia del conocimiento de programación es mucho mayor de lo que se piensa. Aprender a programar.
ESTRUCTURAS SELECTIVAS Elaborado por; Ing. Alberto Pérez.
Ciclos de Repeticion Yoel Gutierrez Unidad 6. Contenido DefinicionExplicacionEjemplosReferencias.
DO - WHILE Trejo Mendoza Armando Isacc Díaz Jiménez Christian Alexis César Cerón Cortez Juárez reyes Jason Elihu Hernández Mera Rubén Hernández López José.
Ciclos condicionales y exactos Estructura de control de ciclos
Estructuras Repetitivas Consideraciones. Estructuras Repetitivas  Son aquellas que van a ejecutar un número determinado de veces una instrucción o un.
Materia: Informática II Semestre: 2 Mtra. Ericka Yazmin Medina Rodríguez Campus: Tonalá Competencia: Manejo de la información y aprendizaje permanente.
Transcripción de la presentación:

Pilas Una Pila es una colección de elementos del mismo tipo organizada como una superposición ordenada de los mismos. Por ejemplo Pila de platos, Pila de cartas, Pila de camisas, Pila de libros TOPE DE LA PILA Los elementos se recuperan en el orden inverso al que fueron almacenados. El último en entrar (TOPE) es el primer en salir.

Pilas Representación Gráfica ELEMENTO n ELEMENTO n -1 ……… ELEMENTO 1 Tope de la Pila

Pilas Que se puede hacer sobre una pila? Apilar Desapilar VerTope …..

Pilas en Pascal En Pascal vamos a trabajar con Pilas de Enteros. 1)Cada pila tendrá un nombre. 1)Sólo se ve el TOPE, no se sabe cuantos elementos hay 1)Se podrán hacer las siguientes operaciones: ReadPila() InicPila () Tope() Apilar () Desapilar() el Elemento que se desapila debe ir a otra Pila EsVacia() WritePila() TOPE NombrePila

Estructu es una Unidad que permite trabajar con pilas en Pascal Se definen los datos con los que va a trabajar el programa. Se escriben las instrucciones que trabajarán sobre los datos para lograr el objetivo del programa. Comentarios NOMBRE

C:\fpc\bin\Inicial Estado de las Pilas durante ejecución: Program Inicial; {Este Programa es un ejemplo sencillo de manejo de Pilas en Pascal: Leer los datos de una Pila por pantalla e imprimirlos } uses Estructu; var Origen: pila; Begin ReadPila(Origen); WritePila(Origen); end. Ingresar elementos a la Pila: Origen

Estado de las Pilas durante ejecución: Program Inicial; {Este Programa es un ejemplo sencillo de manejo de Pilas en Pascal: Leer los datos de una Pila por pantalla e imprimirlos } uses Estructu; var Origen: pila; Begin ReadPila(Origen); WritePila(Origen); end. Ingresar elementos a la Pila: Origen C:\fpc\bin\Inicial

Sentencias Secuenciales: se ejecutan una después de la otra

Problema: pasar el tope de una pila a otra Origen Destino

Origen Destino Problema: pasar el tope de una pila a otra Apilar (Destino, Desapilar(Origen));

Problema: pasar el tope de una pila a otra Origen Destino ¿ Qué pasaría si Destino tiene elementos? Apilar (Destino, Desapilar(Origen));

Problema: pasar el tope de una pila a otra Origen Destino ¿ Qué pasaría si Destino tiene elementos? Apilar (Destino, Desapilar(Origen));

Problema: pasar el tope de una pila a otra Origen Destino Apilar (Destino, Desapilar(Origen)); ¡ Desapilar de una pila vacía da error! ¿Cómo se puede controlar? ¿Qué pasaría si Origen NO tiene elementos?

Sentencia de control: Selección A través de la selección se incorpora la capacidad de decisión en un programa. IF (condición) then acción o acciones a realizar si la condición es verdadera else acción o acciones a realizar si la condición es falsa donde condición es una expresión que al ser evaluada puede tomar solamente uno de dos valores posibles: verdadero o falso. De esta forma será posible seleccionar una de dos alternativas de acción posibles durante la ejecución del programa.

Sentencia de control: Selección If (condición) then acción o acciones a realizar si la condición es verdadera En este caso, si la condición es falsa, no se especifica ningún camino alternativo a seguir.

C:\fpc\bin\PasaTope Estado de las Pilas durante ejecución: Origen Destino Condición que dará Verdadero o Falso Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino } uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino); end.

C:\fpc\bin\PasaTope Estado de las Pilas durante ejecución: Origen Destino Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino } uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino); end. Ingresar elementos a la Pila:

Estado de las Pilas durante ejecución: Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino } uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino); end. Ingresar elementos a la Pila: Origen Destino ‘ ‘ C:\fpc\bin\PasaTope

Estado de las Pilas durante ejecución: Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino } uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino); end. Ingresar elementos a la Pila: Origen Destino ‘ ‘ C:\fpc\bin\PasaTope

Estado de las Pilas durante ejecución: Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino } uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino); end. Ingresar elementos a la Pila: Origen Destino 4 C:\fpc\bin\PasaTope

Estado de las Pilas durante ejecución: Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino } uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino); end. Ingresar elementos a la Pila: Origen Destino 4 1 C:\fpc\bin\PasaTope

Estado de las Pilas durante ejecución: Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino); end. Ingresar elementos a la Pila: Origen Destino C:\fpc\bin\PasaTope

Estado de las Pilas durante ejecución: Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino y avisa si la Pila Origen es vacia} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end else Writeln('La Pila Origen está vacía'); end. Ingresar elementos a la Pila: Origen Destino C:\fpc\bin\PasaTope

Estado de las Pilas durante ejecución: Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino y avisa si la Pila Origen es vacia} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end else Writeln('La Pila Origen está vacía'); end. Ingresar elementos a la Pila: Origen Destino C:\fpc\bin\PasaTope

Estado de las Pilas durante ejecución: Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino y avisa si la Pila Origen es vacia} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end else Writeln('La Pila Origen está vacía'); end. Ingresar elementos a la Pila: Origen Destino C:\fpc\bin\PasaTope

Estado de las Pilas durante ejecución: Program PasaTope; {Este Programa pasa el tope de la pila Origen a Destino y avisa si la Pila Origen es vacia} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then begin Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end else Writeln('La Pila Origen está vacía'); end. Ingresar elementos a la Pila: Origen Destino La Pila Origen está vacía C:\fpc\bin\PasaTope

Práctica 1) Cargar desde el teclado una pila DADA con 5 elementos. Pasar los tres primeros elementos a la pila CJTO1 y los dos restantes a la pila CJTO2, ambas pilas inicializadas en vacío. (Ejercicio 1 de Práctico 1) 2 ) Cargar desde el teclado una pila DADA. Inicializar una pila MODELO con al menos un elemento. Pasar el tope de DADA a una pila MENOR si es menor al tope de MODELO. Si es mayor pasarlo a una pila MAYOR.

Problema: Pasar todos los elementos de una Pila a Otra

Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); if not PilaVacia(Origen) then Apilar (Destino, Desapilar(Origen)); ……… WritePila(Origen); WritePila(Destino) end. x While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen));

Estructura de control: Iteración (WHILE) Existen situaciones en las que se quiere repetir un conjunto de acciones pero se desconoce de antemano el número de veces. La iteración es una estructura de control que permite al algoritmo ejecutar en forma repetitiva un conjunto de acciones utilizando una condición para indicar su finalización.

Estado de las Pilas durante ejecución: Destino Origen C:\fpc\bin\OrdenarPorSeleccion Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end. Ingresar elementos a la Pila: C:\fpc\bin\PasaPila

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: ‘ Destino Origen C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: ‘ Destino Origen C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: Destino Origen C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: Destino Origen 3 C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: Destino Origen C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: Destino Origen C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: Destino Origen C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: Destino Origen C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: Vacía Destino Origen C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estado de las Pilas durante ejecución: Ingresar elementos a la Pila: Destino Origen Vacía C:\fpc\bin\PasaPila Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end.

Estructura de control: Iteración (WHILE) While (condición sea verdadera) do Acción o acciones a realizar - La condición es evaluada en cada ciclo - Debe haber alguna acción dentro del conjunto de acciones que modifiquen el valor de la condición (SE CORTA la Iteración)

Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Destino, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end. Al ir desapilando los elementos de Origen, en algún momento la pila Origen estará vacía y la condición se dejará de cumplir

Program PasaPila; {Este Programa pasa los elementos de la pila Origen a Destino} uses Estructu; var Origen, Destino: pila; Begin ReadPila(Origen); InicPila(Destino, ' '); While not PilaVacia(Origen) do Apilar (Origen, Desapilar(Origen)); WritePila(Origen); WritePila(Destino) end. ¡INCORRECTO! Nunca va a ser falsa la condición, no se termina la iteración

Ejercitación Cargar desde teclado una pila DADA y pasar a la pila DISTINTOS todos aquellos elementos distintos al valor 8. (ej. 2 del práctico) ¿Cuál es la condición del siguiente ciclo? ¿Cuándo finaliza el ciclo? (Pila1, Pila2, y Descarte son pilas) (ej. 3 del práctico) while not pilaVacia(Pila1) do begin apilar (Pila2, desapilar(Descarte)) end Pasar todos los elementos de una pila Origen a la pila Menor si son menores a 5 y sino pasarlos a la pila MAYOR.

C:\fpc\bin\DivideMenores5 Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores 182 ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores 182 ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores 182 ‘ C:\fpc\bin\DivideMenores5

Ingresar elementos a la Pila: Estado de las Pilas durante ejecución: Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Origen Menores Mayores 182 ‘ C:\fpc\bin\DivideMenores5

Resumen: operaciones con Pilas ReadPila(nombrePila) InicPila(nombrePila, ' ') o InicPila(nombrePila, ‘3 6 7 ') PilaVacia(nombrePila) Tope(nombrePila) Apilar(nombrePila,Desapilar(nombreOtra Pila)) o Apilar(nombrePila, 8) WritePila(nombrePila)

Estructuras de control SECUENCIA ; Se ejecutan una sola vez en el mismo orden en que aparecen   

Estructuras de control SELECCIÓN if then ; if then else ;

Estructuras de control En se debe asegurar que la condición va a cambiar para ser falsa en algún momento y cortar el ciclo ITERACIÓN while do ;

SENTENCIAS COMPUESTAS Una serie de instrucciones básicas que se ejecutan una a continuación de otra como un bloque. BEGIN ; END IF not PilaVacia(Origen) THEN IF tope(Origen) < 5 THEN BEGIN Apilar (Menores, Desapilar(Origen)); writePila(Menores); END; ……… IF not PilaVacia(Origen) THEN IF tope(Origen) < 5 THEN Apilar (Menores, Desapilar(Origen)) writePila(Menores); ………. ¿Qué diferencia hay entre los dos códigos?

Estructuras de control if then begin ; end else begin ; end

Estructuras de control while do begin ; end

Estructuras de control Las estructuras de control se pueden combinar EJEMPLO …….. While not PilaVacia(Origen) do if tope(Origen) < 5 then begin Apilar (Menores, Desapilar(Origen)); writePila(Menores) end else begin Apilar (Mayores, Desapilar(Origen)); writePila(Mayores) end …………

INDENTACIÓN Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end.

INDENTACIÓN Program DivideMenores5; {este programa pasa todos los números de la pila Origen a la pila Menores y los otros a la pila Mayores} uses Estructu; var Origen, Menores, Mayores: Pila; Begin ReadPila(Origen); InicPila(Menores, ' '); InicPila(Mayores, ' '); While not PilaVacia(Origen) do if tope(Origen) < 5 then Apilar (Menores, Desapilar(Origen)) else Apilar (Mayores, Desapilar(Origen)); writePila(Menores); writePila(Mayores); end. Se puede “ver” donde termina el conjunto de instrucciones involucradas en una sentencia de control

Ejercitación