Autor Tema: c# ejercicio  (Leído 98 veces)

lau1

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
c# ejercicio
« en: 13 de Abril 2021, 16:02 »
Hola!! tengo un duda de un ejercicio que me dieron sobre "for - switch" y quería saber si lo estaba haciendo bien

   // 2) Realizar un programa que permita ingresar n números enteros por el teclado y se desea conocer:
            //  a) La cantidad de números positivos.
            //b) La cantidad de números negativos.
            //   c) La cantidad de números pares.

            // d)La cantidad de números impares

            //nota: 0 no cuenta ni como positivo ni como negativo.           


            #endregion

            int par = 0;
            int impar = 0;
            string respuesta = "si";
            int numConver;
            string numerIngre;

            do
            {
                Console.WriteLine("Ingrese numero");


                numerIngre = Console.ReadLine();

            } while (respuesta == "si");

            {
                Console.WriteLine("¿Quiere ingresar otro numero?");


                numerIngre = Console.ReadLine();


            }


            switch (numerIngre)

            {

                case "a":           //numeros positivos

                    for (int i = 0; i < 100; i++)
                    {

                    }

                    int.TryParse(numerIngre, out numConver);


                    break;



                case "b":            //numeros negativos

                    for (int i = 0; i < 100; i-=1)
                    {

                    }
                   
                   int.TryParse(numerIngre, out numConver);



                    break;


                case "c":       //numeros pares

                    int.TryParse(numerIngre, out numConver);

                    for (int i = 0; i < 100; i+=2)
                    {
                       
                    }


                    break;



                case "d":           //numeros impares

                    int.TryParse(numerIngre, out numConver);

                    for (int i = 0; i < 100; i++)
                    {

                    }



                    break;

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 594
    • Ver Perfil
Re: c# ejercicio
« Respuesta #1 en: 14 de Abril 2021, 00:55 »
Hola.
No, no vas bien.

Nada más empezar, tienes un bucle infinito

Código: [Seleccionar]
do
            {
                Console.WriteLine("Ingrese numero");


                numerIngre = Console.ReadLine();

            } while (respuesta == "si");

Esto se repite mientras respuesta sea igual a "si".
Pero como dentro del bucle, en ningún momento se altera el valor de respuesta, pues su valor SIEMPRE va a ser "si", así que el bucle se va a repetir infinitamente.

Luego, a parte de esto, eso de un switch que pregunta por "a", "b", "c"...
¿Por qué? ¿Por que así se enumeran las tareas en el enunciado?
Citar
//  a) La cantidad de números positivos.
            //b) La cantidad de números negativos.
            //   c) La cantidad de números pares.

Eso no tiene nada que ver con la lógica que ha de seguir el programa.
Ni pintan nada esos bucle for que van de 0 a 100..


La lógica a seguir sería:

- Pedir número.
- Si no es 0, comprobar si es negativo o positivo.
Si es negativo se incrementa un contador de negativos, si es positivo pues se incrementa un contador de positivos
-Comprobar si es par o impar e incrementar los contadores correspondientes.
- Preguntar si se quiere continuar si/no

-Repetir todo esto en un bucle mientras la respuesta a continuar sea "si".
- Cuando la respuesta sea "no", el bucle termina y entonces se muestra en pantalla los valores de los contadores.

El código podría ser como el que pondré a continuación.
Pruébalo, revisa los comentarios, asegurate de que entiendes cada línea, cada instrucción...
Cualquier cosa que no entiendas, o te parezca extraña o lo que sea, no dudes en preguntarlo y te lo explicaremos.  ;)

Un saludo.
Código: [Seleccionar]
        static void Main(string[] args)
        {
            //contadores
            int contPares = 0, contImpares = 0, contPositivos = 0, contNegativos = 0;
            //Variable para recoger lectura por teclado
            int valor;
            //Variable para consultar si desea continuar
            string respuesta;

            do
            {
                Console.Clear();
                //Pedimos valor
                Console.Write("Introduzca valor numerico: ");
                valor = int.Parse(Console.ReadLine());

                //Si no es un 0, comprobamos si es positivo o negativo
                if (valor != 0)
                {
                    if (valor > 0) //Positivo
                        contPositivos++;
                    else //Negativo
                        contNegativos++;
                }

                //Ahora comprobamos si es par. Un número es par si al dividir entre 2, su resto es 0 (usamos operador módulo)
                if (valor % 2 == 0) //Es par
                    contPares++;
                else //Es impar
                    contImpares++;

                //Evaluaciones completadas, preguntamos si quiere introducir otro número
                Console.Write("\nDesea ingresar otro número?[si/no]: ");
                respuesta = Console.ReadLine();

            } while (respuesta.Equals("si"));

            //Usuario ha terminado de ingresar valores. Mostramos resultados
            Console.Clear();
            Console.WriteLine("Numeros POSITIVOS ingresados: " + contPositivos);
            Console.WriteLine("Numeros NEGATIVOS ingresados: " + contNegativos);
            Console.WriteLine("Numeros PARES ingresados: " + contPares);
            Console.WriteLine("Numeros IMPARES ingresados: " + contImpares);

            Console.WriteLine("\n\t\tFIN DE PROGRAMA");
        }
    }
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".