input/output magazine

16

Upload: desiree-alexandra-valenzuela

Post on 04-Feb-2016

233 views

Category:

Documents


0 download

DESCRIPTION

POR DESIREE ARAUJO

TRANSCRIPT

Page 1: INPUT/OUTPUT MAGAZINE
Page 2: INPUT/OUTPUT MAGAZINE

Presentado por:

Araujo Desiree

C.I: 18.054.971

Profesora:

Elvia Sánchez

EL MUNDO

ING.

COMPUTACION.

EDITORIAL:

En el mundo input/output

(mundo de entrada y salida) se

creo pensando en una revista

donde puedas hacerla parte de tu

mundo entrar y conocer nuevas

temas y luego salir a un mundo

donde podrás poner en practica

todo lo aprendido.

En programación input/output

permite la comunicación entre la

computadora y el usuario. Tienen

una gran importancia en cualquier

lenguaje de programación ya que

no tiene sentido que un lenguaje

de programación no pueda escribir

o leer, cuando se codifica un

programa, se hace con la intención

de que ese programa pueda

interactuar con los usuarios del

mismo, es decir, que el usuario

pueda pedirle que realice cosas y

pueda suministrarle datos con los

que se quiere que haga algo. Una

vez introducidos los datos y las

órdenes, se espera que el programa

manipule de alguna forma esos

datos para proporcionarnos una

respuesta a lo solicitado.

Page 3: INPUT/OUTPUT MAGAZINE

6

4

9

11

12

13

Page 4: INPUT/OUTPUT MAGAZINE

Diferencia entre:

Pila

(Programación)

&

Pila

(Electricidad)

Cuando nos referimos a

pilas llega a la mente de

quien no conoce el

término pila a nivel de

programación la batería

común a la cual todos

estamos acostumbrado:

Pila (eléctrica): Se

denomina pila a

un sistema en el que la

energía química de una

reacción química es

transformada en energía

eléctrica que hace

funcionar a los aparatos.

Pila (programación):

(stack) Una pila es un

conjunto ordenado de

elementos en el cual se

pueden agregar y eliminar

elementos en un extremo,

que es llamado el tope de

la pila

A diferencia de la pila que

comúnmente estamos

acostumbrado a mencionar

stack (apilar en ingles) para

los programadores es una

manera fácil de ver donde

se encuentra una variable.

4 input/output

Page 5: INPUT/OUTPUT MAGAZINE

CALLE 12 ENTRE CARRERAS 18 Y 19.

CONTÁCTANOS: 0251-9764819/ 0412-

6656232/ 0424-5822492

CORREO: [email protected]

Próximamente: Taller de Coctelería Moderna para el sábado 12 y

domingo 13 de Noviembre en INGALA inscripciones abiertas pocos cupos.

Para realizar la inscripción dirigirse a la sede, Valor del curso: 450 Bs.f p/p.

Incluye: materiales, guías y certificado.

Page 6: INPUT/OUTPUT MAGAZINE

Imagina un montón de platos

"apilados" o bien fichas de

dominó formando una torre e

intenta eliminar una desde el

centro, ¿qué ocurre?,

naturalmente esta operación

no está permitida si queremos

mantener intactos a los platos

o a la torre construida. Por

esta razón, una pila se asocia

a una estructura de datos

LIFO (LAST IN FIRST OUT en

español, último en entrar,

primero en salir).

Podemos decir que una pila

es una colección de

elementos a la cual se le

puede insertar o eliminar

elementos solamente por uno

de los extremos los

operaciones de inserción y

extracción se realiza a través

del tope, por la cual no se

puede acceder a cualquier

elemento de la pila .

Page 7: INPUT/OUTPUT MAGAZINE

Otra Manera De Verlo:

PILAS

Son unas estructuras que son más

utilizadas siempre que se quieran

recuperar una serie de elementos en

orden inverso a como se introdujeron.

Tanto la extracción como la inserción

de un elemento en la pila se realiza por

la parte superior, por lo tanto, el único

elemento al que podemos acceder es

el ultimo, y como el ultimo elemento

que se pone en la pila es el primero

que se puede sacar, a estas

estructuras dinámicas llamadas pilas

se les conoce como LIFO (Last In First

Off). Las pilas se deben implementar

de forma dinámica utilizando punteros,

pero si el lenguaje de programación

que estamos utilizando no admite

punteros, entonces tendremos que

utilizar arrays, y además una variable

que normalmente se le da el nombre

