Autor
|
Tema: Aplicacion de Consola C# - Programa Pilas (Leído 16,641 veces)
|
Castiel
Desconectado
Mensajes: 23
|
Buenas noches solicito su ayuda con la siguiente compilación, soy nuevo y me trabe en la solución del siguiente código, alguien que guste ayudar a este servidor. Necesito modificar el siguiente código para que haga lo siguiente, no se que sintaxis seria la mas adecuada para modificar el código necesario para que, al ejecutarse el programa, solicite continuamente la captura de un valor que será insertado en la pila hasta que el usuario ya no desee continuar con dicho registro segun yo este es mi avance, saludos. using System; using System.Collections; using System.Text; namespace Pilas { class Program { static void Main(string[] args) { // Variables necesarias int opcion = 0; string valor = ""; int numero = 0; bool encontrado = false; // Creamos el stack Stack miPila = new Stack(); do { // Mostramos menu Console.WriteLine("1- Push"); Console.WriteLine("2- Pop"); Console.WriteLine("3- Clear"); Console.WriteLine("4- Contains"); Console.WriteLine("5- Salir"); Console.WriteLine("Dame tu opcion"); valor = Console.ReadLine(); opcion = Convert.ToInt32(valor); switch (opcion) { case 1: // Pedimos el valor a introducir Console.WriteLine("Dame el valor a introducir"); valor = Console.ReadLine(); numero = Convert.ToInt32(valor); // Adicionamos el valor en el stack miPila.Push(numero); break; case 2: // Obtnemos el elemento numero = (int)miPila.Pop(); // Mostramos el elemento Console.WriteLine("El valor obtenido es: {0}", numero); break; case 3: // Limpiamos todos los contenidos del stack miPila.Clear(); break; case 4: // Pedimos el valor a encontrar Console.WriteLine("Dame el valor a encontrar"); valor = Console.ReadLine(); numero = Convert.ToInt32(valor); // Vemos si el elemento esta encontrado = miPila.Contains(numero); // Mostramos el resultado Console.WriteLine("Encontrado - {0}", encontrado); break; default: Console.WriteLine("No existe opción intente de nuevo"); break; } // Mostramos la informacion del stack Console.WriteLine("La pila tiene {0} elementos", miPila.Count); foreach (int n in miPila) Console.Write(" {0},", n); Console.WriteLine(""); Console.WriteLine("————"); } while (opcion != 5); } } }
Espero su Valiosa y Pronta Ayuda
|
|
« Última modificación: 8 Febrero 2015, 08:02 am por Eleкtro »
|
En línea
|
|
|
|
El Benjo
|
¿Exactamente en qué estás atorado o qué parte de tu código no funciona?
Echando un vsitazo rápido al código te puedo decir que así como lo tienes, cuando elijas la opción número 5 te va salir el mensaje diciendo que ese comando no existe. Para evitar eso coloca un case: 5 que no haga nada.
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
Castiel
Desconectado
Mensajes: 23
|
Hola mi estimado, buenos días.
Bueno creo que no me explique bien sorry, mi código funciona y corre bien pero solo esta limitado que debería modificar o agregar a la compilación para que solicite continuamente la captura de un valor que sera insertado en la pila hasta que el usuario ya no desee continuar.
Espero me apoyes saludos.
|
|
|
En línea
|
|
|
|
El Benjo
|
Veamos, me tardé tiempo en entender lo que quieres y tuve que leer varias veces el emnsaje, pero creo que ya sé lo que es. Lo que quieres es que cuando el usuario seleccione la primera opción se capturen datos hasta que el usuario introduzca el presione cierta tecla (como una tecla de control) para no capturar más, ¿cierto? Si es así entonces creo que tu primer case quedaría algo así como: case 1: // Pedimos el valor a introducir Console.WriteLine("Dame el valor a introducir"); do{ valor = Console.ReadLine(); if(Int32.TryParse(valor, out numero)) // Adicionamos el valor en el stack si es un número. miPila.Push(numero); } while(valor != "a"); break;
En este caso si el usuario introduce el caracter 'a' entonces deja de capturar los datos. También te dejé la conversión mediante el TryParse() de esta manera no te dará excepciones cuando el usuario ingrese un dato que no puede ser convertido a int32. Espero que sea eso lo que querías. Saludos
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
Castiel
Desconectado
Mensajes: 23
|
Que tal mi estimado Benjo, ya aplique la parte correspondiente que me comentas sobre el caso 1, deje intactos los demás casos solo modifique el 1er. caso pero al depurarlo y elegir una opción por ejemplo la de introducir un valor del caso 1, no me permite hacer nada mas y no me pregunta si deseo introducir mas valores a la pila, que estaría fallando entonces.
Quedo al pendiente de tus comentarios.
|
|
|
En línea
|
|
|
|
El Benjo
|
Eso es porque (como te explico en el comentario anterior) lo que ese código hace es un bucle donde se ingresan valores hasta que el usuario ingrese únicamente la letra 'a'. Es decir que cada que ingresas un valor y das 'Enter' ese valor se va guardando en la pila (o sea que sigue capturando) si ya no quieres que se guarden valores en la pila entonces en vez de introducir un número introduces la letra 'a'. Cuando haces esto, de nuevo aparece el menú. ¿No es eso lo que querías que hiciera? ¿Qué es entonces? La tecla o combinación de teclas para que salga la puedes modificar en la parte del while(). Venga que no es nada complicada la parte del código que te modifiqué. Échale un vistazo y tú mismo verás por qué hace lo que hace. Saludos, y si todavía no funciona como esperas, dinos que para eso andamos por aquí, pero intenta explicar bien qué es lo que quieres.
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
Castiel
Desconectado
Mensajes: 23
|
Ok Gracias Benjo, lo revisare, olvide revisar detalladamente lo de la letra, sorry. Los demás casos se integran como tal verdad, solo es modificar el case 1, estoy en ello checando la compilación.
Nuevamente muchas grax, saludos.
|
|
|
En línea
|
|
|
|
Castiel
Desconectado
Mensajes: 23
|
Hola mi estimado Benjo
Nuevamente yo dando lata, te comento lo siguiente en cuanto a la compilación, ahora si para rectificar lo que se solicita hacer en el código, por aquello de si no me supe explicar, te comento lo que se requiere y me comentas si es así es como se tiene que dar solución a las respectivas modificaciones:
Se requiere modificar el código para dar solución a el requerimiento de permitir ingresar más datos a la pila incluyendo la funcionalidad de permitir al usuario que indique en que momento terminar de agregar datos a la pila, Osea lo que se pide es que el usuario ingrese datos a la pila indefinidamente, hasta que llegue el momento en donde decida que ya no desea ingresar, mas datos.
Ahora si con objeto de rectificar si se esta llegando a la solución esperada, por medio de dicha sintaxis.
Saludos cordiales.
|
|
|
En línea
|
|
|
|
El Benjo
|
Hola, para es es el foro (para dar lata XD). Me supongo que los datos se ingresarán indefinidamente cuando se presione la opción 1. Si es así, entonces el código que te puse en el segundo comentario que hice te funciona para eso. Fíjate bien en la manera en que pide datos de forma indefinida y cuál es la condición que hace que deje de pedirlos. De esta manera tú podrás modificar el código para adaptarlo y hacer que el usuario deje de ingresar datos de acuerdo a la condición que tú pongas.
Un saludo, y la próxima vez postea el código que tienes modificado. (Para comprobar que estás haciendo algo por tu cuenta. Recuerda que el foro no es para hacerle la tarea a nadie)
|
|
|
En línea
|
www.es.neftis-ai.comSí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
|
|
|
bOrregOtheDemon
Desconectado
Mensajes: 1
|
Buenas Tardes Amigos Yo tengo otro tipo de codigo.........., y se supone que debe de hacer #Solicite continuamente la captura de un valor que será insertado en la pila hasta que el usuario ya no desee continuar con dicho registro y Extraiga elementos de la Pila en la medida que el usuario indique y que proporcione retroalimentación para cuando no existan # Me podrian indicar en donde esta mal Gracias Saludos using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace Pila { class Pila { class Nodo { public int info; public Nodo sig; }
private Nodo raiz;
public Pila() { raiz = null; }
public void Insertar(int x) { Nodo nuevo; nuevo = new Nodo(); nuevo.info = x; if (raiz == null) { nuevo.sig = null; raiz = nuevo; } else { nuevo.sig = raiz; raiz = nuevo; } }
public int Extraer() { if (raiz != null) { int informacion = raiz.info; raiz = raiz.sig; return informacion; } else { return int.MaxValue; } }
public void Imprimir() { Nodo reco = raiz; Console.WriteLine("Listado de todos los elementos de la pila."); while (reco != null) { Console.Write(reco.info + "-"); reco = reco.sig; } Console.WriteLine(); }
static void Main(string[] args) { Pila pila1 = new Pila(); pila1.Insertar(10); pila1.Insertar(40); pila1.Insertar(3); pila1.Imprimir(); Console.WriteLine("Extraemos de la pila:" + pila1.Extraer()); pila1.Imprimir(); Console.ReadKey(); } } }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
ayuda para hacer unos programa en aplicacion de consola de C#
« 1 2 »
.NET (C#, VB.NET, ASP)
|
alonsomzo
|
10
|
15,916
|
3 Noviembre 2008, 18:30 pm
por Pablo Videla
|
|
|
vb en aplicacion consola
.NET (C#, VB.NET, ASP)
|
chrisstine2975
|
5
|
6,128
|
21 Mayo 2012, 07:01 am
por chrisstine2975
|
|
|
Salir de una aplicacion de consola
.NET (C#, VB.NET, ASP)
|
MaNuLoki
|
4
|
13,689
|
24 Octubre 2014, 04:09 am
por Eleкtro
|
|
|
Programa de archivos y pilas
Programación C/C++
|
celest275
|
1
|
2,091
|
10 Abril 2018, 22:44 pm
por Kenji-chan
|
|
|
Duda con programa de Pilas
Programación C/C++
|
Emily
|
2
|
3,373
|
3 Febrero 2019, 08:25 am
por Emily
|
|