Autor Tema: [c# Consola] leer 5 numeros ingresados y sumarlos y sacar factorial  (Leído 19734 veces)

Sixtoex

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 105
    • Ver Perfil
Bueno pues eso, si alguien sabe como puedo mejorar el código que lo diga

Código: [Seleccionar]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Ejercicio
{
    class Program
    {
        static void Main(string[] args)
        {
            int sumatorio = 0;
            try
            {


                for (int i = 1; i <= 5; i++)
                {
                    Console.Write("Ingrese el número{0}:", i);
                    int convertirValorSumar = int.Parse(Console.ReadLine());
                    sumatorio = sumatorio + convertirValorSumar;
                }
                Console.WriteLine("El sumatorio es: {0}", sumatorio);
            }
            catch (System.IO.IOException Ex)
            {
                Console.WriteLine(Ex.Message);
            }
            catch (System.OutOfMemoryException Exe)
            {
                Console.WriteLine(Exe.Message);
            }
            catch (ArgumentOutOfRangeException Exes)
            {
                Console.WriteLine(Exes.Message);
            }
            catch (OverflowException Exes)
            {
                Console.WriteLine(Exes.Message);
            }
            catch (FormatException Exes)
            {
                Console.WriteLine(Exes.Message);
            } 
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            int factorial = 5;
                Console.Write("ingrese un numero entero");
                int convertirValorFactorial = int.Parse(Console.ReadLine());
         
            for (int j = 1; j <convertirValorFactorial;j++ )
            {

                factorial = j * factorial;
            }
            Console.WriteLine(factorial);
           
        }
    }
}

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:[c# Consola] leer 5 numeros ingresados y sumarlos y sacar factorial
« Respuesta #1 en: 19 de Octubre 2014, 20:19 »
Hola, las mejoras que yo plantearía son:


Aquí parece que hay demasiadas líneas para capturar un detalle de la excepción, pero realmente ¿es tan importante el detalle?

Código: [Seleccionar]
catch (System.IO.IOException Ex)
            {
                Console.WriteLine(Ex.Message);
            }
            catch (System.OutOfMemoryException Exe)
            {
                Console.WriteLine(Exe.Message);
            }
            catch (ArgumentOutOfRangeException Exes)
            {
                Console.WriteLine(Exes.Message);
            }
            catch (OverflowException Exes)
            {
                Console.WriteLine(Exes.Message);
            }
            catch (FormatException Exes)
            {
                Console.WriteLine(Exes.Message);
            } 
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

Yo simplemente dejaría

Código: [Seleccionar]
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

Menos líneas, el programa más claro y creo que te funcionará prácticamente igual.


Más abajo has escrito int factorial = 5; pero esto no lo veo acertado. Normalmente las variables numéricas se inicializan a cero, aquí estás inicializando a 5 y eso puede confundir. Realmente da igual a qué valor inicialices porque después será sobreescrito, pero para ser más claros y no inducir confusión veo mejor inicializar a cero.

Luego hay una cosa que no estoy seguro si funciona bien: si piedes el factorial de 3 debe devolverte 1*2*3 que es 6, pero tú has puesto desde 1 hasta j<convertirValorFactorial con lo cual en vez de darte como resultado 3 te daría como resultado 2 (error porque haría 1*2 en lugar de 1*2*3). ¿Eso te funciona bien como lo tienes?

 

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