funcons-simple-0.1.0.3: tests/Kdiverse/Kdiverse5.smp
// 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.