Entradas populares

domingo, 1 de abril de 2012

Como saber si un número es primo

En matemáticas, un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: él mismo y el 1. Fuente


Código en C#




        static void Main(string[] args)
        {
            int x = 1245;
            Boolean EsPrimo = true;


            for (int i = 2; i < x; i++)
            {
                double Modulo = x % i;
                if (Modulo==0){
                    EsPrimo = false;
                    break;
                }
            }


            Console.WriteLine("Es un número primo " + x.ToString() + " " + EsPrimo.ToString());
            Console.ReadLine();
        }





Código en Visual Basic


   Sub Main()
        Dim x As Integer = 1245
        Dim EsPrimo As Boolean = True


        For i As Integer = 2 To x - 1
            Dim Modulo = x Mod i


            If Modulo = 0 Then
                EsPrimo = False
                Exit For
            End If
        Next


        Console.WriteLine("Es un número primo " + x.ToString() + " " + EsPrimo.ToString())
        Console.ReadLine()
    End Sub




Métodos de Ordenamiento (Burbuja)

Pasos para realizar un ordenamiento por el método de la burbuja:


Tenemos un arreglo Vn

Para ordenar correctamente V2 y V3, Verificamos si V2 > V3 entonces: Copiamos V2 a una variable auxiliar.

Copiamos V3 a V2.

Copiamos la variable auxiliar a V3.

V2 y V3 ahora están  ordenados


El algoritmo completo de la burbuja lo puedes consultar en :


Ejemplo en C#


 static void Main(string[] args)
        {
            // Arreglo de ejemplo con 10 valores
            int[] Valores = new int[10] { 10, 5, 35, 11, 3, 9, 15, 2, 12, 1 };
            int Auxiliar = 0;

            // Se hace un recorrido desde el segundo elemento hasta el ultimo
            for (int i = 1; i < Valores.Length; i++)
            {
                for (int j = 0; j < Valores.Length - i; j++)
                {
                    

                    if (Valores[j] > Valores[j + 1])
                    {
                        Auxiliar = Valores[j];
                        Valores[j] = Valores[j + 1];
                        Valores[j + 1] = Auxiliar;
                    }
                }
            }

            for (int i = 0; i < Valores.Length; i++)
            {
                Console.WriteLine(Valores[i]);
            }
            Console.ReadLine();

        }

Ejemplo en Visual Basic



    Sub Main()
        ' Arreglo de ejemplo con 10 valores
        Dim Valores() As Integer = New Integer(9) {10, 5, 35, 11, 3, 9, 15, 2, 12, 1}
        Dim Auxiliar As Integer = 0
        Dim Longitud As Integer = Valores.Length - 1

        ' Se hace un recorrido desde el segundo elemento hasta el ultimo
        For i As Integer = 1 To Longitud
            For j As Integer = 0 To Longitud - i
                If Valores(j) > Valores(j + 1) Then
                    Auxiliar = Valores(j)
                    Valores(j) = Valores(j + 1)
                    Valores(j + 1) = Auxiliar
                End If
            Next
        Next

        For i As Integer = 0 To Longitud
            Console.WriteLine(Valores(i))
        Next

        Console.ReadLine()

    End Sub






sábado, 24 de marzo de 2012

Curso Básico de C# Capitulo 1

Primer capitulo del curso básico de programación en C#. 





Tipos de Datos en C#



C# Tipo.Net Framework (System) typeSigned?Bytes en RamRango
sbyteSystem.SbyteYes1-128 a 127
shortSystem.Int16Yes2-32768 a 32767
intSystem.Int32Yes4-2147483648 a 2147483647
longSystem.Int64Yes8-9223372036854775808 a 9223372036854775807
byteSystem.ByteNo10 a 255
ushortSystem.Uint16No20 a 65535
uintSystem.UInt32No40 a 4294967295
ulongSystem.Uint64No80 a 18446744073709551615
floatSystem.SingleYes4Aprox. ±1.5 x 10-45 a ±3.4 x 1038 con 7 decimales
doubleSystem.DoubleYes8Aprox. ±5.0 x 10-324 a ±1.7 x 10308 con 15 o 16 decimales
decimalSystem.DecimalYes12Aprox. ±1.0 x 10-28 a ±7.9 x 1028 con 28 o 29 decimales
charSystem.CharN/A2Cualquier caracter Unicode
boolSystem.BooleanN/A1 / 2true o false

Referencia

lunes, 15 de diciembre de 2008

Generación de Combinaciones

Generación de Combinaciones
[Generación de combinaciones en .NET]


Introducción
El uso de combinaciones es un tema muy utilizado en la probabilidad y en los juegos de azar como la lotería, sin embargo la generación de estas combinaciones puede ser un tema difícil de entender y aplicar.


Combinaciones

Las combinaciones son un arreglo de objetos sin importar el orden, es decir, si un arreglo ya salio no puede volver a salir en cualquier otro orden. Las combinaciones se definen de un conjunto de N elementos tomados de r en r. Aquí la formula general.


C(N,r) = N! / (N-r)! r!


Este teorema también puede establecerse como sigue:

El número de subconjuntos diferentes de r elementos cada uno, que puede formarse a partir de un conjunto de N elementos.



Ejemplo:

Tenemos 9 envases decorados diferentes y solo 6 posiciones para acomodarlos, los envases deberán ser tomados de 6 en 6. Cuantos paquetes de 6 diferentes envases podremos formar.


El código:

Aquí una función recursiva que genera todas las posibles combinaciones.

Código en C#:

///
/// Funcion recursiva que genera combinaciones de números de N en r
///

/// Inicialmente se debe de pasar 1 y este automaticamente se va incrementando"
/// Es el numero de elementos del Universo"
/// Es el numero de elementos del grupo"
/// Se utiliza para ir calculando en que numero de elemento vamos"
/// Arreglo que contiene la colección de elementos de la combinación"
/// Variable de texto donde se van mostrando las posibles combinaciones"
void Ciclo(int t, int N, int r, int x, ref int[] Elem, ref string strTex)
{

// Se repite hasta que t sea mayor que el número de formas posibles
while (t <= (N - (r - x))) { // Se generaran r ciclos recursivos if (r > x)
{
Elem[x-1] = t;
Ciclo((t + 1), N, r, (x + 1), ref Elem, ref strTex);
}
else
{
Elem[x-1] = t;

// Concatenamos la combinación
for (int i = 0; i < x; i++)
{
strTex += Elem[i].ToString("[#,##0]");
}
strTex += "\r\n";
}
t++;
}
}


Forma en que se manda a llamar la función.
Código en C#:

// Declaramos variables
int N = 9; // Nueve envases
int r = 6; // Seis espacios
int[] Elem = new int[r]; // Vector de la Combinación
string strTex = "";

// Iniciamos llamada recursiva a la función.
Ciclo(1, N, r, 1, ref Elem, ref strTex);

// Mostrar resultado en una caja de texto
txtCombina.Text = strTex;