Software y Aplicaciones Web

Blog de desarrollo de software y aplicaciones web

Comentarios Recientes

Comment RSS

MSDN Home Page (Argentina)


C# Corner


AspAlliance.com

Declaración

Las opiniones en este blog se proporcionan "TAL CUAL", sin garantías,  no confieren derechos y no reflejan, necesariamente, la opinión de quienes me contratan.
Algunas cuestiones que se comentan en el blog no son reales, cualquier similitud con alguna persona viva o muerta no es más que una coincidencia, tampoco significa que necesite terapia, soy asi.

© Copyright 2007-2010

Propaganda

Este sitio implementa publicidad basada en intereses
Jul
31.
2009

  Número Perfecto

En este post se muestra el código para determinar si un número es o no perfecto.

Otra vez se trata de un ejercicio del cursos Programador .NET en Becas Control+F

   1:      /// <summary>
   2:      /// Un número entero se dice que se trata de un número perfecto si sus factores, 
   3:      /// incluyendo a 1 (pero excluyendo en el número mismo), suman igual que el número. 
   4:      /// Por ejemplo, 6 es un número perfecto porque 6 = 1+2+3. 
   5:      /// Escriba una función perfect que determine si el parámetro number es un número 
   6:      /// perfecto. Utilice esta función en un programa que determine e imprima todos los 
   7:      /// números perfectos entre 1 y 1000. 
   8:      /// Imprima los factores de cada número perfecto para confirmar que el numero de verdad 
   9:      /// es perfecto.Ponga en acción la potencia de su computadora para probar números más 
  10:      /// grandes que 1000
  11:      /// </summary>
  12:      private static void Ejercicio3()
  13:      {
  14:        Console.Clear();
  15:        Console.WriteLine("Laboratorio 4 - Ejercicio 3");
  16:   
  17:        for (int i = 1; i <= 10000; ++i)
  18:        {
  19:          if (Perfect(i))
  20:            MostrarDivisores(i);
  21:        }
  22:        Console.ReadKey();
  23:      }
  24:      /// <summary>
  25:      /// Determina si un número es perfecto, un numero es perfecto
  26:      /// si el número es igual a la suma de sus divisores excluyendo
  27:      /// el mismo número. Ejemplo 6 = 1 + 2 + 3
  28:      /// </summary>
  29:      /// <param name="number">Número a controlar</param>
  30:      /// <returns>Verdadero si el número es perfecto</returns>
  31:      private static bool Perfect(int number)
  32:      {
  33:        if (number < 1)
  34:          return false;
  35:        int sum = 0;
  36:        for (int i = 1; i <= (number / 2); ++i)
  37:        {
  38:          if ((number % i) == 0)
  39:            sum += i;
  40:        }
  41:        return number == sum;
  42:      }
  43:   
  44:      /// <summary>
  45:      /// Muestra los divisores de un número y determina si el número
  46:      /// es perfecto.
  47:      /// </summary>
  48:      /// <param name="number">Número a controlar</param>
  49:      private static void MostrarDivisores(int number)
  50:      {
  51:        if (number < 1)
  52:          return;
  53:        int sum = 0;
  54:        Console.Write("Divisores de {0,8} :", number);
  55:        for (int i = 1; i <= (number / 2); ++i)
  56:        {
  57:          if ((number % i) == 0)
  58:          {
  59:            Console.Write(" {0} ", i);
  60:            sum += i;
  61:          }
  62:        }
  63:        if (number == sum)
  64:          Console.WriteLine("Es perfecto");
  65:        else
  66:          Console.WriteLine("NO ES perfecto");
  67:      }

A ver si alguien tiene otra idea de cómo hacer esto.

 




Categorías: ASP.NET | Programacion



Jul
31.
2009

  Jugar a los Dados - Craps

Este post muestra el código para jugar a los dados.

Se trata de un ejercicio del cursos Programador .NET en Becas Control+F

   1:      /// <summary>
   2:      /// Un jugador tira dos dados. Cada dado tiene seis caras. Las caras contienen 
   3:      /// 1, 2, 3,4,5 y 6 puntos. Una vez que los dados se hayan detenido, se calcula 
   4:      /// la suma de los puntos de los puntos en las dos caras superiores. Si a la 
   5:      /// primera tirada, la suma es 7, o bien 11, el jugador gana. Si en la primera 
   6:      /// tirada la suma es 2, 3, o 12 (conocido como “craps”), el jugador pierde 
   7:      /// (es decir, la casa “gana”). Si en la primera tirada la suma es 4, 5, 6, 8, 
   8:      /// 9, ó 10, entonces dicha suma se convierte en el “punto” o en la tirada. 
   9:      /// Para ganar, el jugador deberá continuar tirando los dados hasta que haga 
  10:      /// su “tirada”. El jugador perderá si antes de hacer su tirada sale una tirada de 7
  11:      /// </summary>
  12:      private static void Ejercicio1()
  13:      {
  14:        Console.Clear();
  15:        Console.WriteLine("Laboratorio 4 - Ejercicio 1");
  16:   
  17:        int dado1, dado2, suma, punto;
  18:   
  19:        dado1 = TirarDado();
  20:        dado2 = TirarDado();
  21:        suma = dado1 + dado2;
  22:        Console.Write("\n\nSalida {0} + {1} = ", dado1, dado2);
  23:   
  24:        if ((suma == 7) || (suma == 11))
  25:          Console.WriteLine("{0} Natural - Gana !!!", suma);
  26:        else
  27:          if ((suma == 2) || (suma == 3) || (suma == 12))
  28:            Console.WriteLine("{0} Craps - PIERDE", suma);
  29:          else
  30:          {
  31:            punto = suma;
  32:            Console.WriteLine("{0}\n\nEl punto es {0}", punto);
  33:            do
  34:            {
  35:              dado1 = TirarDado();
  36:              dado2 = TirarDado();
  37:              suma = dado1 + dado2;
  38:              Console.Write("  Tirada {0} + {1} = {2} ", dado1, dado2, suma);
  39:              if (suma == punto)
  40:                Console.WriteLine(" GANA");
  41:              else
  42:                if ((suma == 7) || (suma == 11))
  43:                  Console.WriteLine(" PIERDE");
  44:                else
  45:                  Console.WriteLine(" continua");
  46:            } while (!((suma == punto) || (suma == 7) || (suma == 11)));
  47:          }
  48:      }
  49:   
  50:      /// <summary>
  51:      /// Este objeto se utiliza para generar números pseudoaleatorios
  52:      /// </summary>
  53:      private static Random generador = new Random();
  54:   
  55:      /// <summary>
  56:      /// Simula el hecho de tirar un dado, los posibles valores van del 1 al 6
  57:      /// se utiliza un objeto que genera números pseudoaleatorios
  58:      /// </summary>
  59:      /// <returns>Valor simulado 1,2,3,4,5,6</returns>
  60:      private static int TirarDado()
  61:      {
  62:        return generador.Next(1, 7);
  63:      }

A ver si alguien tiene otra idea de cómo hacer esto.

 




Categorías: ASP.NET | Programacion



Jul
27.
2009

  Abstracción Estructuras y Tipos de Datos


Introducción

Con esta publicación pretendo introducir a los estudiantes de carreras informáticas en los conceptos teóricos y prácticos de las Estructuras de Datos con especial interés en la Programación Orientada a Objetos.

Uno de los aspectos fundamentales para el estudio de cualquier sistema, en particular los sistemas de información, es la comprensión de su estructura; para caracterizar una estructura es indispensable un proceso de abstracción.

Abstracción (en filosofía) es una operación mental destinada a aislar conceptualmente una propiedad concreta de un objeto, y reflexionar sobre esta ignorando (mentalmente) las otras propiedades del objeto en cuestión.

Estructura es la disposición y orden de las partes dentro de un todo, también puede entenderse como un sistema de conceptos coherentes y enlazados, cuyo objetivo es precisar la esencia del objeto de estudio.

More...