Create a class Matrix
int[][] add (int[][] matr1, int[][] matr2)
Description: This method returns the sum of matr1 and matr2
int[][] multiply(int[][] matr1, int[][] matr2)
Description: This method returns the product of matr1 and matr2
Create a class Matrix
int[][] add (int[][] matr1, int[][] matr2)
Description: This method returns the sum of matr1 and matr2
int[][] multiply(int[][] matr1, int[][] matr2)
Description: This method returns the product of matr1 and matr2
Add the following Methods to a class called ArrayFun2D
public void print(int[][] arr)
Description: This method prints each element in the array. This will be a useful method when you are debugging your code and want to test it out to see if it works.
| Method Call | return value |
| print({{1,2} , {3,4}, { 5, 6 } } ) | 1 2 3 4 5 6 |
public int sum(int[][] arr)
Description: This method returns the sum of all elements in the array
| Method Call | return value |
| sum({{1,2} , {3,4}, { 5, 6 } } ) | 21 ( ie 1+2+3+4+5+6) |
public String concat(String[][] strs)
Description: This method returns the concatenation of all the elements in the Array
| Method Call | return value |
| concat({{“a”,”xc” }, {“t”, “zoo”}, { “jjkj” } } ) | “axctzzoojjkj” |
public double mean( int[][] arr)
Description: This method returns the arithmetic mean of the array. Make sure you double check that you are correctly returning results that include decimal values .
| Method Call | return value |
| mean({{2,8} , {4 , 7} } ) | 5.25 ie (2+8+4+7)/4 |
public void printRow(int[][] arr, int row)
Description: This method prints all elements in
row.This can be (and should be) done with a single loop.
| Method Call | return value |
| printRow({{1,2} , {3,4}, { 5, 6 } } , 1 ) | 3, 4 |
| printRow( { 5 , 6} , {7, 12, 13 , 5 }, { 5, 6 ,0} } , 2 ) | 5 , 6, 0 |
public void printCol(int[][] arr, int col)
Description: This method prints all elements in
col.
| Method Call | return value |
| printCol({{1,2} , {3, 4}, { 5, 6 } } , 1 ) | 2 4 6 |
| printCol( { 5 , 6} , {7, 12, 13 , 5 }, { 12, 6 ,0} } , 0 ) | 5 7 12 |
| printCol( {12, 13 , 5 }, { 6, 2, 13 ,11} , {1,2 } } , 2 ) | 5 13 |
public int maxVal_inRow(int[][] arr, int row)
Description: This method returns the value of the largest number in the given row
| Method Call | return value |
| maxVal_inRow({{1,2} , {3,4}, { 5, 6 } } , 1 ) | 4 |
| maxVal_inRow ({ { 5 , 6} , {7, 12, 13 , 5 }, { 5, 6 ,0} } , 2 ) | 6 |
public int maxVal_inCol(int[][] arr, int col)
Description: This method returns the value of the largest number in the given col
| Method Call | return value |
| maxVal_inCol({{1,2} , {3,4}, { 5, 6 } } , 0 ) | 5 |
| maxVal_inCol({{1,-2} , {3,-4}, { 5, -5 } } , 1 ) | -2 |
public int[][] changeValues(int[][] table, int val)
Description:This method returns the array with all elements set to
valchangeValues(table, 5)
Original Array
1 2 3 4 5 6 Returned Array
5 5 5 5 5 5
public void print_colMajor(int[][] arr)
Description: This method prints each element in the array – using column major order
| Method Call | return value |
| print({{1,2} , {3,4}, { 5, 6 } } ) | 1 3 5 2 4 6 |
public int[][] removeVals(int[][] table, int val)
Description: This method returns a version of the 2-d array where val has been removed from all elements
removeValues(table, 5)
Original Array
{1 , 5} {3, 4} {5, 6} Returned Array
{1} {3, 4} {6}
int[] twoD_to1D(int[][] arr)
Description: This method takes an input array that is in 2 dimensions and creates a 1 d array . Assume that the array is rectangular (not jagged).
| Method Call | return value |
| twoD_to1D ( {{1,2} , {3,4}, { 5, 6 } } ) | { 1 , 2 , 3 , 4 , 5 , 6 } |
int[][] add (int[][] matr1, int[][] matr2)
Description: This method returns the sum of matr1 and matr2
** int[][] multiply(int[][] matr1, int[][] matr2)
Description: This method returns the product of matr1 and matr2
**public int[][] invertValues(int[][] matr)
Description: This method returns the paramater with its values ‘inverted’
Original Array
1 2 3 4 5 6 Returned Array
6 5 4 3 2 1
String[][] table = {
{"a","b","c"},
{"d","e","f","g"},
{"g","h"},
};
int table2[][] = {
{ 1, 4, 5},
{5,11,12},
{22, 45},
};
Warming up
public void printFactors( int n )
Description: This method prints all factors of n
| Method Call | return value/output |
| printFactors( 5) | 1
5 |
| printFactors( 6) | 1
2 3 6 |
| printFactors( 9 ) | 1 3 9 |
| printFactors( 15) | 1 3 5 15 |
public int[] getFactors( int n )
Description: This method returns an array populated with the factors on n
| Method Call | return value/output |
| getFactors( 5) | {1,5} |
| getFactors( 6) | {1,2,3,6} |
| getFactors( 9 ) | {1,3, 9} |
| getFactors( 15) | {1,3,5} |
public int[] removeZeros(int [] nums)
Description: This method returns a version of the input –with all occurrences of 0 , zero, removed
| Method Call | return value/output |
| noZeros( { 3 , 4, 0, 1} ) | { 3, 4, 1} |
| noZeros( { 0, 5 , 0, 0, 9, 0, 1 , 11} ) | { 5,9,1,11} |
** public int[] doubleUp( int [] nums, int val)
Description: This method retuns a version of the input –with all occurances of val duplicated.
| Method Call | return value/output |
| doubleUp( { 3 , 4, 0, 1} , 4 ) | { 3, 4 , 4, 0, 1} |
| doubleUp( { 1, 3 , 1, 5 , 3, 3} , 3 ) | {1 , 3, 3 , 1, 5 , 3, 3, 3, 3 } |
Similar problems on codinbat
Shunya Map 1
Shunya 4
Struhl Map:
Ryuki’s Maze
Can be done in about 20 lines
Heeyeon’s Map:
Picture at start:
Brett’s Maze 2
George’s Map : Start at ( 10,0) , facing SOUTH, Use 1 loop and pick the flower
A Different strategy
Ryuki’s Red Wind
Bismark’s Map
Directions: Pick all the flowers. Start anywhere ; end anywhere. Don’t die, Make sure the loop ends.
Objective: To use while loops to get the Jeroo to pass through each maze and get the flower. It is possible to write a solution to both of these mazes using a single while loop–albeit this loop will have several( about 5 or 6) if tests! It is important for this problem that you do NOT simply hand code this. To get an A on both of these assignments you must use 1 single while loop per maze.
Download All Island Files
island3-A
Shunya 3
Aliya’s Map
Mazes 2 (start in top left, 1 loop to pick flower)
Shunya 2
Yuna’s Original Maze
island-3-D (start in the top left, and get to the bottom right)
AlanasMessage_MAP.jev
4) ZigZag : Use 1 while loop (not infinite), follow the flowers, picking them up and use those flowers traverse over the nets. Notice where the Jeroo ends (ie your while loop condition)
5) Spell Z (Blank Map)
Last and most definitely not least:
island3-C
This is the deceptively hard and should be done last and only if you want that A+

