[PROBLEMA] C# Menús

Iniciado por alanjo, 5 Abril 2016, 11:03 AM

0 Miembros y 1 Visitante están viendo este tema.

alanjo

Buenas gente, antes que nada, no vengo a pedir que me hagan la tarea que YO debo hacer, pero la verdad es que estoy trabado hace bastante con este ejercicio, y me gustaría tener la recomendación de alguien que sepa. Si no hubiera pensado, ni siquiera habría hecho el código, no soy cómodo, sólo que este ejercicio me tiene podrido hace varios días, el problema dice "Ingresar un valor en la variable "opción" y realizar la operación con la siguiente correspondencia: (1) Determinar el mayor de los valores, (2) Calcular el promedio de los valores, (3) Calcular el producto de los valores (4) Calcular la raíz cúbica de cada valor y (5) Salir del sistema". Problema, al intentar calcular el promedio, se me subraya con ROJO, el otro problema es que no sé como hacer para salir del sistema, aún nuestro profesor no nos enseñó, y tampoco se me ocurre nada para el (4)  :huh: Pero les dejo lo que voy haciendo de código. (Uso la última versión del framework, pero en esto no influye mucho, supongo):

Código (csharp) [Seleccionar]
using System;

namespace TP1_23
{
    class Program
    {
        static void Main(string[] args)
        {
            string opcion = string.Empty;

            do
            {
                Console.WriteLine("============================================");
                Console.WriteLine("                     MENU                   ");
                Console.WriteLine("============================================");
                Console.WriteLine("1) Determinar el mayor de los valores");
                Console.WriteLine("2) Calcular el promedio de los valores");
                Console.WriteLine("3) Calcular el producto de los valores");
                Console.WriteLine("4) Calcular la raíz cúbica de cada valor");
                Console.WriteLine("5) Salir del sistema");

                opcion = Console.ReadLine().ToUpper();
               
                switch(opcion)
                {
                    case "1":
                        double dValor1 = 0;
                        Console.WriteLine("Ingrese el primer valor : ");
                        while (!double.TryParse(Console.ReadLine(), out dValor1))
                        {
                            Console.WriteLine("Error de carga... Vuelva a intentarlo");
                            Console.WriteLine("Ingrese el primer valor : ");
                        }
                        double dValor2 = 0;
                        Console.WriteLine("Ingrese el segundo valor : ");
                        while (!double.TryParse(Console.ReadLine(), out dValor2))
                        {
                            Console.WriteLine("Error de carga... Vuelva a intentarlo");
                            Console.WriteLine("Ingrese el segundo valor : ");
                        }
                        Console.Clear();
                        if (dValor1 > dValor2)
                        {
                            Console.WriteLine("El mayor es : " + dValor1);
                        }
                        else
                        {
                            Console.WriteLine("El mayor es : " + dValor2);
                        }
                        Console.ReadKey();
                        break;

                    case "2":
                        double suma = dValor1 + dValor2;
                        double promedio = (dValor1 + dValor2) / 2;
                        Console.WriteLine("El promedio es : " + promedio);
                        Console.ReadKey();
                        break;

                    case "3":
                        double producto = dValor1 * dValor2;
                        Console.WriteLine("El producto de ambas es igual a : " + producto);
                        Console.ReadKey();
                        break;

                    case "4":
                        Math.Pow(dValor1/3);

                }

            }
        }
    }
}


Y ahí me quedo trabado. Muchas gracias de antemano gente. Soy nuevillo en el mundo de la programación, mucha idea no tengo :/, me vendría genial una pequeña ayudita.

El Benjo

El problema que te subraya el IDE es que las variables 'dValor1' y 'dValor2' no están declaradas dentro del bloque, sólo están declaradas dentro del 'case 1:'. Lo que tienes que hacer es pedir los valores fuera del case.

Lo segundo, para salir del sistema usa una condición en tu bucle Do que siempre sea cierta y que cambie a falsa cuando el usuario elija la opción número 5:

Código (csharp) [Seleccionar]

bool NoSalir = true;
do{
  switch(opcion){
    case "5":
      NoSalir = false;
    break;
  }
} while (NoSalir = true)
www.es.neftis-ai.com

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