Issuu on Google+


EDITORIAL:

EL MUNDO

Presentado por:

Araujo Desiree C.I: 18.054.971 Profesora: Elvia Sánchez

ING. COMPUTACION.

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.


4

6

9

11

12

13


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.

Diferencia entre:

Pila (Programación) & Pila (Electricidad)

input/output

4


CALLE 12 ENTRE CARRERAS 18 Y 19. CONTÁCTANOS: 0251-9764819/ 04126656232/ 0424-5822492 CORREO: ingalachef@gmail.com

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.


Imagina un montón de platos Podemos decir que una pila "apilados" o bien fichas de es una colección de dominó formando una torre e elementos a la cual se le intenta eliminar una desde el puede insertar o eliminar centro, ¿qué ocurre?, elementos solamente por uno naturalmente esta operación de los extremos los no está permitida si queremos operaciones de inserción y mantener intactos a los platos extracción se realiza a través o a la torre construida. Por del tope, por la cual no se esta razón, una pila se asocia puede acceder a cualquier a una estructura de datos elemento de la pila . LIFO (LAST IN FIRST OUT en español, último en entrar, primero en salir).


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.


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


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


- 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.


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.


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


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



INPUT/OUTPUT MAGAZINE