La clase Matriz es la siguiente:
class MatrizEsta propiedad nos devuelve el número de renglones que posee la matriz
{
int[,] _mat;
int _renglones;
int _columnas;
public Matriz()
{
_mat = new int[3, 3];
_renglones = 3;
_columnas = 3;
}
public int RenglonesEsta propiedad nos devuelve el numero de columnas que posee la matriz
{
get { return _renglones; }
}
Este metodo nos devuelve el promedio de la diagonal de la matriz en caso de que sea cuadrada
public int Columnas
{
get { return _columnas; }
}
public Matriz(int renglones, int columnas)
{
_mat = new int[renglones, columnas];
_renglones = renglones;
_columnas = columnas;
}
public int this[int renglon, int columna]
{
get { return _mat[renglon, columna]; }
set { _mat[renglon, columna] = value; }
}
Este método nos devuelve el promedio de la diagonal invertida de la matriz en caso de que sea cuadrada
public int Diagonal()
{
if (_renglones != _columnas)
return 0;
int prom = 0;
for (int i = 0; i < _renglones; i++)
prom += _mat[i, i];
prom /= _columnas;
return prom;
}
Aqui incluyo un pequeño programa que hace uso de esta matriz:
public int DiagonalInvertida()
{
if (_renglones != _columnas)
return 0;
int prom = 0;
int col = _columnas-1;
for (int i = 0; i < _renglones; i++)
prom += _mat[i, col--];
prom /= _columnas;
return prom;
}
}
class Program
{
static void Main(string[] args)
{
int r = Leer("renglones");
int c = Leer("Columnas");
Matriz m = new Matriz(r, c);
LlenarMatriz(m);
MostrarMatriz(m);
Promedios(m);
Console.ReadKey();
}
public static void Promedios(Matriz m)
{
int d = m.Diagonal();
int i = m.DiagonalInvertida();
if (d != 0)
Console.WriteLine("El promedio de la diagonal es: " + d.ToString());
else
Console.WriteLine("No se puede obtener el promedio de diagonal");
if (i != 0)
Console.WriteLine("El promedio de la diagonal invertida es: " + i.ToString());
else
Console.WriteLine("No se puede obtener el promedio de diagonal invertida");
}
public static void MostrarMatriz(Matriz m)
{
string linea = "";
for (int i = 0; i < m.Renglones; i++)
{
for (int j = 0; j < m.Columnas; j++)
{
linea += m[i, j].ToString() + "\t";
}
Console.WriteLine(linea);
linea = "";
}
}
public static void LlenarMatriz(Matriz m)
{
Random r = new Random();
for (int i = 0; i < m.Renglones; i++)
for (int j = 0; j < m.Columnas; j++)
m[i, j] = r.Next(10, 99);
}
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;
}
}
}Si deseas revisar con más detenimiento el proyecto puedes descargarlo completo en el siguiente enlace:
http://www.mediafire.com/?i9djv9pecoxwvie
No hay comentarios:
Publicar un comentario