Está en la página 1de 9

1.

using System;
2. using System.Collections.Generic;
3. using System.ComponentModel;
4. using System.Data;
5. using System.Drawing;
6. using System.Linq;
7. using System.Text;
8. using System.Windows.Forms;
9.
10. namespace AppMatrices
11. {
12.

public partial class frmSumaMatriz : Form

13.

14.

#region ATRIBUTOS

15.

//------Matriz 1

16.

int Columna= 0;

17.

int Fila = 0;

18.

double[,] M1 = new double[100,100];

19.

//----Matriz 2

20.

double[,] M2 = new double[100,100];

21.

//-matriz S

22.

double[,] MS = new double[100,100];

23.

#endregion ATRIBUTOS

24.
25.

#region CONSTRUCTORES

26.

public frmSumaMatriz()

27.

28.

InitializeComponent();

29.

30.

#endregion CONSTRUCTORES

31.
32.

#region METODOS

33.

public string ValorCelda(int Columna, int Fila,


DataGridView dgvMatriz)

34.

35.

object celda = dgvMatriz[Columna,Fila].Value;

36.

return celda == null ? "" : celda.ToString();

37.

38.
39.
40.

//--------------------------------------------------------

41.

public void ActivarMatriz2()

42.

--

43.

Columna = 0;

44.

Fila = 0;

45.

if (int.TryParse(txtColumna.Text, out Columna))

46.

47.

if (int.TryParse(txtFila.Text, out Fila))

48.

49.

coeficientes

//-hacer visible los componentes de los

50.

label3.Visible = true;

51.

dgvMatriz2.Visible = true;

52.

//----dimensionar polinomios

53.

dgvMatriz2.ColumnCount = Columna;

54.

dgvMatriz2.RowCount = Fila;

55.

for (int k = Fila - 1; k >= 0; k--)

56.

57.

for (int i = Columna - 1; i >= 0; i--)

58.

59.

//---poner rotulo

60.

//dgvPolinomio1.Columns[Grado1 k].HeaderText = "x^" + k.ToString();

61.

//-----ajustar el ancho de cada


columna

62.

dgvMatriz2.Columns[i].Width = 30;

63.

dgvMatriz2.Rows[k].Height = 30;

64.

//---poner valor por defecto

65.

dgvMatriz2[i, k].Value = 1;

66.

67.

68.

69.
70.

}
}

71.

//================================================================

72.

public static void InicializarMatriz(int Columna,int Fila,


ref double[,] Matriz)

73.

74.

//-poner en cero los coeficientes del polinomio

75.

for (int k = 0; k < Fila; k++)

76.

for (int i = 0; i < Columna; i++)

77.

Matriz[k,i] = 0;

78.

79.

//===========================================================

80.

public void ActivarMatriz1()

81.

82.

Columna = 0;

83.

Fila = 0;

84.

if (int.TryParse(txtColumna.Text, out Columna))

85.

86.

if (int.TryParse(txtFila.Text, out Fila))

87.

88.

//-hacer visible los componentes de los

89.

label3.Visible = true;

90.

dgvMatriz1.Visible = true;

91.

//----dimensionar polinomios

92.

dgvMatriz1.ColumnCount = Columna;

93.

dgvMatriz1.RowCount = Fila;

94.

for (int k = Fila-1

95.

coeficientes

; k >= 0; k--)

96.

for (int i = Columna-1; i >= 0; i--)

97.

98.

//---poner rotulo

99.

//dgvPolinomio1.Columns[Grado1 k].HeaderText = "x^" + k.ToString();

100.
columna

//-----ajustar el ancho de cada

101.

dgvMatriz1.Columns[i].Width = 30;

102.

dgvMatriz1.Rows[k].Height = 30;

103.

//---poner valor por defecto

104.

dgvMatriz1[i, k].Value = 1;

105.

106.

107.

108.
109.

}
}

110.
//===========================================================
111.
public static void AgregarMatriz(int Columna,int Fila,
double[,] Matriz1, ref double[,] MatrizS)
112.

113.
//-Agregar los coeficientes del polinomio 1 al
polinomio suma
114.
// el grado del polinomio 1 debe ser menor o igual al
grado del polinomio suma
115.

for (int k = 0; k < Fila; k++)

116.

for(int j=0;j < Columna;j++)

117.
118.

MatrizS[k,j] += Matriz1[j,k];
}

119.
120.
public void SumarMatriz(int Columna,int Fila, double[,]
M1,double[,] M2)//, out double[,]MS)
121.

//--Inicializar polinomio suma

122.
123.

//MS = new double [Fila,Columna];

124.

InicializarMatriz(Columna,Fila, ref MS);

125.

//-- agregar el primer polinomio

126.

AgregarMatriz(Columna,Fila, M1, ref MS);

127.

//-- agregar el SEGUNDO

128.

AgregarMatriz(Columna,Fila, M2, ref MS);

129.

polinomio

al polinomio suma

al polinomio suma

130.
131.

public void ProcesarSumar()

132.

133.

//----Hacer visible el polinomio suma

134.
135.
136.

groupBox2.Visible = true;
//----recuperar coeficiente del priemer polinomio

137.

int col = Columna- 1;

138.

int fil = Fila - 1;

139.

for (int i = fil; i >= 0; i--)

140.

141.

for (int j = col;j>=0; j--)

142.

143.

double coef = 0;

144.
if (double.TryParse(ValorCelda(j,i,
dgvMatriz1), out coef))
145.
146.

M1[j,i] = coef;
}

147.

148.

//recuperar coeficiente del segundo polinomio

149.

for (int i =fil; i >= 0; i--)

150.

151.

for (int j = col; j >= 0; j--)

152.

153.

double coef = 0;

154.
if (double.TryParse(ValorCelda(j,i,
dgvMatriz2), out coef))
155.

M2[j, i] = coef;

156.

157.

158.

//--sumar polinomio

159.

SumarMatriz(Columna,Fila, M1,M2);

160.

//---mostrar resultado

161.
162.

dgvResultado.ColumnCount = Columna;

163.

dgvResultado.RowCount=Fila;

164.

for (int k = Fila - 1; k >= 0; k--)

165.

166.

for (int i = Columna - 1; i >= 0; i--)

167.

168.

//---poner rotulo

169.
//dgvPolinomio1.Columns[Grado1 - k].HeaderText
= "x^" + k.ToString();
170.

//-----ajustar el ancho de cada columna

171.

dgvResultado.Columns[i].Width = 30;

172.

dgvResultado.Rows[k].Height = 30;

173.

//---poner valor por defecto

174.

MS[k, i].ToString();

175.

dgvResultado[i, k].Value = MS[k,i].ToString();

176.

177.

178.

179.

#endregion METODOS

180.
181.

private void btnSalir_Click(object sender, EventArgs e)

182.

183.

Close();

184.

185.
186.
187.

private void btnSumar_Click(object sender, EventArgs e)

188.

189.

ProcesarSumar();

190.

191.
192.

private void txtFila_Leave(object sender, EventArgs e)

193.

194.

ActivarMatriz1();

195.

ActivarMatriz2();

196.
197.

}
}

198. }