none
Como optimizar un codigo con iteraciones RRS feed

  • Pregunta

  • Hola amigos del foro soy algo nuevo en la programación estoy haciendo un pequeño programa que de 5 números que introduzca me de el mayor y el menor, he logrado que funcione pero mi pregunta es como optimizar este codigo ya que me doy cuenta que estoy repitiendo demasiado código encontre un codigo en internet muy bueno pero no solo como implementarlo en windows forms es para consola les dejo ambos codigos por si alguien me pudiera ayudar se los agradeceria mucho

    Este el código que escribi

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace ProgramaMayoroMenor
    {
        public partial class Form1 : Form
        {
            //Variables globales
            double menor, mayor;
            double[] num = new double[5];
            private void LEERDATOS()
            {
                num[0] = Convert.ToDouble(txtNumero1.Text);
                num[1] = Convert.ToDouble(txtNumero2.Text);
                num[2] = Convert.ToDouble(txtNumero3.Text);
                num[3] = Convert.ToDouble(txtNumero4.Text);
                num[4] = Convert.ToDouble(txtNumero5.Text);
            }
    
            private double Mayor(double num1, double num2 , double num3, double num4, double num5)
            {
                mayor = num1;
                if (num2 > mayor)
                    mayor = num2;
                if (num3 > mayor)
                    mayor = num3;
                if (num4 > mayor)
                    mayor = num4;
                if (num5 > mayor)
                    mayor = num5;
                return mayor;
            }
    
            private double Menor(double num1, double num2, double num3, double num4, double num5)
            {
                menor = num1;
                if (num2 < menor)
                    menor = num2;
                if (num3 < menor)
                    menor = num3;
                if (num4 < menor)
                    menor = num4;
                if (num5 < menor)
                    menor = num5;
                return menor;
            }
            public Form1()
            {
                InitializeComponent();
            }
    
            private void btbCalcular_Click(object sender, EventArgs e)
            {
                LEERDATOS();
                Mayor(num[0],num[1],num[2],num[3],num[4]);
                Menor(num[0], num[2], num[2], num[3], num[4]);
                lblMayor.Text = mayor.ToString();
                lblMenor.Text = menor.ToString();
            }
        }
    }
    

    Y el siguiente es el que encontré en internet que me parecio muy bueno ya que utiliza menos código y hace lo mismo pero no se como implementarlo a mi programa ya que es en consola

    static void Main(string[] args)
            {
                int[] numero = new int[5];
                // int v, max = ventas[0], min = ventas[0]; VENTAS[0] ESTA SIN INICIALIZAR y tienen el valor 0
                int v;
                for (int i = 0; i < 5; i++)
                {
                    Console.Write("ingresos numeros: ");
                    v = int.Parse(Console.ReadLine());
                    numero[i] = v;
                }
                int max = numero[0], min = numero[0];
                for (int i = 0; i < 5; i++)
                {
                    if (numero[i] > max)
    
                        max = numero[i];
    
    
                    else if (numero[i] < min)
    
                        min = numero[i];
                }
    
                Console.Write("\n\nEl mayor es: " + max);
                Console.Write("\n\nEl menor es: " + min);
                Console.ReadKey();
    
            }

    lunes, 24 de junio de 2019 0:30

Respuestas

  • hola Geardarko

    Podes hacer los 2 metodos por separado (codigo adjunto) o se puede hacer en un mismo bloque como el codigo q pasaste de consola

    private double Mayor() { // no se necesita pasarle parametros porq el array 'numeros' es una variable de la clase
    int a;
    double mayor = numeros[0];
    for (a = 1; a < numeros.Length; a++)
        if (numeros[a] > mayor)
            mayor = numeros[a];
    return mayor;
    }
    
    private double Menor() { // no se necesita pasarle parametros porq el array 'numeros' es una variable de la clase
    int a;
    double menor = numeros[0];
    for (a = 1; a < numeros.Length; a++)
        if (numeros[a] < menor)
            menor = numeros[a];
    return menor;
    }

    Saludos

    Pablo

    • Propuesto como respuesta Carlos_Ruiz_M martes, 25 de junio de 2019 14:50
    • Marcado como respuesta Geardarko jueves, 4 de julio de 2019 16:58
    lunes, 24 de junio de 2019 2:18

Todas las respuestas