Tuesday, 8 January 2019

Bonus Computer Program Challenges

Need an extra challenge when programming in class? Try these!

1) Write a program called "LeapYear" in which the user is asked to enter a value - a year to be tested to see if it is a leap year. Have the program say either, yes, the entered year is a leap year, or no it is not.

Hint: How to Calculate a Leap Year
  1. Start off using the year you want to calculate.
  2. See if it is evenly divisible by 4 (a whole number with no remainder). If it is not, like 1997, it is not a leap year. ...
  3. See if the year is divisible by 100. If a year is divisible by 4, but not 100, like 2012, it is a leap year. ...
  4. See if the year is divisible by 400. If a year is divisible by 100, but not 400, like 1900, then it is not a leap year. If a year is divisible by both, then it is a leap year. So 2000 was indeed a leap year. 
Hint 2: Try using the "modulo" or "mod" operator. The modulo operation finds the remainder after division of one number by another. e.g. 10 mod 2 = 0, 10 mod 3 = 1, 5 mod 2 = 1, 1999 mod 4 = 3. 2012 mod 4 = 0.

2) Write a program that asks the user for a number and then outputs all prime numbers less than that number. (Look up "Sieve of Eratosthenes" for help with an algorithm.)

3) Create a program that simulates the rolling of two six-sided dice and calculates the sum of the two face values. Have the user enter how many times the dice will be rolled. Keep track in a List of the total number of times that each possible sum was observed. Specifically, create a List called "Sums" and in position 1, count all the times there is a sum of 1 (this should be zero); in position 2, count all of the times the sum is 2; in position 3, count all of the times the sum is 3, etc. Calculate the probability of getting the sum 12. How does this match with your simulation? What if you repeat the simulation more times? What about the sum of 7?