Título: Suma de filas y columnas de una matriz
Publicado por: Ahinoam en 15 Diciembre 2016, 06:14 am
Hola a todos, me encargaron un problema de Matrices (Como lo dice en el titulo), tengo que sumar las filas y columnas de una Matriz y sus diagonales invertida y principal.
Esta es una imagen del problema que tengo que hacer. (Esto es un ejemplo los valores pueden ser cualquiera no necesariamente esos)(https://k60.kn3.net/4/7/F/5/1/3/FB2.png) Y este es el código que realice. (PD: Estoy trabajando en visual basic y en Windows form)Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim Matriz(4, 4) As Integer Dim SR(4) As Integer Dim SC(4) As Integer Dim DP, DI, F, C As Integer For F = 1 To 4 For C = 1 To 4 Matriz(F, C) = CType(InputBox("Dame el valor: " & "Matriz[" & F & "," & C & "]: "), Integer) SR(F) = SR(F) + Matriz(F, C) If F = C Then DP = DP + Matriz(F, C) End If If F + C = 5 Then DI = DI + Matriz(F, C) End If Next Next For C = 1 To 4 For F = 1 To 4 SC(C) = SC(C) + Matriz(F, C) Next Next End Sub End Class
Y no puedo llegar a obtener el resultado de la suma de cada fila, columna, y las dos diagonales.
En resumen:
"SR" es la suma de cada una de las columnas 1, 2, 3, 4 "SC" es la suma de cada una de las filas 1, 2, 3, 4 "DP" es la suma de los valores que estén en la diagonal principal "DI" es la suma de los valores que estén en la diagonal invertida.
Espero y me puedan ayudar, si tiene alguna duda sobre el problema pregunten.
Título: Re: Suma de filas y columnas de una matriz
Publicado por: okik en 15 Diciembre 2016, 22:22 pm
Dim Matriz(4, 4) As Integer Dim SR(4) As Integer Dim SC(4) As Integer Dim DP, DI, F, C As Integer For F = 1 To 4 For C = 1 To 4 Matriz(F, C) = CType(InputBox("Dame el valor: " & _ "Matriz[" & F & "," & C & "]: "), Integer) '//Suma de filas SC(C) += Matriz(F, C) Next Next Dim Dc As Integer = 4 For C = 1 To 4 For F = 1 To 4 '//Suma de columnas SR(F) += Matriz(F, C) Next '//Suma diagonal principal A11 + A22 + A33+ + A44 DP += Matriz(C, C) '//Suma diagonal invertida A14 + A23 + A32+ + A41 DI += Matriz(C, Dc) Dc -= 1 Next ' Suma de filas MessageBox.Show("Suma de filas: " & String.Join(", ", SC)) ' Suma de columnas MessageBox.Show("Suma de columnas: " & String.Join(", ", SR)) ' Suma de diagonal principal (De izquierda a derecha) MessageBox.Show("Suma de diagonal principal: " & String.Join(", ", DP)) ' Suma de diagonal invertida (de derecha a izquierda) MessageBox.Show("Suma de diagonal invertida: " & String.Join(", ", DI))
Supongo que lo sabes pero por si acaso te lo comento, ten en cuenta que las variables array empiezan por 0, 1, 2... Así que el messagebox muestra 0, 32, 36, 40, 16, o sea, cinco números en SR y SC. Esto es debido a que no se mete ningún valor en SR(0) y SC(0), estos últimos hay que ignorarlos. Pero se podría hacer desde 0 a 3He usado el messagebox simplemente para mostrar los resultados de forma rápida
De esta manera ya no aparecerá el 0 y SR y SC devuelve sólo cuatro valores Dim Matriz(4, 4) As Integer Dim SR(3) As Integer Dim SC(3) As Integer Dim DP, DI, F, C As Integer For F = 1 To 4 For C = 1 To 4 Matriz(F, C) = CType(InputBox("Dame el valor: " & _ "Matriz[" & F & "," & C & "]: "), Integer) '//Suma de filas SC(C - 1) += Matriz(F, C) Next Next Dim Dc As Integer = 4 For C = 1 To 4 For F = 1 To 4 '//Suma de columnas SR(F - 1) += Matriz(F, C) Next '//Suma diagonal principal A11 + A22 + A33+ + A44 DP += Matriz(C, C) '//Suma diagonal invertida A14 + A23 + A32+ + A41 DI += Matriz(C, Dc) Dc -= 1 Next ' Suma de filas MessageBox.Show("Suma de filas: " & String.Join(", ", SC)) ' Suma de columnas MessageBox.Show("Suma de columnas: " & String.Join(", ", SR)) ' Suma de diagonal principal (De izquierda a derecha) MessageBox.Show("Suma de principal: " & String.Join(", ", DP)) ' Suma de diagonal invertida (de derecha a izquierda) MessageBox.Show("Suma de invertida: " & String.Join(", ", DI))
Título: Re: Suma de filas y columnas de una matriz
Publicado por: Ahinoam en 15 Diciembre 2016, 23:59 pm
Muchas gracias, por ayudarme enserio gracias, y respecto a que los array empiezan por 0 lo había visto en ejemplos de java. En fin gracias por ayudarme ;-) ;-) ;-)
|