Done all of the maps? Start on the next set here


Note: Do not be fooled by how similar the next map is. You will probably have to rewrite some code to complete the next one.




Note first try addition , also worth some (though less) extra credit.
** int[] multiply(int[] num1, int[] num2, int base) throws ArithmeticException
@precondition 1 < base < 11
@precondition num1.length = 5 and num2.length = 5
@postcondition: the returned array has 5 elements representing the product or an ArithmeticException is thrown
Description: This method attempts to replicate multiplication. Both num1 and num2 represent five digit numbers. Each element in the array stores one of the digits. For instance, the number 143 would be represented as {0,0,1,4,3 }. Numbers can be in any base between 2 and 10 inclusive , and the number 101102 in binary would appear in an arrays as : {1, 0, 1 , 1, 0 } . Let’s assume the numbers are positive. You should return an array representing the digits of the product of num1 and num2. If the number of digits in the product exceeds the maximum number of digits (5) , you should throw an arithmetic exception as shown in the code below:
if(overFlowAdditionOccurred)
throw new ArithmeticException("Addition Overflow Error");
Note: You may not use any kind of helper or utility methods that are built into pre-defined Java classes for converting numbers between bases. Only use techniques taught in this class.
| Method Call | return value/output |
| multiply ( {0,0,0 , 4,2},{0,0,0,5,1}, 10) | {0 , 2 , 1 , 4 , 2} (42 *51= 2142) |
| multiply ( {0,0,0, 3,1} , { 0 ,0,0,2,4}, 10) | {0 , 0 , 7 , 4 , 4} (31 *24= 744) |
| multiply ( {6,5,1, 3,1} , { 0 ,0,0,2,4}, 10) | throw an ArithmeticException |
Use programmers calc to check your work. This is an awesome 64 calculator and you can multiply in binary, decimal or octal to help you see if you did your work correctly.
Start you jeroo in the bottom picture and have it climb to the flower. Use 1 and only 1 while loop.
climb-the-stairs__1.jev![]() |
![]() |
![]() |
climb-the-stairs__2.jev![]() |
![]() |
![]() |
climb-the-stairs__3.jev![]() |
![]() |
![]() |
climb-the-stairs__4.jev![]() |
![]() |
![]() |
Objective: A Jeroo starts at the southwest corner of the island, location (23,0), facing East with no flowers. There is a flower somewhere east of the Jeroo. There are zero or more hurdles, represented by nets, between the Jeroo and the flower. Each hurdle is a rectangular arrangement of nets with its base along the Southern Sea. The height and width of each hurdle is unknown. The number of hurdles and the spacing between the hurdles is unknown. There is at least one row of empty cells along the top and sides of each hurdle. There are no water features and no other Jeroos on the island. The only nets are those that define the hurdles. The goal of this program is to have the Jeroo jump all of the nets, pick the flower, and stop. A representative island is shown in figure 1.
OneHurdle.jev
Solution : Not graded

two-hurdles.jev Not graded


ManyHurdles.jev
Not graded

Extreme Hurdles.jev 8/10

Description:Write an infinite loop that makes your Jeroo travel around the perimeter of the island. 9/10
Download this island file (steve’s maze)


jacob_icejet_map2 Extra credit