Ultimo Elemento Primer elemento Una Fila o Cola

  • Slides: 24
Download presentation

Ultimo Elemento Primer elemento Una Fila o Cola es una colección ordenada de elementos

Ultimo Elemento Primer elemento Una Fila o Cola es una colección ordenada de elementos homogéneos en el que los nuevos elementos se añaden de a uno por un extremo (el final) y se quita de a uno por el otro extremo (el frente). En las Filas el elemento que entró primero también sale primero.

Pilas y Filas Auxiliar

Pilas y Filas Auxiliar

Filas en Pascal - Fila de enteros - Se identifican con un nombre -

Filas en Pascal - Fila de enteros - Se identifican con un nombre - Sólo se puede acceder al primer elemento (que es el primero que entró) Primer elemento 5 7 8 Nombre de Fila

Operaciones sobre Filas Objetivo Fila Definición Nombre. Fila: Fila Inicialización estática Inic. Fila(Nombre. Fila,

Operaciones sobre Filas Objetivo Fila Definición Nombre. Fila: Fila Inicialización estática Inic. Fila(Nombre. Fila, ‘<nros>’) Carga por teclado Read. Fila(Nombre. Fila) Vacia? ( SI / NO) Fila. Vacia(Nombre. Fila) Primer. Elemento <nro> Primero(Nombre. Fila) Recuperar. Elemento <nro> Extraer(Nombre. Fila) Agregar. Elemento Agregar(Nombre. Fila, ‘<nro>’ ) Mostrar. Elementos Write. Fila(Nombre. Fila)

Operaciones sobre Filas Objetivo Fila Definición Nombre. Fila: Fila Inicialización estática Inic. Fila(Nombre. Fila,

Operaciones sobre Filas Objetivo Fila Definición Nombre. Fila: Fila Inicialización estática Inic. Fila(Nombre. Fila, ‘<nros>’) Carga por teclado Read. Fila(Nombre. Fila) Vacia? ( SI / NO) Fila. Vacia(Nombre. Fila) Primer. Elemento <nro> Primero(Nombre. Fila) Recuperar. Elemento <nro> Extraer(Nombre. Fila) Agregar. Elemento Agregar(Nombre. Fila, ‘<nro>’ ) Mostrar. Elementos Write. Fila(Nombre. Fila) Agregar(Nombre. Fila, Extraer(Nombre. Otra. Fila )

Problema: Se quieren pasar los elementos de una Fila llamada Origen a otra Fila

Problema: Se quieren pasar los elementos de una Fila llamada Origen a otra Fila llamada Destino.

Program Pasa. Elementos. Fila; {Este Programa pasa los elementos de la fila Origen a

Program Pasa. Elementos. Fila; {Este Programa pasa los elementos de la fila Origen a Destino} uses Estructu; var Origen, Destino: Fila; Begin Read. Fila(Origen); Inic. Fila(Destino, ' '); While not Fila. Vacia(Origen) do Agregar(Destino, Extraer(Origen)); Write. Fila(Origen); Write. Fila(Destino) end.

Problema Pasar los elementos de una Fila Origen a la fila Destino hasta encontrar

Problema Pasar los elementos de una Fila Origen a la fila Destino hasta encontrar un numero 3

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a la fila destino hasta llegar al numero 3 } Uses Estructu; Var Fila. Origen, Fila. Destino: Fila; Begin Read. Fila(Fila. Origen); inic. Fila(Fila. Destino, ' ' ); while (primero(Fila. Origen) <> 3)do Agregar(Fila. Destino, extraer(Fila. Origen)); Write. Fila(Fila. Origen); Write. Fila(Fila. Destino); end. ¿Es correcta la solución? Si la Fila. Origen no tiene el 3 DA ERROR

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a la fila destino hasta llegar al numero 3 } Uses Estructu; Var Fila. Origen, Fila. Destino: Fila; Begin Read. Fila(Fila. Origen); inic. Fila(Fila. Destino, ' ' ); while not Filavacia(Fila. Origen) do If (primero(Fila. Origen) <> 3) then Agregar(Fila. Destino, extraer(Fila. Origen)); Write. Fila(Fila. Origen); Write. Fila(Fila. Destino); end. ¿Es correcta la solución? Si hay un elemento 3 no sale del ciclo.

Condiciones múltiples Hay situaciones en que se desean evaluar varias condiciones a la vez:

Condiciones múltiples Hay situaciones en que se desean evaluar varias condiciones a la vez: Una condición múltiple es una secuencia de condiciones simples que se unen conectores lógicos.

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a la fila destino hasta llegar al numero 3 } ………. . Tenemos que pasar los elementos de Origen mientras no esté vacía y no encontremos el numero 3.

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a la fila destino hasta llegar al numero 3 } Uses Estructu; Var Fila. Origen, Fila. Destino: Fila; Begin Read. Fila(Fila. Origen); inic. Fila(Fila. Destino, ' ' ); while not Filavacia(Fila. Origen) and (primero(Fila. Origen) <> 3)do Agregar(Fila. Destino, extraer(Fila. Origen)); Write. Fila(Fila. Origen); Write. Fila(Fila. Destino); end. 5 7 3 8 FILAORIGEN

