hacker


Ingresar con nombre de usuario, contraseña y duración de la sesión
| Portal Hacker | Editorial | Descargas | Ezine |
Inicio Ayuda Ingresar Registrarse
07 de Octubre de 2008, 09:54:59
Noticias: Nomina a tus preferidos para los pOrtal Hacker Awards 2008
Para ver este enlace Registrate o Inicia Sesion
aqui

+  Foros pOrtal Hacker
|-+  Programacion
| |-+  Visual Studio.Net (Moderador: Mace Windu)
| | |-+  [VB] Diagonal principal y secundaria de una matriz
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: [VB] Diagonal principal y secundaria de una matriz  (Leído 354 veces)
alex19910218
NZ1
*
Desconectado Desconectado

Mensajes: 70


Å|EX †††


Ver Perfil
« : 16 de Agosto de 2008, 12:04:19 »

Hola
Necesito hallar la diagonal principal y la secundaria de una matriz.

¿Como lo hago?.

Gracias por las respuestas que me puedan brindar

Edit:

Ya halle la diagona principal con esto
Código:
For f = 0 To 2
   For c = 0 To 2
         If (f = c) Then
             Me.ListBox5.Items.Add(nombre(f, c))
         End If
    Next
Next

Me falta la diagonal secundaria

ayuda porfavor.
« Última modificación: 20 de Agosto de 2008, 01:19:33 por Mace Windu » En línea

"La revolución se lleva en el corazón, no en la boca para vivir de ella"

Ernesto CHE Guevara
Rakzo-Fimbres
NZ2
**
Desconectado Desconectado

Mensajes: 487


Caminando por las calles de la internet...


Ver Perfil
« Respuesta #1 : 16 de Agosto de 2008, 03:07:59 »

Es lo que iba a postear (sólo que en modo consola) para obtener la primaria de una matriz cuadrada xD
Pero si lo que quieres es que no sea cuadrática, solamente modificas los valores n y declaras otra variable para las columnas
Código:
Module Module1

    Sub Main()

        Dim n As Integer

        Console.WriteLine("Ingrese el tamaño de la matriz:")
        n = Int32.Parse(Console.ReadLine())

        Dim matriz(,) As Integer = New Integer(n, n) {}

        'diagonal principal
        For i As Integer = 1 To n

            For j As Integer = 1 To n

                If (i = j) Then

                    'imprimes la diagonal principal
                    Console.WriteLine("{0},{1}", i, j)
                    Console.ReadKey()

                End If
            Next
        Next

    End Sub

End Module

Para serte sincero no sabía qué era una diagonal principal, pero investigando es cuando el número es igual a otro par.. pero bueno, éste ya veo que lo resolviste ..
Podrías darme más detalles acerca de como obtener la secundaria alex?

EDIT: Corrígeme si lo que he buscado en google es incorrecto de cómo obtener la secundaria
Citar
imaginemos una matriz de 3x3

1 2 3
4 5 6
7 8 9

estas las posiciones
M1-1 M1-2 M1-3
M2-1 M2-2 M2-3
M3-1 M3-2 M3-3

la diagonal secundaria =3-5-7 (M1-3, M2-2, M3-1)

la secundaria, si te fijas (1-3, 2-2, 3-1) la suma de los indices es mayor por uno que el tamano de la matriz que en nuestro caso es de 3 y la suma de los indices en todos los casos es 4.

Edit2:

Al fin lo pude a adaptar al código (diagonal secundaria).

El código completo es..
Código:
Module Module1

    Sub Main()

        Dim n As Integer

        Console.WriteLine("Ingrese el tamaño de la matriz:")
        n = Int32.Parse(Console.ReadLine())

        Dim matriz(,) As Integer = New Integer(n, n) {}

        'diagonal principal
        Console.WriteLine()
        Console.WriteLine("La diagonal primaria es:")
        For i As Integer = 1 To n

            For j As Integer = 1 To n

                If (i = j) Then

                    'imprimes la diagonal principal
                    Console.WriteLine("{0},{1}", i, j)

                End If
            Next
        Next
        Console.ReadKey(True)

        'diagonal secundaria
        Console.WriteLine()
        Console.WriteLine("La diagonal secundaria es:")
        For i As Integer = 1 To n

            For j As Integer = 1 To n

                If (i + j = n + 1) Then

                    'imprimes la diagonal secundaria
                    Console.WriteLine("{0},{1}", i, j)

                End If
            Next
        Next
        Console.ReadKey(True)

    End Sub
