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

Material Design: Notificaciones (Snackbar)

Material Design: Notificaciones (Snackbar)

Material Design introduce una nueva forma de mostrar notificaciones al usuario, estos son los snackbar, similares a los...

Métodos Numéricos: Sustitución Directa

Métodos Numéricos: Sustitución Directa

El Método de Sustitución Directa básicamente consiste en asumir un valor, reemplazar el mismo en la función despejada y...

Generador de códigos QR (Quick Response)

Generador de códigos QR (Quick Response)

En este tutorial aprenderemos a crear nuestra propia aplicación java para generar códigos QR. ¿Que es un Código QR?...

Crea una libreria TimeChooser – Selector de Tiempo

Crea una libreria TimeChooser – Selector de Tiempo

En este post crearemos un componente gráfico para java que nos permitirá seleccionar la hora del día de una manera senci...

Duplicando objetos con la Interface Cloneable

Duplicando objetos con la Interface Cloneable

En este post aprenderemos lo que es la clonación de objetos en java o lo que es lo mismo, generación de nuevas instancia...

Transición de imágenes al estilo PowerPoint

Transición de imágenes al estilo PowerPoint

¿Qué es una transición? Una transición es un efecto de movimiento que se da entre una imagen y la siguiente en una prese...

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

En este post veremos como imprimir secciones de un formulario en java implementando la Interface Printable. La clase que...

En este post aprenderemos lo que es la clonación de objetos en java o lo que es lo mismo, generación de nuevas instancia...

El índice TIOBE (TIOBE, The Importance of Being Earnest – “La importancia de ser honesto” – refe...

SDKMAN! es una herramienta para la administración de versiones paralelas de varios programas de desarrollo de software c...

Android Bolivia

MAUS