CSCI 1320 (Principles of Computer Science I), Fall 2012:
Homework 3

Credit:
20 points.

Reading

Be sure you have read chapter 4.

Programming Problems

Do the following programming problems. You will end up with at least one code file per problem. Submit your program source (and any other needed files) by sending mail to bmassing@cs.trinity.edu, with each file as an attachment. Please use a subject line that mentions the course and the assignment (e.g., ``csci 1320 homework 3'' or ``CS1 hw3''). You can develop your programs on any system that provides the needed functionality, but I will test them on one of the department's Linux machines, so you should probably make sure they work in that environment before turning them in.

  1. (10 points) Write a Scala script (program) to compute U.S. income tax given taxable income. The instructions for Form 1040 for 2011 are as follows (for single taxpayers):

    Your program should first prompt the user for a taxable income (in whole dollars), and then do one of two things: If the amount is no more than $100,000, it should tell the user to use the IRS's tax table; otherwise it should use the above formulas to compute and print the tax due, rounded to the nearest dollar (round 50 cents upward). For example, the tax on $110,000 is 28% of $110,000 minus $6,383; computing and rounding, this gives $24,417. (Don't worry about printing amounts with commas; for this assignment it's fine to just print, for the example, $24417.)

    You could use floating-point numbers for the calculation, but the result will likely be more accurate if you instead do everything with integers, calculating tax in pennies and converting back to dollars at the end. (An easy way to round cents to the nearest dollar is to add 50 cents and then use integer division to convert to dollars.)

  2. (10 points) Write a Scala script (program) that asks the user for three integers and prints them in order from smallest to largest. (Sounds simple -- but be sure you consider all possible cases. The user could enter the numbers from smallest to largest, or vice versa, or in several other orders. Your mission is to give the right answer for all possibilities. Notice that the numbers do not have to be distinct -- for example, the user could enter three values of 0.



Berna Massingill
2012-09-20