elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Aplicacion de Consola C# - Programa Pilas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Aplicacion de Consola C# - Programa Pilas  (Leído 15,623 veces)
Castiel

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Aplicacion de Consola C# - Programa Pilas
« en: 8 Febrero 2015, 04:08 am »

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.

Código
  1. using System;
  2. using System.Collections;
  3. using System.Text;
  4.  
  5. namespace Pilas
  6. {
  7.    class Program
  8.    {
  9.        static void Main(string[] args)
  10.        {
  11.            // Variables necesarias
  12.            int opcion = 0;
  13.            string valor = "";
  14.            int numero = 0;
  15.            bool encontrado = false;
  16.  
  17.            // Creamos el stack
  18.            Stack miPila = new Stack();
  19.            do
  20.            {
  21.                // Mostramos menu
  22.                Console.WriteLine("1- Push");
  23.                Console.WriteLine("2- Pop");
  24.                Console.WriteLine("3- Clear");
  25.                Console.WriteLine("4- Contains");
  26.                Console.WriteLine("5- Salir");
  27.                Console.WriteLine("Dame tu opcion");
  28.                valor = Console.ReadLine();
  29.                opcion = Convert.ToInt32(valor);
  30.                switch (opcion)
  31.                {
  32.                    case 1:
  33.                        // Pedimos el valor a introducir
  34.                        Console.WriteLine("Dame el valor a introducir");
  35.                        valor = Console.ReadLine();
  36.                        numero = Convert.ToInt32(valor);
  37.                        // Adicionamos el valor en el stack
  38.                        miPila.Push(numero);
  39.                        break;
  40.                    case 2:
  41.                        // Obtnemos el elemento
  42.                        numero = (int)miPila.Pop();
  43.                        // Mostramos el elemento
  44.                        Console.WriteLine("El valor obtenido es: {0}", numero);
  45.                        break;
  46.                    case 3:
  47.                        // Limpiamos todos los contenidos del stack
  48.                        miPila.Clear();
  49.                        break;
  50.                    case 4:
  51.                        // Pedimos el valor a encontrar
  52.                        Console.WriteLine("Dame el valor a encontrar");
  53.                        valor = Console.ReadLine();
  54.                        numero = Convert.ToInt32(valor);
  55.                        // Vemos si el elemento esta
  56.                        encontrado = miPila.Contains(numero);
  57.                        // Mostramos el resultado
  58.                        Console.WriteLine("Encontrado - {0}", encontrado);
  59.                        break;
  60.                    default:
  61.                        Console.WriteLine("No existe opción intente de nuevo");
  62.                        break;
  63.                }
  64.                // Mostramos la informacion del stack
  65.                Console.WriteLine("La pila tiene {0} elementos", miPila.Count);
  66.                foreach (int n in miPila)
  67.                    Console.Write(" {0},", n);
  68.  
  69.                Console.WriteLine("");
  70.                Console.WriteLine("————");
  71.            } while (opcion != 5);
  72.        }
  73.    }
  74. }
  75.  

Espero su Valiosa y Pronta Ayuda


« Última modificación: 8 Febrero 2015, 08:02 am por Eleкtro » En línea

El Benjo


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Aplicacion de Consola C# - Programa Pilas
« Respuesta #1 en: 8 Febrero 2015, 06:17 am »

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

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
Castiel

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Aplicacion de Consola C# - Programa Pilas
« Respuesta #2 en: 8 Febrero 2015, 16:09 pm »

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


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Aplicacion de Consola C# - Programa Pilas
« Respuesta #3 en: 8 Febrero 2015, 19:35 pm »

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:

Código
  1. case 1:
  2.                        // Pedimos el valor a introducir
  3.                        Console.WriteLine("Dame el valor a introducir");
  4.  do{
  5. valor = Console.ReadLine();
  6. if(Int32.TryParse(valor, out numero))
  7. // Adicionamos el valor en el stack si es un número.
  8.   miPila.Push(numero);
  9.   } while(valor != "a");
  10.                        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.com

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
Castiel

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Aplicacion de Consola C# - Programa Pilas
« Respuesta #4 en: 8 Febrero 2015, 22:41 pm »

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


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Aplicacion de Consola C# - Programa Pilas
« Respuesta #5 en: 9 Febrero 2015, 06:27 am »

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

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
Castiel

Desconectado Desconectado

Mensajes: 23


Ver Perfil
Re: Aplicacion de Consola C# - Programa Pilas
« Respuesta #6 en: 9 Febrero 2015, 06:48 am »

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 Desconectado

Mensajes: 23


Ver Perfil
Re: Aplicacion de Consola C# - Programa Pilas
« Respuesta #7 en: 14 Febrero 2015, 07:22 am »

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


Desconectado Desconectado

Mensajes: 392



Ver Perfil WWW
Re: Aplicacion de Consola C# - Programa Pilas
« Respuesta #8 en: 14 Febrero 2015, 21:20 pm »

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

Sí hay un mejor lenguaje de programación y es ese con el que puedes desarrollar tus objetivos.
bOrregOtheDemon

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: Aplicacion de Consola C# - Programa Pilas
« Respuesta #9 en: 31 Julio 2016, 21:56 pm »

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

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

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,186 Último mensaje 3 Noviembre 2008, 18:30 pm
por Pablo Videla
vb en aplicacion consola
.NET (C#, VB.NET, ASP)
chrisstine2975 5 5,330 Último mensaje 21 Mayo 2012, 07:01 am
por chrisstine2975
Salir de una aplicacion de consola
.NET (C#, VB.NET, ASP)
MaNuLoki 4 13,211 Último mensaje 24 Octubre 2014, 04:09 am
por Eleкtro
Programa de archivos y pilas
Programación C/C++
celest275 1 1,808 Último mensaje 10 Abril 2018, 22:44 pm
por Kenji-chan
Duda con programa de Pilas
Programación C/C++
Emily 2 2,681 Último mensaje 3 Febrero 2019, 08:25 am
por Emily
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines