viernes, 25 de noviembre de 2011

Trabajando con arreglos bidimensionales

Este proyecto hace uso de la clase StringBuilder asi como de arreglos bidimensionales para hacer operaciones simples en una matriz, el código es el siguiente

static void Main(string[] args)
{
Creamos los datos con los que vamos a trabajar
int r = Leer("renglones");
int c = Leer("columnas");
int[,] m = new int[r, c];
StringBuilder primos = new StringBuilder();
StringBuilder nones = new StringBuilder();
int p=0;
  int n=0;
Se llena ma matriz de números aleatorios y al mismo tiempo usamos los metodos de la clase matematicas (especificada más adelante) para saber que numeros son primos y cuales de ellos son nones.
Random ran = new Random();
for (int i = 0; i < r; i++)
{
for (int j = 0; j < c; j++)
{
m[i, j] = ran.Next(10, 100);
if (Matematicas.EsPrimo(m[i, j]))
{
primos.Append(m[i, j] + ", ");
p++;
}
if (Matematicas.EsNon(m[i, j]))
{
nones.Append(m[i, j] + ", ");
n++;
}
Console.Write("\t" + m[i, j]);
}
Console.WriteLine("\n\r");
}
Console.WriteLine("Los {0} numeros primos son: {1}\n\rLos {2} numeros nones son: {3}", p, primos.ToString(), n, nones.ToString());
Console.ReadKey();
}
public static int Leer(string leerQue)
{
while (true)
{
Console.WriteLine("Numero de {0}", leerQue);
int a = Int32.Parse(Console.ReadLine());
if (a < 3 || a > 10)
{
Console.WriteLine("Error...");
Console.Clear();
continue;
}
else
return a;
}
}
 

La clase Matematicas utilizada en este proyecto es la siguiente :


 public class Matematicas
{
   
static public bool EsNon(int n)
{
if (Convert.ToBoolean(n % 2))
return true;
return false;
}

    static public bool EsPrimo(int n)
{
int div = 2;
int r1 = n % div;
int r2 = n / div;
while (div < n)
{
if ((n % div) == 0)
return false;
div++;
}
return true;
}
}

Puedes descargar el proyecto completo desde aquí:
http://www.mediafire.com/?nwyrz2o2151jknf

No hay comentarios:

Publicar un comentario