none
auto-ajuste de operandos RRS feed

  • Pregunta

  • Hola a todos, tengo el siguiente problema y quizas alguien sabe como solucionarlo...

    sabemos que en la siguiente operacion matematica:
    a + b + c = r
    a,b,c son los operandos, + es el operador y r es el resultado.

    a mi me dan el resultado (r) y tengo que hallar los operandos y para complicarlo mas cada vez que presione un boton este me de nuevos operandos para la misma respuesta.
    ejemplo: r = 200 y pincho el boton y a = 100, b = 50 y c = 50

    200 = 100 + 50 + 50

    vuelvo a presionar el boton y a = 150, b = 35 c = 15
    lo que les pido es como hacer un algoritmo donde el usuario inserta una cantidad total e inserta la cantidad de operandos y el algoritmo me devuelve los valores de cada uno de los operando y cada vez que le solicite este me de valores nuevos de cada oprerando.

    gracias a todos por su lectura, espero que alquien me ayude.
     
    miércoles, 25 de julio de 2018 12:59

Todas las respuestas

  • Gracias Walteг por tu ayuda me fue muy útil y de guía, pero yo necesitaba de decirle al programa la cantidad de operandos o factores que operaban y aqui esta mi aporte...

     Formulario:

     Código:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace AutoAjuste_Operandos
    {
        class algoritmo02
        {
            Random rnd = new Random();
            public string Algoritmo02(string total, int NoOperando)
            {
                string Result = null;
                int r = int.Parse(total);
    
                if (r < 0) { Result = "El resultado no puede ser menor que cero."; }
    
                int[] operandos = new int[NoOperando];
                //int[] operandosRnd = new int[NoOperando-1];
    
                for (int i = 0; i < NoOperando; i++)
                {
                    if (i == NoOperando-1)
                    {
                        operandos[i] = r - suma(operandos);
                    }
                    else
                    {
                        operandos[i] = rnd.Next(1, r - suma(operandos));
                    }                
                }
    
                for (int i = 0; i < operandos.Length; i++)
                {
                    if (i == 0)
                    {
                        Result = string.Format("{0}", operandos[i]);
                    }
                    else
                    {
                        Result = Result + string.Format(" + {0}", operandos[i]);
                    }
    
                }
    
                return Result;
            }
    
            int suma(int[] operandos)
            {
                int Result = 0;
                foreach (int item in operandos)
                {
                    Result = Result + item;
                }
                return Result;
            }
    
            int resta(int[] operandos)
            {
                int Result = 0;
                foreach (int item in operandos)
                {
                    Result = Result - item < 0 ? (Result - item) * -1 : Result - item;
                }
                return Result;
            }
        }
    }
    


     Pero, jajaja siempre que programamos queremos ajustar un poquito mas, sucede que es logico si yo doy 3 operandos, ninguno de ellos puede ser cero... Si alguien pude pulir mi codigo e implementar la mejora del cero en los openados mejor.

    domingo, 29 de julio de 2018 13:54