PDF de programación - Pilas

Imágen de pdf Pilas

Pilasgráfica de visualizaciones

Publicado el 31 de Julio del 2017
856 visualizaciones desde el 31 de Julio del 2017
140,2 KB
18 paginas
Creado hace 10a (01/04/2014)
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

Pilas

• Representación Gráfica

• Que se puede hacer sobre una

Tope de la Pila

ELEMENTO n
ELEMENTO n -1

………

ELEMENTO 1

pila?

Apilar

Desapilar
VerTope

…..

1

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

TOPE

NOMBRE

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()

NombrePila

Comentarios

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.

C:\fpc\bin\Inicial

Ingresar elementos a la Pila:
<Base><...><Tope>

Program Inicial;
{Este Programa es un ejemplo sencillo de manejo
de Pilas en Pascal:
Leer los datos de una Pila por pantalla e imprimirlos }

1

4

uses Estructu;
var
Origen: pila;

Begin
ReadPila(Origen);
WritePila(Origen);
end.

1
2
3
4
5
6
7
8
9
10
11
12
13

1
2
3
4
5
6
7
8
9
10
11
12
13

Program Inicial;
{Este Programa es un ejemplo sencillo de manejo
de Pilas en Pascal:
Leer los datos de una Pila por pantalla e imprimirlos }

<Base> 1 4 <Tope>

C:\fpc\bin\Inicial

Ingresar elementos a la Pila:
<Base><...><Tope>

1

4

uses Estructu;
var
Origen: pila;

Begin
ReadPila(Origen);
WritePila(Origen);
end.

Estado de las Pilas
durante ejecución:

Origen

1 4

Estado de las Pilas
durante ejecución:

Origen

1 4

2

Problema: pasar el tope de una

pila a otra

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

Origen

Destino

Problema: pasar el tope de una

pila a otra

Problema: pasar el tope de una

pila a otra

¿ Qué pasaría si Destino tiene elementos?

Origen

Destino

Origen

Destino

Apilar (Destino, Desapilar(Origen));

Apilar (Destino, Desapilar(Origen));

3

Problema: pasar el tope de una

Problema: pasar el tope de una

pila a otra

¿ Qué pasaría si Destino tiene elementos?

pila a otra

¿Qué pasaría si Origen NO tiene elementos?

¡ Desapilar de

una pila vacía da

error!

¿Cómo se puede controlar?

Origen

Destino

Apilar (Destino, Desapilar(Origen));

Origen

Destino

Apilar (Destino, Desapilar(Origen));

Sentencia de control: Selección

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.

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.

4

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino }

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino }

C:\fpc\bin\PasaTope

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.

Condición que dará Verdadero o Falso

Estado de las Pilas
durante ejecución:

Origen

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

Ingresar elementos a la Pila:
<Base><...><Tope>

1

4

Estado de las Pilas
durante ejecución:

Origen

1 4

Destino

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino }

C:\fpc\bin\PasaTope

Ingresar elementos a la Pila:
<Base><...><Tope>

1

4

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino }

C:\fpc\bin\PasaTope

Ingresar elementos a la Pila:
<Base><...><Tope>

1

4

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.

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.

Estado de las Pilas
durante ejecución:

Origen

1 4

Destino ‘



Estado de las Pilas
durante ejecución:

Origen

1 4

Destino ‘



5

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino }

C:\fpc\bin\PasaTope

Ingresar elementos a la Pila:
<Base><...><Tope>

1

4

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino }

C:\fpc\bin\PasaTope

Ingresar elementos a la Pila:
<Base><...><Tope>

1

4

<Base> 1 <Tope>

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.

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.

Estado de las Pilas
durante ejecución:

Origen

1

Destino 4

C:\fpc\bin\PasaTope

Ingresar elementos a la Pila:
<Base><...><Tope>

1

4

<Base> 1 <Tope>
<Base> 4 <Tope>

Estado de las Pilas
durante ejecución:

Origen

1

Destino 4

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.

Estado de las Pilas
durante ejecución:

Origen

1

Destino 4

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino
y avisa si la Pila Origen es vacia}

C:\fpc\bin\PasaTope

Ingresar elementos a la Pila:
<Base><...><Tope>

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

end.

Writeln('La Pila Origen está vacía');

Estado de las Pilas
durante ejecución:

Origen

Destino

6

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino
y avisa si la Pila Origen es vacia}

C:\fpc\bin\PasaTope

Ingresar elementos a la Pila:
<Base><...><Tope>

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino
y avisa si la Pila Origen es vacia}

C:\fpc\bin\PasaTope

Ingresar elementos a la Pila:
<Base><...><Tope>

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

end.

Writeln('La Pila Origen está vacía');

Estado de las Pilas
durante ejecución:

Origen

Destino

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

end.

Writeln('La Pila Origen está vacía');

Estado de las Pilas
durante ejecución:

Origen

Destino

Program PasaTope;
{Este Programa pasa el tope de la pila Origen a Destino
y avisa si la Pila Origen es vacia}

C:\fpc\bin\PasaTope

Ingresar elementos a la Pila:
<Base><...><Tope>

La Pila Origen está vacía

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

end.

Writeln('La Pila Origen está vacía');

Estado de las Pilas
durante ejecución:

Origen

Destino

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.

7

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));

x While not PilaVacia(Origen) do

………
WritePila(Origen);
WritePila(Destino)

if not PilaVacia(Origen) then

Apilar (Destino, Desapilar(Origen));

Apilar (Destino, Desapilar(Origen));

end.

C:\fpc\bin\OrdenarPorSeleccion
C:\fpc\bin\PasaPila

Estructura de control: Iteración (WHILE)

Program PasaPila;
{Este Programa pasa los elementos de la pila
Origen a Destino}

• 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 util
  • Links de descarga
http://lwp-l.com/pdf5919

Comentarios de: Pilas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad