Author Archives: Mr. M

2 D Arrays in Java Assignments

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 rowThis 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 toval

changeValues(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 }

Matrices

int[][] add (int[][] matr1, int[][] matr2)

Description: This method returns the sum of matr1 and matr2

how to add matrices


 

** int[][] multiply(int[][] matr1, int[][] matr2)

Description: This method returns the product of matr1 and matr2

how to multiply matrices

**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

Two Dimensinal Arrays in Java

Two Dimensional Arrays in Java

 

2-D array Demo Code

2 D Array Assignments

Array 3 [ v1]

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, 0, 1}
doubleUp(  { 1, 3 , 1, 5 , 3, 3} ,  3 )    {1 , 3,  , 1, 5 , 3, 3, 3, }

 

 

 

Similar problems on codinbat

Pre4

Mazes 2

Mazes #2

Download Mazes 2 Island Files

 

Shunya Map 1

shunya_1


Shunya 4

shunya_4

 

 

Struhl Map:

  • Start   20, 18
  • go around the interior, get the flower, pick it up.
  • 1 loop only

struhl_map

Ryuki’s Maze

Can be done in about 20 lines

ryuki-maze

 

 

Heeyeon’s Map:

  • heeyeons_maze.jev
  • start Jeroo at (23,1) and pick up the flower  at that location
  • go to (1,23)
  • you may NOT pick a flower or visit a cell that has a flower (See animation at bottom)

Picture at start:

heeyons_maze1

One Solution:heeyeons_maze

 

Brett’s Maze 2

Description: Start at 0,0, pick all the flowers then use them to toss() your way through the nets.   bretts-maze2
 bretts-maze2

 

George’s Map  : Start at ( 10,0) , facing SOUTH,  Use 1 loop and pick the flowergeorges-map

 Paul’s Diagonal Map
pauls-diagonal

 

 Matt’s All Flower Map
Map name :   matt_water_flower_map.jev
Directions: pick up all the flowers. Use 1 while loop. You can start and end wherever you want. Just make sure that the loop eventually terminates.
One strategy:
 matts-all-flowers

A Different strategy

matt_water_flower_map


Ryuki’s Red Wind

pick-flowers-red-wind_ryuki

 

Bismark’s Map

Directions: Pick all the flowers. Start anywhere ; end anywhere. Don’t die, Make sure the loop ends.

bismarks-map

 

Sota
sota

EXTRA CREDIT:

Mazes 1

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 

islands-3-a-opt


Shunya 3

shunya_3

 


Aliya’s Map

aliya



 Mazes 2 (start in top left, 1 loop to pick flower)

mazes-1-assign-mazes2

 


Shunya 2

shunya_2

 


Yuna’s Original Maze

 

yunas_original_maze


 

 

 island-3-D (start in the top left, and get to the bottom right)

island3-d

Diagonal Inwards
Fill up the Map
  • * Use a blank map and have 2 Jeroos fill up every spot with a flower.
  • Use a single loop (not an infinite one either)

diag-inwards-133percent

 

AlanasMessage_MAP.jev

alanasmessage_sped_up


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)

zigazg-opt

5)  Spell Z (Blank Map)

  1. start at 0 , 0 with 70 flowers.
  2. Use a single while loop to spell a letter z

spell-z-jeroo-with-loop_assignment-complete


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

Systematically Visit All Cells [Java]

Description: It’s harvest time and Adam must pick all of the flowers on the island. Unfortunately for Adam, he doesn’t know where the flowers are growing. Flowers could be growing anywhere on the island. In order to keep from being too exhausted, he can only visit each cell once, and he cannot try to pick from an empty cell. There are no nets, water features, or other Jeroos on the island. The purpose of this program is to find a systematic way for Adam to visit every cell exactly once, and pick the flowers from the cells that have flowers.
Download all the island files

The Maps

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.

Extra Credit Java Arrays Question

Extra Credit (GOOD LUCK!)

 

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:

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

Tool for checking work

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.

Hurdles

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.

  • start at bottom left
  • with zero flowers
  • use a single while loop
  • you may only hop() a single space (ie no hop(2), hop(3), hop(n) )
  •  pick the flower that is (generally) located on the right

 

Download all the island files

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)

steves maze

 

download-bttnJacob Icejet’s Map

  • this gets you the 10/10
  • use 1 while loop
  • the Jeroo should travel in an infinite loop around the perimeter of the map.

 

Hurdles

 


 

download-bttnjacob_icejet_map2 Extra credit

  • this is extra credit
  • 1 while loop
  • start with zero flowers
  • pick the one flower in the top right and use that to access the flower that is in the bottom middle.

ice-jet-map

Two Friends Meet

One Saturday morning, two friends, Bugs and Daffy, decide to meet and plant flowers to beautify Santong island. Daffy starts in the Northwest corner facing East with 90 flowers in his pouch. Bugs starts in the Northeast corner facing West with 90 flowers in his pouch. Bugs and Daffy begin hopping toward one another. As they hop, each plants exactly one flower at every location it enters, including its starting location. They meet, facing each other, roughly in the middle of row 0. After a handshake and a little small talk, Bugs and Daffy both turn toward the south and continue planting flowers all the way to the southern edge of the island. When both reach the South Sea, the say goodbye and part. Daffy turns west and plants flowers all the way to the Western Ocean. Bugs turns east and plants flowers all the way to the Eastern Ocean. This is where our story ends. Your task is to write a Jeroo program that will illustrate this story.

One possible solution to this project is represented in the picture below