elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Suma de filas y columnas de una matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Suma de filas y columnas de una matriz  (Leído 4,504 veces)
Ahinoam

Desconectado Desconectado

Mensajes: 25


Fue divertido y estresante hacer el código


Ver Perfil
Suma de filas y columnas de una matriz
« en: 15 Diciembre 2016, 06:14 »

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)



Y este es el código que realice. (PD: Estoy trabajando en visual basic y en Windows form)

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  4.        Dim Matriz(4, 4) As Integer
  5.        Dim SR(4) As Integer
  6.        Dim SC(4) As Integer
  7.        Dim DP, DI, F, C As Integer
  8.  
  9.        For F = 1 To 4
  10.            For C = 1 To 4
  11.                Matriz(F, C) = CType(InputBox("Dame el valor: " & "Matriz[" & F & "," & C & "]: "), Integer)
  12.                SR(F) = SR(F) + Matriz(F, C)
  13.  
  14.                If F = C Then
  15.                    DP = DP + Matriz(F, C)
  16.  
  17.                End If
  18.                If F + C = 5 Then
  19.                    DI = DI + Matriz(F, C)
  20.  
  21.                End If
  22.            Next
  23.        Next
  24.  
  25.        For C = 1 To 4
  26.            For F = 1 To 4
  27.                SC(C) = SC(C) + Matriz(F, C)
  28.  
  29.            Next
  30.        Next
  31.    End Sub
  32. 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.


En línea

okik


Desconectado Desconectado

Mensajes: 462


Ver Perfil
Re: Suma de filas y columnas de una matriz
« Respuesta #1 en: 15 Diciembre 2016, 22:22 »

Código
  1.     Dim Matriz(4, 4) As Integer
  2.        Dim SR(4) As Integer
  3.        Dim SC(4) As Integer
  4.        Dim DP, DI, F, C As Integer
  5.  
  6.        For F = 1 To 4
  7.            For C = 1 To 4
  8.                Matriz(F, C) = CType(InputBox("Dame el valor: " & _
  9.                                              "Matriz[" & F & "," & C & "]: "), Integer)
  10.                '//Suma de filas
  11.                SC(C) += Matriz(F, C)
  12.            Next
  13.        Next
  14.  
  15.        Dim Dc As Integer = 4
  16.        For C = 1 To 4
  17.            For F = 1 To 4
  18.                '//Suma de columnas
  19.                SR(F) += Matriz(F, C)
  20.            Next
  21.  
  22.            '//Suma diagonal principal A11 + A22 + A33+ + A44
  23.            DP += Matriz(C, C)
  24.  
  25.            '//Suma diagonal invertida  A14 + A23 + A32+ + A41
  26.            DI += Matriz(C, Dc)
  27.            Dc -= 1
  28.        Next
  29.  
  30.  
  31.  
  32.        ' Suma de filas
  33.        MessageBox.Show("Suma de filas:  " & String.Join(", ", SC))
  34.  
  35.        ' Suma de columnas
  36.        MessageBox.Show("Suma de columnas:  " & String.Join(", ", SR))
  37.  
  38.        ' Suma de diagonal principal  (De izquierda a derecha)
  39.        MessageBox.Show("Suma de diagonal principal:  " & String.Join(", ", DP))
  40.  
  41.        ' Suma de diagonal invertida (de derecha a izquierda)
  42.        MessageBox.Show("Suma de diagonal invertida:  " & String.Join(", ", DI))
  43.  
  44.  
  45.  
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 3

He 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


Código
  1.  
  2.    Dim Matriz(4, 4) As Integer
  3.        Dim SR(3) As Integer
  4.        Dim SC(3) As Integer
  5.        Dim DP, DI, F, C As Integer
  6.  
  7.        For F = 1 To 4
  8.            For C = 1 To 4
  9.                Matriz(F, C) = CType(InputBox("Dame el valor: " & _
  10.                                              "Matriz[" & F & "," & C & "]: "), Integer)
  11.                '//Suma de filas
  12.  
  13.                SC(C - 1) += Matriz(F, C)
  14.            Next
  15.        Next
  16.  
  17.        Dim Dc As Integer = 4
  18.        For C = 1 To 4
  19.            For F = 1 To 4
  20.                '//Suma de columnas
  21.                SR(F - 1) += Matriz(F, C)
  22.            Next
  23.  
  24.            '//Suma diagonal principal A11 + A22 + A33+ + A44
  25.            DP += Matriz(C, C)
  26.  
  27.            '//Suma diagonal invertida  A14 + A23 + A32+ + A41
  28.            DI += Matriz(C, Dc)
  29.            Dc -= 1
  30.        Next
  31.  
  32.  
  33.  
  34.        ' Suma de filas
  35.        MessageBox.Show("Suma de filas:  " & String.Join(", ", SC))
  36.  
  37.        ' Suma de columnas
  38.        MessageBox.Show("Suma de columnas:  " & String.Join(", ", SR))
  39.  
  40.        ' Suma de diagonal principal  (De izquierda a derecha)
  41.        MessageBox.Show("Suma de principal: " & String.Join(", ", DP))
  42.  
  43.        ' Suma de diagonal invertida (de derecha a izquierda)
  44.        MessageBox.Show("Suma de invertida:   " & String.Join(", ", DI))
  45.  
  46.  
  47.  


« Última modificación: 16 Diciembre 2016, 12:09 por okik » En línea

Ahinoam

Desconectado Desconectado

Mensajes: 25


Fue divertido y estresante hacer el código


Ver Perfil
Re: Suma de filas y columnas de una matriz
« Respuesta #2 en: 15 Diciembre 2016, 23:59 »

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
 ;-)  ;-)  ;-)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines