using System;
using System.Collections.Generic;
using System.Text;
namespace Matriz
{
public class clsMatriz
{
public float[,] mat = new float[10, 10];
public int limf, limc;
public float deter;
public clsMatriz()
{
for (int i = 0; i < j =" 0;" deter =" 0;">
public void leer()
{
do
{
Console .WriteLine ("De cuantas filas desea la matriz? ingrese un valor max de 10\t");
limf = Convert.ToInt32(Console.ReadLine());
} while (limf <= 0 limf > 10);
do
{
Console.WriteLine("De cuantas columnas desea la matriz? ingrese un valor max de 10\t");
limc = Convert.ToInt32(Console.ReadLine());
} while (limc <= 0 limc > 10);
for (int i = 0; i < limf; i++)
for (int j = 0; j < limc; j++)
{
Console.WriteLine("Ingrese el elemento de la fila"+(i + 1)+"de la columna"+(j + 1) +"\t");
mat[i,j]=Convert .ToInt32(Console.ReadLine());
}
}
public void Escribe()
{
string aux="";
for (int i = 0; i < this.limf; i++)
{
for (int j = 0; j < this.limc; j++)
aux = aux + this.mat[i, j] + "\t";
aux = aux + "\n";
}
Console.Write(aux);
}
public static clsMatriz operator +(clsMatriz m1, clsMatriz m2)
{
clsMatriz m3 = new clsMatriz();
m3.limf = m1.limf;
m3.limc = m2.limc;
for (int i = 0; i < m1.limf; i++)
for (int j = 0; j < m1.limc; j++)
m3.mat[i,j] = m1.mat[i, j] + m2.mat [i, j];
return m3;
}
public static clsMatriz operator -(clsMatriz m1, clsMatriz m2)
{
clsMatriz m3 = new clsMatriz();
m3.limf = m1.limf;
m3.limc = m2.limc;
for (int i = 0; i < m1.limf; i++)
for (int j = 0; j < m1.limc; j++)
m3.mat[i, j] = m1.mat[i, j] - m2.mat[i, j];
return m3;
}
public static clsMatriz operator *(clsMatriz m1, clsMatriz m2)
{
clsMatriz m3 = new clsMatriz();
m3.limf = m1.limf;
m3.limc = m2.limc;
for (int i = 0; i < m3.limf; i++)
{
for (int j = 0; j < m3.limc; j++)
{
m3.mat[i,j] = 0;
for (int l = 0; l < m1.limc; l++)
{
m3.mat[i,j] = m3.mat[i,j] + (m1.mat[i,l] * m2.mat[l,j]);
}
}
}
return m3;
}
public bool ValidaMatCuadrada(clsMatriz m1, clsMatriz m2)
{
bool valida=false;
if (m1.limf == m2.limf && m1.limc == m2.limc)
valida=true;
return valida;
}
public bool ValidaMultiplicacion(clsMatriz m1, clsMatriz m2)
{
bool valida=false;
if (m1.limc == m2.limf)
valida=true;
return valida;
}
public void Deter()
{
deter = this.mat[0, 0] * this.mat[1, 1] - this.mat[0, 1] * this.mat[1, 0];
}
public void Inversa()
{
this.Deter();
if (this.deter != 0)
{
float aux;
aux = this.mat[0, 0] / this.deter;
this.mat[0, 0] = this.mat[1, 1] / this.deter;
this.mat[1, 1] = aux;
this.mat[1, 0] = (this.mat[1, 0] * (-1))/this.deter ;
this.mat[0, 1] = (this.mat[0, 1] * (-1))/ this.deter ;
}
}
public clsMatriz Transpuesta()
{
clsMatriz m3 = new clsMatriz();
m3.limf = this.limf;
m3.limc = this.limc;
for (int i = 0; i < this.limf; i++)
{
for (int j = 0; j < this.limc; j++)
m3.mat [j,i]=this.mat [i,j];
}
return m3;
}
}
}
No hay comentarios:
Publicar un comentario