Start Lecture #5
Homework: The problems from lecture 4 that weren't assigned (3.7 and 3.9).
Let's fix two problems with our previous solution to solving the quadratic equation Ax2+Bx+C=0.
Let's do this in class; one possible solution is here.
Read.
Let's do this one in class. Handout sheet with tax table. A scan of the table is here.
Operator | Name |
---|---|
! | not |
&& | and |
|| | or |
^ | exclusive or |
Like most computer languages, Java permits Boolean expressions to contain so-called "logical operators". These operators have Boolean expressions as both operands and results.
The table on the right shows the four possibilities.
The not
operator is unary (takes one operand) and returns the
opposite Boolean value as result.
The and
operator is binary and returns false unless
when both operands are true.
The (inclusive) or
operator is binary and returns
true unless both operands are false.
That is, the meaning of || is
one or the other or both
.
The exclusive or
operator is binary and returns
true if and only if exactly one operand is true.
That is, the meaning of ^ is
one or the other but not both
.
As you know a day is the time it takes the earth to rotate about its axis, and a year is the time it takes for the earth to revolve around the sun.
By these definitions a year is a little less than 365.25 days. To keep the calendars correct (meaning that, e.g., the vernal equinox occurs around the same time each year), most years have 365 days, but some have 366.
A very good approximation, which will work up to at least the year 4000 and likely much further is as follows (surprisingly, we are not able to predict exactly when the vernal equinox will occur far in the future; see wikipedia).
Let's write in class a program that asks for the year and replies by saying if the year is a leap year. One solution is in the book.
The book has an interesting lottery game. The program generates a random 2-digit number and accepts another 2-digit number from the user.
We will write this in class, but need a new library method from Java, Math.random returns a random number between 0 and 1. The value returned, a double, might be 0, but will not be 1.
One solution is in the book.