de `cima' y es la que apunta al último

elemento de la pila.

Aplicaciones de las pilas: el uso más común que suele darse a

las pilas es cuando hacemos una llamada desde un programa

a otro subprograma. Se utiliza las pilas para guardar el lugar

desde donde se hizo la llamada y para almacenar el estado de

las variables en el momento en que se hace la llamada.

También se utilizan en todos los algoritmos recursivos para

almacenar el valor de las variables y los parámetros.

Page 8: INPUT/OUTPUT MAGAZINE
Page 9: INPUT/OUTPUT MAGAZINE

Si tenemos un par de

elementos en la pila, uno de

ellos debe estar en la parte

superior de la pila, que se

considera el más alto'' en la

pila que el otro. En la pila que

mostramos el elemento F es

el más alto de todos los

elementos que están en la

pila. El elemento D es el más

alto de los elementos A,B,C,

pero es menor que los

elementos E y F.

Para describir

cómo funciona esta estructura,

debemos agregar un nuevo

elemento, el elemento G.

Después de haber agregado el

elemento G a la pila, la nueva

configuración es la que se

muestra

Page 10: INPUT/OUTPUT MAGAZINE

De acuerdo con la

definición, existe

solamente un lugar en

donde cualquier elemento

puede ser agregado a la

pila. Después de haber

insertado el nuevo

elemento, G ahora es el

elemento en la cima.

Debemos aclarar en qué

pila deseamos insertar

elementos, puesto que es

posible tener más de una

pila al mismo tiempo.

Cuando se desea retirar un

elemento de la pila, solo

basta ordenar que sea

retirado un elemento; no

podemos decir

``retira C de la pila'',

porque C no está en la

cima de la pila y solamente

podemos retirar el

elemento que está en la

cima. Para que la

sentencia ``retira C de la

pila'' tenga sentido,

debemos replantear las

órdenes a algo como:

Retira de la pila hasta que

el elemento retirado sea C.

Ni siquiera es necesario

decir: “Retira un elemento

de la pila...'' porque es

sobreentendido que

solamente se puede sacar

un elemento a la vez.

Siguiendo nuestro ejemplo,

ahora deseamos retirar de

la pila P. La configuración

global de la pila es como

se muestra en la figura

Page 11: INPUT/OUTPUT MAGAZINE

- Crear la pila

(CrearPila): La

operación de creación

de la pila inicia la pila

como vacía.

Operaciones para

añadir y eliminar

información:

- Añadir elementos en la

cima (Apilar): pondrá un

nuevo elemento en la

parte superior de la pila.

- Eliminar elementos de

la cima (Desapilar): lo

que hará será devolver

el elemento superior de

la cima y eliminarlo de

la pila.

Operaciones para

comprobar tanto la

información contenida

en la pila, como el

propio estado de la

cima:

- Comprobar si la pila

está vacía (PilaVacia):

Esta operación es

necesaria para poder

decidir si es posible

eliminar elementos de

la pila.

- Acceder al elemento

situado en la cima

(CimaPila): Nos indica el

valor del elemento

situado en la parte

superior de la pila.

La especificación

correcta de todas estas

operaciones permitirá

definir adecuadamente

una pila.

Page 12: INPUT/OUTPUT MAGAZINE

push-> Se utiliza para

introducir elementos, ésta

función necesita como

argumento a la pila y el

elemento a introducir.

pop-> se utiliza para sacar

elementos de la pila, Como

argumentos, necesita,

únicamente a la pila.

Hemos llenado nuestra pila,

llamada "s", con los valores

que le indicamos en la

función push.

Ahora si queremos sacar el

elemento del tope, basta

indicar con la siguiente

sentencia:

Pop(s);

Pop(s);

Y la pila quedaría:

Se debe tener en cuenta que,

dentro de las funciones pop y

push, pueden estar otras

funciones inmersas, por

ejemplo, si queremos

introducir más datos,

debemos tener otra función

que verifique si la pila, no

está llena. Por el contrario si

queremos sacar datos,

debemos cerciorarnos que la

pila no esté vacía, es ahí

donde nacen estas otras

funciones que deben estar

presentes en nuestros

programas:

->empty, que verifica si la pila

está vacía

->stacktop->retorna el

elemento superior de la pila.

Page 13: INPUT/OUTPUT MAGAZINE

Esta implementación es estática, es decir, da un

tamaño máximo fijo a la pila, y si se sobrepasa dicho

límite se produce un error. La comprobación de

apilado en una pila llena o des apilado en una pila

vacía no se han hecho, pero sí las funciones de

comprobación, que el lector puede modificar según

las necesidades de su programa.

- Declaración:

struct tpila

{

int cima;

int elementos[MAX_PILA];

};

Nota: MAX_PILA debe ser mayor o igual que 1. -

Procedimiento de Creación:

void crear(struct tpila *pila)

{

pila->cima = -1;

}

- Función que devuelve verdadero si la pila está

vacía:

int vacía(struct tpila *pila)

{

return (pila->cima == -1);

}

Page 14: INPUT/OUTPUT MAGAZINE

- Función que devuelve verdadero si la pila está llena:

int llena(struct tpila *pila)

{

return (pila->cima == MAX_PILA);

}

- Procedimiento de apilado:

void apilar(struct tpila *pila, int elem)

{

pila->elementos[++pila->cima] = elem;

}

- Procedimiento de desapilado:

void desapilar(struct tpila *pila, int *elem)

{

*elem = pila->elementos[pila->cima--];

}

Programa de prueba:

#include <stdio.h>

int main(void)

{

struct tpila pila;

int elem;

crear(&pila);

if (vacia(&pila)) printf("\nPila vacia.");

if (llena(&pila)) printf("\nPila llena.");

apilar(&pila, 1);

desapilar(&pila, &elem);

return 0;

}

Page 15: INPUT/OUTPUT MAGAZINE
Page 16: INPUT/OUTPUT MAGAZINE