/** * This program performs several complex Array tests. * For each test, the required result is printed along with the actual result. * The two results should be equal for each test. */ class Main { function void main() { var Array a, b, c; let a = Array.new(10); let b = Array.new(5); let c = Array.new(1); let a[3] = 2; let a[4] = 8; let a[5] = 4; let b[a[3]] = a[3] + 3; // b[2] = 5 let a[b[a[3]]] = a[a[5]] * b[7 - a[3] - Main.double(2) + 1]; // a[5] = 8 * 5 = 40 let c[0] = null; let c = c[0]; do Output.printString("TEST 1 - REQUIRED RESULT: 5, ACTUAL RESULT: "); do Output.printInt(b[2]); do Output.println(); do Output.printString("TEST 2 - REQUIRED RESULT: 40, ACTUAL RESULT: "); do Output.printInt(a[5]); do Output.println(); do Output.printString("TEST 3 - REQUIRED RESULT: 0, ACTUAL RESULT: "); do Output.printInt(c); do Output.println(); let c = null; if (c = null) { do Main.fill(a, 10); let c = a[3]; let c[1] = 33; let c = a[7]; let c[1] = 77; let b = a[3]; let b[1] = b[1] + c[1]; // b[1] = 33 + 77 = 110; } do Output.printString("TEST 4 - REQUIRED RESULT: 77, ACTUAL RESULT: "); do Output.printInt(c[1]); do Output.println(); do Output.printString("TEST 5 - REQUIRED RESULT: 110, ACTUAL RESULT: "); do Output.printInt(b[1]); do Output.println(); return; } function int double(int a) { return a * 2; } function void fill(Array a, int size) { while (size > 0) { let size = size - 1; let a[size] = Array.new(3); } return; } }