Download all the island files
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: 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:
12 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
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
It is possible to tell if a number could be a valid credit card. Credit cards numbers can be validated against an algorithm known as a Luhn. Read this first.
http://www.datagenetics.com/blog/july42013/index.html
Counting from the check digit, which is the rightmost, and moving left, double the value of every second digit.
Sum the digits of the products together with the undoubled digits from the original number.
If the total ends in 0 (put another way, if the total modulo 10 is congruent to 0), then the number is valid according to the Luhn formula; else it is not valid.
Image from http://www.impuls-imaging.com/wp-content/uploads/2013/07/luhn_algorithm.png
Mod 10+5 Variant Some credit cards use the “Mod 10 plus 5” variant to extend the space of valid card numbers.[citation needed] In this variant, if the sum ends in 0 or 5, the number is considered valid.
from http://www.moneybluebook.com/imagesvr_ce/mbb/luhn-amex-calculation.jpg
A more extensive analysis with good images and an online Luhn Checker (currently blocked by Harrison network filter)
Original Project Descriptions is here
Acknowledgement This problem is adapted from one that was created originally by Erica Eddy of The University of Wisconsin – Parkside.
Your jeroo is exploring the outer perimeter of the lake. It starts next to a flower and travels the entire way around the lake. Have your jeroo stop immediately before the flower (using a loop) and then, after the loop is over, your jeroo should pick the flower.
Download the maps
Map #1 : rectangular-lake.jev |
recangular-lake-if2.jev |
|
rectangular-lake-bumps1.jev |
Remember Nets kill Jeroosrectangular-lake-bumps2.jev |
Write a loop that makes the jeroo travel around the lake below. This loop should never end. walk-the-lake-jacks-map.jev |
Let’s write the following method
public void printDigits( int n){
}
Walk through of how the code should work:
the algorithm inolves
1) extract last digit
2) print last digit
3) remove last digit
keep doing this until there are no more digits
Example :
Let’s look at printDigits( 345)
Walk through of how the code should work:
the algorithm inolves
1) extract last digit ‘5’
2) print last digit print ‘5’
3) remove last digit now n should be ’34’
do this for ‘4’ and then ‘3’ until there are no more digits
You need a while loop. Think about it. What is the value of n when there are no more digits?
For Your Digital Tablet
If you are uploading to youtube, you can match the ratio of their dimensions (1800 width by 1012 height for wide screen ) or, if you don’t mind some black padding on the borders of your video, you can record at whatever dimensions are convenient and Youtube will take care of the rest. If you’d like to read more about this, there’s a good article at Techsmith .