Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / C Sharp / Pilas con C Sharp (Ejercicio Resuelto)

Pilas con C Sharp (Ejercicio Resuelto)

Autor jc mouse jueves, septiembre 25, 2014

Desarrolle un programa en consola con un menú para el usuario que permita agregar elementos a una pila, eliminar elementos de la pila, vaciar la pila completa y mostrar la pila en pantalla, el programa solo debe aceptar números enteros del 1 al 99. Si el usuario introduce una opción que no existe o un valor erróneo el programa de avisar al usuario con un mensaje en pantalla y continuar con el programa.

¿Que es una pila?

Una PILA o STACK nos permite guardar elementos usando una estructura de tipo LIFO (last-in-first-out), es decir, el último que entra es el primero en salir, el ejemplo mas común que se maneja para entender a una PILA, es el de una pila de platos, donde el primer plato se coloca en la base y el siguiente encima de el, y así sucesivamente, cuando se retira un plato, se quita el que este más arriba, porque si tomamos otro palo, la pila se derrumbaría.

pilas

01 using System;
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Text;
05 using System.Collections;
06 
07 namespace conStack
08 {
09     class Program
10     {
11         static void Main(string[] args)
12         {
13 
14             Stack miPila = new Stack();
15 
16             int opcion;//opcion del menu 
17 
18             do{
19                 Console.Clear();//se limpia consola
20 
21                 opcion = menu();//muestra menu y espera opción
22 
23                 switch (opcion)
24                 {
25                     case 1: 
26                         agregar(ref miPila); 
27                         break;
28                     case 2: 
29                         eliminar(ref miPila); 
30                         break;
31                     case 3: 
32                         limpiar( ref miPila); 
33                         break;
34                     case 4: 
35                         imprimir(miPila); 
36                         break;
37                     case 5: break; //salir
38                     default:                        
39                         mensaje("ERROR: la opción no es valida. Intente de nuevo.");
40                         break;
41                 }
42 
43             }
44             while(opcion!=5);
45 
46             mensaje("El programa a finalizado.");            
47         }
48 
49         /** añade un nuevo elemento a la pila */
50         static void agregar( ref Stack pila )
51         {
52             Console.Write("\n>Ingrese valor: ");
53             try
54             {
55                 int valor = Convert.ToInt32(Console.ReadLine());
56                 if (valor > 99 || valor <= 0)
57                 {
58                     mensaje("Solo números del 1 al 99");
59                 }
60                 else
61                 {
62                     pila.Push(valor);
63                     imprimir(pila);
64                 }
65             }
66             catch {
67                 mensaje("Error: Solo números del 1 al 99");
68             }
69             
70         }
71 
72         /** Elimina todo los elementos de la pila */
73         static void limpiar( ref Stack pila )
74         {
75             pila.Clear();
76             imprimir(pila);
77         }
78 
79         /** Elimina elemento de la pila */
80         static void eliminar( ref Stack pila)
81         {
82             if (pila.Count > 0)
83             {
84                 int valor = (int)pila.Pop();                
85                 mensaje("Elemento " + valor + " eliminado");
86             }
87             else {
88                 imprimir(pila);
89             }
90             
91         }
92 
93         /** muestra menu y retorna opción */
94         static int menu()
95         {
96             //Console.Clear();
97             Console.WriteLine("\n            Stack Menu\n");
98             Console.WriteLine(" 1.- Agregar elemento");
99             Console.WriteLine(" 2.- Eliminar elemento");
100             Console.WriteLine(" 3.- Vaciar Pila");
101             Console.WriteLine(" 4.- Ver pila");
102             Console.WriteLine(" 5.- Termina programa");
103             Console.Write(" JC:> Ingresa tu opción: ");            
104             try
105             {
106                 int valor = Convert.ToInt32( Console.ReadLine() );                
107                 return valor;
108             }
109             catch {
110                 return 0;
111             }            
112         }
113 
114         /** Muestra mensaje del programa al usuario */
115         static void mensaje( String texto )
116         {
117             if (texto.Length > 0)
118             {
119                 Console.WriteLine("\n    =======================================================");
120                 Console.WriteLine(" JC:> {0}",texto);
121                 Console.WriteLine(" =======================================================");
122                 Console.WriteLine("\n    JC:>Presione cualquier tecla para continuar...");
123                 Console.ReadKey();
124             }            
125         }
126 
127         /** Imprime pila */
128         static void imprimir(Stack pila)
129         {
130             if (pila.Count > 0)
131             {
132                 Console.WriteLine("");
133                 foreach (int dato in pila)
134                 {
135                     Console.WriteLine(" | |");
136                     if( dato <10)
137                         Console.WriteLine(" | 0{0} |", dato);
138                     else
139                         Console.WriteLine(" | {0} |", dato);
140                     Console.WriteLine(" |______|");
141                 }
142                 Console.WriteLine("\nPresione cualquier tecla para continuar...");
143                 Console.ReadKey();
144             }
145             else 
146             {
147                 mensaje("La Pila esta vacia");                
148             }
149         }
150     }
151 }

Ejecuta el programa

stack

Descargar código fuente

enjoy!

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Convierte tus dibujos web en Código HTML

Convierte tus dibujos web en Código HTML

Sketch2Code es un proyecto de Microsoft el cual usa IA (Inteligencia Artificial) para transformar el diseño de una inter...

«Hola Mundo» en kotlin con Eclipse

«Hola Mundo» en kotlin con Eclipse

Kotlin es un lenguaje de programación de tipado estático que corre sobre la máquina virtual de Java y que también puede...

Funciones SQL desde Java

Funciones SQL desde Java

En post anteriores vimos lo que son los procedimientos almacenados y como llamarlos desde java, en este post veremos lo...

SQLite: Encriptación de datos

SQLite: Encriptación de datos

SQLite es un sistema de gestión de bases de datos relacional,  escrita en C, si se desea hacer uso de encriptación con S...

Biblioteca Matemática avanzada para java

Biblioteca Matemática avanzada para java

Java cuenta con la clase java.lang.Math  la cual contiene métodos para realizar operaciones numéricas básicas como las f...

SQLite/Java conexión

SQLite/Java conexión

SQLite. SQLite es un sistema de gestión de bases de datos relacional compatible con ACID, contenida en una relativamente...

1 comentario en “Pilas con C Sharp (Ejercicio Resuelto)”

  1. Gustavo Jaen dice:

    Excelente aporte gracias

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

WhatsApp anuncio a través de su blog que ya se encuentra disponible la función de envío de fotos y videos TEMPORALES, es...

Muchas de las innovaciones computacionales de la NASA se desarrollaron para ayudar a explorar el espacio, pero ahora la...

TikTok es una plataforma de microvideos muy popular entre los jóvenes el cual cuenta ya con millones de videos cortps de...

Una clase JTree permite mostrar datos de una forma jerárquica y en realidad este objeto no contiene sus datos; es decir,...

Herramientas

Generador de Enlaces a Whatsapp