JavaScript - Suma diagonales de una tabla

   
Vista:

Suma diagonales de una tabla

Publicado por Mayte (2 intervenciones) el 14/12/2011 20:29:08
Hola, muy buenas a todos.
Necesito una pequeña ayuda o empujoncillo con este ejercicio que tengo que entregar el próximo viernes.
Necesito hacer la suma de todas las diagonales de una matriz, no solo la del centro, y poner el resultado en la siguiente a la diagonal correspondiente.
Hasta ahora ya tengo hecha la tabla que tengo que imprimir (que es dinámica) y la diagonal del centro con el resultado de la suma en la casilla siguiente.
Estaba pensando en que si para hacer la suma diagonal tengo que comprobar que (i==j) para hacer la anterior o siguiente (i==(j-1)) y (i==(j+1)) pero no me sale.
Les dejo el código por si lo quieren probar.
Gracias a todos y un saludo.

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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<html>
 
    <head>
        <script style="text/javascript">
        var fila;
        var columna;
        var numero;
        var arrayTabla;
        cantidad=0;
        function generar(){
 
            cantidad=parseInt(prompt("Intro valor: "));
            arrayTabla= new Array(cantidad);
            for (i=0;i<arrayTabla.length;i++) arrayTabla[i]= new Array(cantidad);
            //creo la tabla 
            tabla=document.createElement("table");
            tabla.border=1;
            tabla.id="t";
            var bodyP=document.getElementById("bodyP");
 
            //contador=1; 
 
            suma=0;
 
            for (var i=0;i<cantidad+1;i++){
                var fila1=document.createElement("tr");
                for (var j=0;j<cantidad+1;j++){
                    var columna1=document.createElement("td");//creamos una celda 
                    if (i==cantidad || j==cantidad){
                            columna1.style.backgroundColor="gray";
                            columna1.style.color="white";
                            texto=document.createTextNode(" ");
                            columna1.appendChild(texto);//enlazamos hijos con padres 
                            fila1.appendChild(columna1);
                        }
                        else{
                            numero=parseInt(prompt("Intro valor: "));
                                                        arrayTabla[i][j]=numero;
 
                            texto=document.createTextNode(numero);
 
                            }
                        if(i==j && i<cantidad && j<cantidad){
 
                            suma=suma+numero;
                        }
 
                        if (i==cantidad && j==cantidad){
 
                                texto=document.createTextNode(suma);
                            }
 
 
                        columna1.appendChild(texto);//enlazamos hijos con padres 
                        fila1.appendChild(columna1);
                        //contador++; 
                }
                tabla.appendChild(fila1);
 
            }
            bodyP.appendChild(tabla);
 
 
        }
 
 
 
    </script>
    </head>
    <body onload="generar()">
        <div id="bodyP" align="center"></div>
    </body>
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