Montana Tech of The University of Montana
Computer Science & Software Engineering

CSCI 135
Fundamentals of Computer Science I
Fall 2018



ASSIGNMENT 2

The goal of this assignment is to work with data types and expressions. You will also practice printing output so that it is formatted correctly, Be sure you pay attention to your header comment, other comments and variable names.


Part 1: Distance Between Two Points
The straight line distance between two points (x1, y1) and (x2, y2) on a Cartesian coordinate plane is given by the equation:



Your program will take in the values of the x1, y1 and x2, y2 points as integers from the command line. It must then calculate the distance between the two points. For example, if the input was 0 0 3 4, your program would calculate and output the distance between (0, 0) and (3, 4) which is 5. Of course, the answer should be something else if the arguments on the command line are different.

In Java, to take the square root of a number, say x, use the static helper method:

Math.sqrt(x)

To raise a number x to a power, say 2, you can use:

Math.pow(x, 2)
The output from your program should be formatted exactly as below, with the command line input shown between parentheses and the result of your equation at the end:
The distance between (0, 0) and (3, 4) is 5.0
Name your program Distance.java.

Part 2: Birthday Wizard
Given a person's year of birth and a target age, both from the command line, calculate what year they will be (or were) that age. For example, if your command line input was 1999 and 21, your output should look like:

You will (or did) turn 21 in the year 2020.
Name this program Birthday.java.

Part 3: Boolean Logic
Three sensors are attached to a printing device, with three alarms attached to the sensors. The first sensor, "A," detects if the device needs ink. The second sensor, "B," detects if the device needs repair. The third sensor, "C," detects if the device is jammed.

If the device jams or needs repair, alarm 1 sounds. If the device jams or is short on ink, alarm 2 sounds. If two or more problems occur at once, alarm 3 sounds.

The command line arguments should contain values for each of the sensors. These are boolean values, either true or false. In order to convert a String to a boolean value, use Boolean.parseBoolean(var_name).

The table below shows which alarms sound based on the sensors. 0 represents false and 1 represents true.
SensorASensorBSensorCAlarm1Alarm2Alarm3
000000
001110
010100
011111
100010
101111
110111
111111


Your program should print out the value of each of the alarms, depending on the input sensor values. This must be done using boolean logic, not just 8 print statements. For example, if sensor A is false, sensor B is true, and sensor C is false, alarm 1 should sound and the other two should not. The output should look like::

Alarm 1: true
Alarm 2: false
Alarm 3: false
Name this program Logic.java.

Grading Each of the three programs is worth 10 points each, for a total of 30 points. For each program, you will be graded according to the following criteria:

Grade ItemDistanceBirthdayLogicPoints Earned
Program Compiles
2
2
2
Program Runs
2
2
2
Header Comment
2
2
2
Program Runs Correctly
(including correctly formatted output)
4
4
4


Submission. Submit all three programs Distance.java, Birthday.java, and Logic.java via Moodle. Be sure each submitted source file has the required header with your name, and a description of the program. Also be sure to submit the .java source files and not the .class files!

Page last updated: August 15, 2019