5 7 FILADESTINO 3 8 FILAORIGEN

5 7 FILADESTINO 3 8 FILAORIGEN

Tablas de Verdad Not (No) Condición 1 Not Condición 1 Falso Verdadero Falso

Tablas de Verdad Not (No) Condición 1 Not Condición 1 Falso Verdadero Falso

Tablas de Verdad And (y) Condición 1 Condición 2 Condición 1 and Condición 2

Tablas de Verdad And (y) Condición 1 Condición 2 Condición 1 and Condición 2 Verdadero Falso Verdadero Falso

Tablas de Verdad Or (o) Condición 1 Condición 2 Condición 1 or Condición 2

Tablas de Verdad Or (o) Condición 1 Condición 2 Condición 1 or Condición 2 Verdadero Verdadero Falso Falso

Tablas de Verdad Leyes de De. Morgan Condición _1 Condición_ 2 Not (Condición_1 AND

Tablas de Verdad Leyes de De. Morgan Condición _1 Condición_ 2 Not (Condición_1 AND Condición_2) not Condición _1 or not Condición_2 Verdadero Falso Verdadero Falso Verdadero

Tablas de Verdad Leyes de De. Morgan Condición_1 Not (Condición _1 OR Condición_2) not

Tablas de Verdad Leyes de De. Morgan Condición_1 Not (Condición _1 OR Condición_2) not condición_1 and not Condición_2 Verdadero Falso Falso Falso Verdadero

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a la fila destino hasta llegar al numero 3 } Uses Estructu; Var Fila. Origen, Fila. Destino: Fila; Begin Read. Fila(Fila. Origen); inic. Fila(Fila. Destino, ' ' ); while not Filavacia(Fila. Origen) and (primero(Fila. Origen) <> 3)do Agregar(Fila. Destino, extraer(Fila. Origen)); Write. Fila(Fila. Origen); Write. Fila(Fila. Destino); end.

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a

Program Pasaje. Parcial; { Este programa Pasa los elementos de la Fila origen a la fila destino hasta llegar al numero 3 } Uses Estructu; Var Fila. Origen, Fila. Destino: Fila; Begin Read. Fila(Fila. Origen); inic. Fila(Fila. Destino, ' ' ); while (primero(Fila. Origen) <> 3) and (not Filavacia(Fila. Origen))do Agregar(Fila. Destino, extraer(Fila. Origen)); Write. Fila(Fila. Origen); Write. Fila(Fila. Destino); ¡MAL! IMPORTA EL ORDEN, no se end. puede preguntar por el primer elemento de una Fila vacía

Problema • Analizar si dos filas tienen la misma cantidad de elementos. Si es

Problema • Analizar si dos filas tienen la misma cantidad de elementos. Si es así, poner el tope de la pila AUX en la pila IGUAL sino poner el tope de AUX en la Pila DISTINTO. • Entender el problema y su objetivo • Entender que datos se manejan • Pensar en una estrategia para resolverlo • Y LUEGO Codificar

Program Compara. Cantidad. Elementos; {Este programa analiza si dos filas tienen la misma cantidad

Program Compara. Cantidad. Elementos; {Este programa analiza si dos filas tienen la misma cantidad de elementos. Si es así, el programa pone el tope de la pila AUX en la pila IGUAL sino pone el tope de AUX en la Pila DISTINTO. } Uses Estructu; Var Origen 1, Origen 2, Descarte: Fila; Aux, Igual, Distinta: Pila; Begin Read. Fila(Origen 1); Read. Fila(Origen 2); Inic. Fila(Descarte, ' ' ); Inic. Pila(Aux, '1' ); Inic. Pila(Igual, ' ' ); Inic. Pila(Distinta, ' ' ); while not (Filavacia(Origen 1)) and not (Filavacia(Origen 2)) do begin Agregar(Descarte, extraer(Origen 1)); Agregar(Descarte, extraer(Origen 2)); end; if (Filavacia(Origen 1)) and (Filavacia(Origen 2)) then Apilar(Igual, Desapilar(Aux)) else Apilar(Distinta, Desapilar(Aux)); Write. Pila(Igual); Write. Pila(Distinta); end.