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.
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
Descargar código fuente
enjoy!
Según Santa Wikipedia: «Un archivo binario es un archivo informático que contiene información de cualquier tipo codifica[...]
Un JList nos permite almacenar objetos en una lista y mostrarlos gráficamente en una serie vertical en el cual el usuari[...]
En este post dejo el código fuente de un blog en PHP desarrollado siguiendo el patrón de diseño MVC (Modelo, Vista y Con[...]
En este post veremos una muy pequeña introducción de lo que es el mundo de la programación en shell de Linux. Necesitamo[...]
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[...]
En este tutorial veremos un poco lo que es el diseño de interfaces en android, en lugar de colocar el ejemplo de uso de[...]