C sharp - Como recorrer la diagonal principal de una matriz en C# ?

 
Vista:

Como recorrer la diagonal principal de una matriz en C# ?

Publicado por Javier (4 intervenciones) el 01/07/2017 02:57:19
Hola... tengo un problema con un ejercicio de matrices... necesito multiplicar la diagonal principal de una matriz cuadrada si sus valores (int) son positivos... pero no logro hacerlo... se que las posiciones de la diagonal principal son aquellas que tienen mismo indice para fila y columna, y solo puedo utilizar for, switch, while o do while para resolver el ejercicio.
Si alguien pudiera darme una pista o ayudarme a resolverlo estaria muy agradecido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Como recorrer la diagonal principal de una matriz en C# ?

Publicado por omar (25 intervenciones) el 01/07/2017 04:50:38
saludos

muestame

que dimencion es tu matriz y te digo como realizarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como recorrer la diagonal principal de una matriz en C# ?

Publicado por UNFAISAN (4 intervenciones) el 01/07/2017 05:02:16
Gracias... la onda es esta... tengo que hacer una FUNCION para poder multiplicar los elementos de la diagonal principal entre si, solo si son positivos y esto debe funcionar para cualquier matriz cuadrada....

Tengo el esqueleto de la funcion pero no se como identificar los indices [i,j] de la diagonal principal... no se me ocurre como armar el relleno del for...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
static int CalculaDiagonal (int [,] matriz)
{
    int resultado = 1;
 
    for (int i = 0; i < matriz.GetLength(1); i++)
    {
       /***** if (matriz.GetLength(0) == matriz.GetLength(1))
       *{                    
          *  if (matriz[i, i] > 0)
           * {
           *     resultado *= matriz[i, i];
         *   }
          *      
       * }***/
   }
    return resultado;
}

la matriz que tengo armada en el main es esta...

1
2
3
4
int[,] numeros = {  { -123, 45, 03, 564 },
                                { 761, 46, 41, 147 },
                                { 32, -461, 164, 467 },
                                { 07, 97, 465, 712 } };
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como recorrer la diagonal principal de una matriz en C# ?

Publicado por UNFAISAN (4 intervenciones) el 01/07/2017 06:08:44
PERDON... ESE ERA UN CODIGO QUE USE PARA VER QUE PASA xD

seria asi...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
static int CalculaDiagonal ( int [,] matriz)
{
int resultado=1;
 
if (matriz,GetLenght(0) == matriz.GetLenght(1))
   {
    for (int i=0; i < matriz.GetLenght(0); i++)
    {
      for (int j=0; j < matriz.GetLenght(1); j++)
       {
 
       }
     }
    }
return resultado;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como recorrer la diagonal principal de una matriz en C# ?

Publicado por UNFAISAN (4 intervenciones) el 02/07/2017 00:11:55
Ya consegui la respuesta en otro blog... GRACIAS POR SU AYUDA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
class Program
{
    /*FUNCION CalculaDiagonal */
    static int CalculaDiagonal(int[,] matriz)
    {/* Variables para resultado y negatividad */
        int resultado = 1;
        int contadornegativo = 0;
        /* Comparo si la matriz es cuadrada */
        if (matriz.GetLength(0) == matriz.GetLength(1))
        {
            for (int i = 0; i < matriz.GetLength(0); i++)
            {/* si el valor en la celda es positivo lo multiplico */
                if (matriz[i, i] > 0)
                    resultado *= matriz[i, i];
                /* si el valor en la celda es negativo lo acumulo en el contador */
                else if (matriz[i, i] < 0)
                    contadornegativo++;
            }
            /* si todos los valores de las celdas en la diagonal son negativos */
            if (contadornegativo == matriz.GetLength(0))
                resultado = -1;
        }
        return resultado;
    }
    /*******************************************************/
    static void Main(string[] args)
    {/* Declaracion de la matriz a operar y la variable para recibir el resultado */
        int resp = 0;
        int[,] numeros = {  { -123, 45, 03, 564 },
                            { 761, 46, 41, 147 },
                            { 32, -461, 164, 467 },
                            { 07, 97, 465, 712 } };
        /* Llamado a la funcion CalculaDiagonal e impresion en pantalla del resultado */
        resp = CalculaDiagonal(numeros);
        Console.WriteLine("El resultado de la multiplicacion de la diagonal principal es:{0}", resp);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar