// copied from K: tests/diverse/matrix.simple // This program tests multi-dimensional arrays. function readArray(a) { var m = sizeOf(a) - 1, n = sizeOf(a[0]) - 1; for(var i=0; i<=m; ++i) { print("Line ",i+1," (",n+1," elements): "); for(var j=0; j<=n; ++j) { a[i][j] = read(); } } } function printArray(a) { var m = sizeOf(a) - 1, n = sizeOf(a[0]) - 1; for(var i=0; i<=m; ++i) { print("Line ",i+1," (",n+1," elements):"); for(var j=0; j<=n; ++j) { print(" ",a[i,j]); } print("\n"); } } function transArray(a) { var m = sizeOf(a) - 1, n = sizeOf(a[0]) - 1, b[n+1,m+1]; for (var i=0; i<=m; ++i) { for (var j=0; j<=n; ++j) { b[j,i] = a[i,j]; } } return b; } function mulArray(a,b) { var m = sizeOf(a) - 1, n = sizeOf(b) - 1, p = sizeOf(b[0]) - 1, c[m+1,p+1]; for (var i=0; i<=m; ++i) { for (var j=0; j<=p; ++j) { c[i,j] = 0; for (var k=0; k<=n; ++k) { c[i,j] = c[i,j] + a[i,k] * b[k,j]; } } } return c; } function main() { print("Input the number of lines and columns (two natural numbers): "); var x = read(), y = read(), a[x,y]; readArray(a); print("Your matrix is:\n"); printArray(a); print("The transpose of your matrix is:\n"); printArray(transArray(a)); print("You matrix multiplied with its transpose is:\n"); printArray(mulArray(a,transArray(a))); print("The transpose of your matrix multiplied with your matrix is:\n"); printArray(mulArray(transArray(a),a)); } // Should output what it says.