-La suma de cada columnas y filas
-La suma de todos los elementos contenidos
Con los numericUpDown vamos a seleccionar el numero de columnas y renglones una vez hecho eso vamos a introducir nuestros datos desde el dataGridView
Aqui una imagen de ejemplo como ven en el mismo dataGridView mostramos los resultados:
| Ejemplo |
namespace Matriz
{
public partial class Form1 : Form
{
private int[,] matriz;
private int ren, col;
public Form1()
{
InitializeComponent();
}
private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
dataGridView1.RowCount = Convert.ToInt32(numericUpDown1.Value);
}
private void numericUpDown2_ValueChanged(object sender, EventArgs e)
{
dataGridView1.ColumnCount = Convert.ToInt32(numericUpDown2.Value);
dataGridView1.Columns[(int)numericUpDown2.Value - 1].Width = 115;
}
private void button1_Click(object sender, EventArgs e)
{
ren = dataGridView1.RowCount;
col = dataGridView1.ColumnCount;
matriz = new int[ren, col];
//Leer Datos
for (int i = 0; i < ren; i++)
for (int j = 0; j < col; j++)
matriz[i, j] = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value.ToString());
//Calcular datos
if (ren == col)
{
//Agregamos una fila y columna para mostrar los calculos en el mismo dataGriView
double total = Total();
dataGridView1.Rows.Add();
SumaColumnas();
dataGridView1.Columns.Add("", "");
SumaRenglones();
dataGridView1[dataGridView1.ColumnCount - 1, dataGridView1.RowCount - 1].Value = "Suma total: " + total.ToString();
dataGridView1.Columns[dataGridView1.ColumnCount - 1].Width = 115;
}
else
{
MessageBox.Show("Para calcular los datos debe contener el mismo numero de renglones y columnas");
}
}
public double Total()
{
double suma = 0;
for (int i = 0; i < ren ; i++)
{
for (int j = 0; j < col; j++)
{
suma += matriz[j, i];
}
}
return suma;
}
public void SumaColumnas()
{
double suma = 0;
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
for (int j = 0; j < dataGridView1.ColumnCount ; j++)
{
suma += matriz[j, i];
}
dataGridView1[i, dataGridView1.RowCount -1 ].Value = "Suma Columna " + (i+1) + ": " +suma;
suma = 0;
}
}
public void SumaRenglones()
{
double suma = 0;
for (int i = 0; i < dataGridView1.RowCount - 1; i++)
{
for (int j = 0; j < dataGridView1.Columns.Count - 1 ; j++)
{
suma += matriz[i, j];
}
dataGridView1[dataGridView1.RowCount - 1, i].Value = "Total Fila " + (i + 1) + ": " + suma;
suma = 0;
}
}
private void button2_Click(object sender, EventArgs e)
{
dataGridView1.RowCount = 0;
dataGridView1.ColumnCount = 0;
}
private void button3_Click(object sender, EventArgs e)
{
Random random = new Random();
ren = dataGridView1.RowCount;
col = dataGridView1.ColumnCount;
matriz = new int[ren, col];
for (int i = 0; i < ren; i++)
for (int j = 0; j < col; j++)
{
matriz[i, j] = random.Next(1, 10);
dataGridView1[i, j].Value = matriz[i, j];
}
}
}
}
DEJAR COMENTARIOS!!
SUSCRIBIRSE!!!
