none
formula RRS feed

  • Pregunta

  • Hola 

    Quiero hacer estas formulas en un programa de consola

    SI EL INDICADOR ES UN MAXIMO:

    Si (Resultado < Minimo)
    {
    LA PUNTUACION SERA 0
    }
    SI NO 
    {
    SI((100+(Resultado-Esperado)*(20/(Esperado-Minimo)))<120)
    {
    (((100 + (Resultado - Esperado) * (20 / (Esperado - Minimo))) * Peso) / 100)
    }
    SI NO
    {
    ((120 * Peso)/100)
    }

    }


    SI EL RESULTADO ES MINIMO:

    SI (Resultado > Minimo)
    {
    la puntuacion sera 0
    }
    SI NO
    {
    SI ((100 + (Esperado - Resultado) * (20 / (Minimo - Esperado))) < 120)
    {
    LA PUNTUACION SERA DE LA FORMULA:
    (((100 + (Esperado - Resultado) * (20 / (Minimo - Esperado))) * Peso) / 100))
    }
    SI NO
    {
    LA PUNTACION SERA:
    ((120 * Peso) / 100)
    }
    }

    namespace Consola
    {
        class Program
        {
            //private decimal resultado, minimo, esperado, peso;
            static void Main(string[] args)
            {
                decimal resultado, minimo, esperado, peso, indicador;
    
                Console.WriteLine("Ingrese Resultado");
                resultado = decimal.Parse(Console.ReadLine());
                Console.WriteLine("Ingrese Minimo");
                minimo = decimal.Parse(Console.ReadLine());
    
                if (resultado < minimo)
                    Console.WriteLine("LA PUNTUACION SERA 0");
                else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
                {
                    indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
                }
                else
                    indicador = ((120 * peso) / 100);
    
                Console.WriteLine("el indicador es :", indicador);
                    
            }
        }
    
    
    
    }


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:13

Respuestas

  • es raro la verdad, vamos a probar con las llaves

    if (resultado < minimo)
    {
       Console.WriteLine("LA PUNTUACION SERA 0");
    }
     else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
          {
            indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
          }
          else
          {
               indicador = ((120 * peso) / 100);
    
         }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    • Marcado como respuesta Pedro Ávila domingo, 20 de octubre de 2013 8:24
    domingo, 20 de octubre de 2013 6:51
    Moderador
  • Hola, pero el ultimo mensaje se debe mostrar siempre? Si únicamente se muestra en las condiciones del elseif y el else entonces

    if (resultado < minimo)
    {
       Console.WriteLine("LA PUNTUACION SERA 0");
    }
     else
     { if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
          {
            indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
          }
          else
          {
               indicador = ((120 * peso) / 100);
    
         }
    
     Console.WriteLine("El indicador es : ", indicador);
    
    }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    • Marcado como respuesta Pedro Ávila domingo, 20 de octubre de 2013 8:24
    domingo, 20 de octubre de 2013 6:58
    Moderador

Todas las respuestas

  • Pq no me reconoce

     Console.WriteLine("el indicador es {0} : ", indicador);

    Indicador uso de variable local no asignada.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:29
  • Hola pedro buenos días, que mensaje de error te da?


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    domingo, 20 de octubre de 2013 6:34
    Moderador
  • Ese mensaje es que no esta inicializado la variable indicador. inicializa a 0 todas las variables en su declaración.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    domingo, 20 de octubre de 2013 6:36
    Moderador
  • Buenos dias Sergio

    Lo hice así

    namespace Consola
    {
        class Program
        {
            static void Main(string[] args)
            {
                decimal resultado, minimo, esperado, indicador;
                int peso;
                indicador = 0;
                peso = 0;
                Console.WriteLine("Ingrese Resultado");
                resultado = decimal.Parse(Console.ReadLine());
                Console.WriteLine("Ingrese Minimo");
                minimo = decimal.Parse(Console.ReadLine());
                Console.WriteLine("Ingrese el esperado");
                esperado = decimal.Parse(Console.ReadLine());
                Console.WriteLine("Ingrese peso");
                peso = int.Parse(Console.ReadLine());
                
    
                if (resultado < minimo)
                    Console.WriteLine("LA PUNTUACION SERA 0");
                else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
                {
                    indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
                }
                else
                    indicador = ((120 * peso) / 100);
    
                Console.WriteLine("El indicador es : ", indicador);
                Console.Read();    
            }
        }
    
    
    
    }

    Me daba el error de Indicador uso de variable local no asignada.


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:36
  • Se pede hacer las 2 formulas en una sola consola


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:37
  • Si es maximo o si es minimo


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:37
  • En tu lógica hay un camino en el cual indicador nunca se le establece un valor por eso te muestra el mensje.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    domingo, 20 de octubre de 2013 6:38
    Moderador
  • Es el verdad el mensaje me sale vacio

    Se me ocurrio ponerlo asi como muestro

     if (resultado < minimo)
                    Console.WriteLine("LA PUNTUACION SERA 0");
                else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
                {
                    indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
                }
                else
                    indicador = ((120 * peso) / 100);
    


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:41
  • los valores que ingreso son 245,000 le puse decimal

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:45
  • Cuandola condicion se cumple 

                if (resultado < minimo) ==> Cuando la condicion se cumple pq nome muestra el mensaje
                    Console.WriteLine("LA PUNTUACION SERA 0"); ==> no me muestra este mensaje???
                   
                else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
                {
                    indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
                }
                else
                    indicador = ((120 * peso) / 100);
    
                Console.WriteLine("El indicador es : ", indicador);
                Console.Read();  


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:47
  • Si debajo de la declaración de las variables haces etso

    decimal resultado, minimo, esperado, indicador;
     int peso;
    
    
    resultado =  minimo = esperado = indicador = 0; 
    peso = 0;

    tambiente muestra el mensaje?

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    domingo, 20 de octubre de 2013 6:47
    Moderador
  • Ok pero no me muestra el mensaje del primer if? se se cumple la condicion pero entra al mensaje no me lo muestra se va al mensaje del final

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:49
  • es raro la verdad, vamos a probar con las llaves

    if (resultado < minimo)
    {
       Console.WriteLine("LA PUNTUACION SERA 0");
    }
     else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
          {
            indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
          }
          else
          {
               indicador = ((120 * peso) / 100);
    
         }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    • Marcado como respuesta Pedro Ávila domingo, 20 de octubre de 2013 8:24
    domingo, 20 de octubre de 2013 6:51
    Moderador
  • Seria asi

     if (resultado < minimo)
                    Console.WriteLine("LA PUNTUACION SERA 0", indicador);
                   
                else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
                {
                    indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
                }
                else
                    indicador = ((120 * peso) / 100);
    
                Console.WriteLine("El indicador es : ", indicador);
                Console.Read(); 

    Pero si entra al primer mensaje y ano debe ir al ultimo mensaje


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:51
  • Pero el mensaje de abajo iria dentro de  las llaves tanto del esleif como del else???

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:53
  • Hola, pero el ultimo mensaje se debe mostrar siempre? Si únicamente se muestra en las condiciones del elseif y el else entonces

    if (resultado < minimo)
    {
       Console.WriteLine("LA PUNTUACION SERA 0");
    }
     else
     { if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
          {
            indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
          }
          else
          {
               indicador = ((120 * peso) / 100);
    
         }
    
     Console.WriteLine("El indicador es : ", indicador);
    
    }


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    • Marcado como respuesta Pedro Ávila domingo, 20 de octubre de 2013 8:24
    domingo, 20 de octubre de 2013 6:58
    Moderador
  • Quedo asi

    class Program
        {
            static void Main(string[] args)
            {
                decimal resultado, minimo, esperado, indicador;
                int peso;
                indicador = 0;
                peso = 0;
                Console.WriteLine("Ingrese Resultado");
                resultado = decimal.Parse(Console.ReadLine());
                Console.WriteLine("Ingrese Minimo");
                minimo = decimal.Parse(Console.ReadLine());
                Console.WriteLine("Ingrese el esperado");
                esperado = decimal.Parse(Console.ReadLine());
                Console.WriteLine("Ingrese peso");
                peso = int.Parse(Console.ReadLine());
    
    
                if (resultado < minimo)
                {
                    Console.WriteLine("LA PUNTUACION SERA 0", indicador);
                    Console.Read();
                }
                else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
                {
                    indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
                    Console.WriteLine("El indicador es : ", indicador);
                    Console.Read();  
                }
                else
                {
                    indicador = ((120 * peso) / 100);
                    Console.WriteLine("El indicador es : ", indicador);
                    Console.Read(); 
                }
                  
            }
        }

    Ahora se puede hacer las dos formulas en una sola consola

    SI EL INDICADOR ES UN MAXIMO:

    SI EL RESULTADO ES MINIMO:


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 6:58
  • Nesecito que en la consola me de 2 opciones para usar la fromula del maximo o la formula del minimo dependiendo que escoja en la consola me toma la formula.

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:04
  • Le pondría un flag

    para qeu entre a la condición que escoja


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:05
  • Como le digo que me escoja tal o cual opcion

    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:07
  • Pq no entra a otra condición cuando no se cumple la primera como hago para que entre al ELSEIF

    if (resultado < minimo)
                {
                    Console.WriteLine("LA PUNTUACION SERA 0", indicador);
                    Console.Read();
                }
                else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120) NO ENTRA A ESTA CONDICION
                {
                    indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
                    Console.WriteLine("El indicador es : ", indicador);
                    Console.Read();  
                }
                else
                {
                    indicador = ((120 * peso) / 100);
                    Console.WriteLine("El indicador es : ", indicador);
                    Console.Read(); 
                }


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:29
  • Cuando entra a esta parte del código no me da el resultado del indicador


     else if (100 + (resultado - esperado) * (20 / (esperado - minimo)) < 120)
                {
                    indicador = ((100 + (resultado - esperado) * (20 / (esperado - minimo)) * peso) / 100);
                    Console.WriteLine("El indicador es : ", indicador);
                    Console.Read();  
                }

    No me da el valor del indicador, pq?


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:34
  • El indicador si me da resultado pero no me lo muestra


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:41
  • En ese ultimo if que comentas, puedes poner un breakpoint y verificar el valor de la variable indicador?

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    domingo, 20 de octubre de 2013 7:42
    Moderador
  • Indicador


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:45
  • Si me trae el valor pero no me lo muestra en el mensaje


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:46
  • Probemos

    Console.WriteLine("El indicador es : ", indicador.ToString());


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    domingo, 20 de octubre de 2013 7:49
    Moderador
  • No me lo muestra en la consola


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:49
  • No muestra el valor


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:53
  • Indicador es decimal

     decimal resultado, minimo, esperado, indicador;


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 7:55
  • Era así

     Console.WriteLine("El indicador es : " + indicador);


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 8:16
  • Sergio 

    Los numneros que ingreso son asi 450,000

    pero en el codigo se ven asi 450000

    como le doy el valor de miles es con N2 pero como lo aplico


    Pedro Ávila
    "El hombre sabio querrá estar siempre con quien sea mejor que él."
    Lima - Perú

    domingo, 20 de octubre de 2013 8:17