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.
Código Javascript:
Ver original
<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>