End Module
« Última modificación: 20 de Agosto de 2008, 01:20:28 por Mace Windu » En línea


Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
¿Quieres iniciarte en Photoshop CS?


Para ver este enlace Registrate o Inicia Sesion
¿Deseas abrir tu aplicacion .NET sin .NET Framework instalado?
alex19910218
NZ1
*
Desconectado Desconectado

Mensajes: 70


Å|EX †††


Ver Perfil
« Respuesta #2 : 16 de Agosto de 2008, 03:47:14 »

Bueno estaba investigando y es lo mismo que encontre, pero si yo no tengo
n si un numero (2) como puedo hallarla.

ejemplo
For c = 0 To 2
            For f = 0 To 2
                matriz(c, f) = InputBox("ingrese el valor de la Filas " & c & "Columna" & f)
                Me.ListBox1.It ems.Add(matriz(c, f))
                Me.ListBox2.It ems.Add(c & "," & f)
            Next
        Next


Código:
'diagonal secundaria
        Console.ReadLine()
        Console.WriteLine("La diagonal secundaria es:")
        For i As Integer = 1 To n


            For j As Integer = 1 To n


                If (i + j = n + 1) Then

                    'imprimes la diagonal secundaria
                    Console.WriteLine("{0},{1}", i, j)

                End If
            Next
        Next
        Console.ReadKey(True)
En línea

"La revolución se lleva en el corazón, no en la boca para vivir de ella"

Ernesto CHE Guevara
Rakzo-Fimbres
NZ2
**
Desconectado Desconectado

Mensajes: 487


Caminando por las calles de la internet...


Ver Perfil
« Respuesta #3 : 16 de Agosto de 2008, 04:23:24 »

A ver no sé si te entendí bien alex, tratas de decirme de que si no es una matriz cuadrática como pasamos el valor n?
En línea


Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
¿Quieres iniciarte en Photoshop CS?


Para ver este enlace Registrate o Inicia Sesion
¿Deseas abrir tu aplicacion .NET sin .NET Framework instalado?
alex19910218
NZ1
*
Desconectado Desconectado

Mensajes: 70


Å|EX †††


Ver Perfil
« Respuesta #4 : 16 de Agosto de 2008, 04:56:25 »

Ya, fui capaz de hallar la diagonal secundaria.
Muchas gracias por tu ayuda.
En línea

"La revolución se lleva en el corazón, no en la boca para vivir de ella"

Ernesto CHE Guevara
Rakzo-Fimbres
NZ2
**
Desconectado Desconectado

Mensajes: 487


Caminando por las calles de la internet...


Ver Perfil
« Respuesta #5 : 16 de Agosto de 2008, 05:01:11 »

Si ya lo resolviste, publica cómo, por si a alguien más se le ofrece..
En línea


Para ver este enlace Registrate o Inicia Sesion


Para ver este enlace Registrate o Inicia Sesion
¿Quieres iniciarte en Photoshop CS?


Para ver este enlace Registrate o Inicia Sesion
¿Deseas abrir tu aplicacion .NET sin .NET Framework instalado?
alex19910218
NZ1
*
Desconectado Desconectado

Mensajes: 70


Å|EX †††


Ver Perfil
« Respuesta #6 : 17 de Agosto de 2008, 08:13:54 »

Código:
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'Diagonal Principal
        For f = 0 To 2
            For c = 0 To 2
                If (f = c) Then
                    Me.ListBox5.Items.Add(matriz(f, c))
                End If
            Next
        Next

        'Diagonal Secundaria
        For f = 0 To 2
            For c = 0 To 2
                If (f + c = 1 + 1) Then
                    Me.ListBox6.Items.Add(matriz(c, f))
                End If
            Next
        Next
    End Sub
En línea

"La revolución se lleva en el corazón, no en la boca para vivir de ella"

Ernesto CHE Guevara
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC hacker

Juegos gratis - Articulos PHP - Juegos - Trucos - Letras - Juegos - Juegos Online