sábado, 20 de marzo de 2010

Un problema puede tener varias soluciones.

Cuando te sientas a programar sueles pensar ¿Cómo resuelvo el problema?. En ocasiones podemos tener problemas tan sencillos como calcular la suma de los números pares del 0 hasta el 20 o un problema tan complejo que implique la sumatoria de N números.

Pero en realidad piensas ¿Qué secuencia de código o instrucción utilizar para ahorrar líneas de código y memoria?

Si nunca lo has hecho, deberías de reconsiderarlo, a veces la solución más sencilla solo lleva dos líneas.

 

“Calcular la sumatoria de todos los números pares del 0 hasta el 20”;

Código 1:

int x = 0;
           for (int i = 0; i <= 20; i+=2)
           {
               x += i;                      
           }
           Console.WriteLine(x);

Apenas 6 líneas de código, cabe de señalar que puedes quitar las { } del for, obteniendo así hasta 4 líneas de código.

Código 2:

int x = 0;
         for (int i = 0; i <= 20; ++i )
         {
             if (i % 2 == 0)
             {
                 x += i;
             }
         }
         Console.WriteLine(x);
         Console.ReadKey();

El mismo problema con otra solución alternativa, ¿Se puede programar de otra  manera?. La respuesta es sí, si se puede programar de otra manera utilizando las técnicas de recursión o por medio de un while

jueves, 11 de marzo de 2010

Calculadora Binomial

Un simple script en Mathematica que calcula la "Distribución Binomial", básica la sumatoria aún no esta terminada. 



Panel[DynamicModule[{r = (n1!/(x1! (n1 - x1)!)*(p1^x1) (q1^(n1 - x1))),
   n1 = 1, x1 = 1, p1 = 1, q1 = 1},
  Panel[Grid[{{Style["Distribución Binomial", Bold],
      SpanFromLeft}, {Grid[{{"Escribe N:",
         InputField[Dynamic[n1], FieldSize -> 4], "Escribe X",
         InputField[Dynamic[x1], FieldSize -> 4]}, {"Valor de P:",
         InputField[Dynamic[p1], FieldSize -> 4], "Valor de Q:",
         InputField[Dynamic[q1], FieldSize -> 4]}, {"Resultado:",
         InputField[Dynamic[r], FieldSize -> 6]}}]}}]]]]