Using Java`s Math & Scanner class

advertisement
Using Java's Math &
Scanner class
Java's Mathematical functions
(methods) (1)
Java's Mathematical functions
(methods) (2)
• Unlike a calculator that always shows the result of a
computation on its display....
• A computer will only show the result of a
computation when it is told !!!
Java's Mathematical functions
(methods) (3)
• A computed value is not printed: If you want to print a
computed value, use a print statement
• A computed value is not stored: If you want to store (save) a
computed value, use an assignment statement
Reading input from the console
input (1)
• The console is the terminal window that is running the Java
program.
• When a Java program starts running, the Java runtime
system will initialize many variables in support for the
running program.
• Java system variable: System.in represents the console input
• A Java program can obtains inputs from the console through
the keyboard
Reading input from the console
input (2)
• Java's Scanner library class
• The class path of the Scanner class inside the Java library is:
java.util.Scanner
Before a Java program can read input from the keyboard, the
program must " construct a Scanner object (explain later)
Example:
Reading input from the console
input (3)
• After having constructed the Scanner object named in, you
can use the following expression to read a floating point
number from the keyboard:
• You must save (store) the number read in
by "in.nextDouble()" in a double typed variable with
an assignment statement
Reading input from the console
input (4)
• the method call in.nextDouble() will invoke (run) a method
in Java's library.
• The task performed by in.nextDouble() is to read a floating
point number from the keyboard:
Reading input from the console
input (5)
• The return value will replace the method call:
• The input value 3.5 is then stored in the variable a !!!
Reading input from the console
input (6)
• steps to read in a floating point number
Reading input from the console
input (7)
• Good programming courtesy:
• When the program needs the user
to enter input from the keyboard,
it must print out a (short) prompt
message
Different Types of
Numerical Information
Recall
• Recall that the computer can combine adjacent bytes in the
RAM memory to form larger memory cells
• To obtain a higher accuracy (= more significant
digit of accuracy), we need to combine more memory cells
Trade-offs
• Memory usage
• Speed
Arithmetic expressions that uses higher accuracy will
take longer time to compute
When a Java program needs to use higher accurate numbers,
it will not only use more memory, but it will also take a
longer time to complete.
Different kinds of floating point
numbers in Java
• Java provides 2 different sizes of floating point numbers
(and variables):
1. Single precision floating numbers (has lower accuracy and
uses less memory)
uses 4 consecutive bytes of memory as a single 32 bit
memory cell
2. Double precision floating numbers (has more accuracy and
uses more memory)
uses 8 consecutive bytes of memory as a single 64 bit
memory cell
Defining single and double
precision floating point variables
• define double precision floating point variables:
• define single precision floating point variables:
float and double are considered as different types
Converting (casting) to a single or
a double precision representation
• single and double precision floating point
numbers uses different encoding methods
• The computer has built-in machine
instructions to convert between different encodings
Very important phenomenon in computer
programming: lost of accuracy
Safe and unsafe conversion
operations
• Safe conversion = a conversion from one representation
(encoding) to another representation (encoding) where there
is no (or very little) loss in accuracy
• Unsafe conversion = a conversion from one representation
(encoding) to another representation (encoding) where there
is significant loss in accuracy
Expressions containing values
of different types
• A computer can only operate on data of the same data type
In order to perform any operation on two values of differing
types, the computer must:
1. convert one of the types into the other type
2. Perform the operation on the value
Automatic conversions:
1. During a calculation of a arithmetic expressions
Arithmetic promotion of float to double:
2. Storing the result to a variable by an assignment operator
If float value is assigned to a double variable, the float value
is converted to double.
The general rule for automatic type
conversion in the assignment operation
• If type1 is a higher accuracy type than type2, then:
The type2 value is automatically converted to type1 before
the assignment statement is executed.
• If type1 is a lower accuracy type than type2, then:
The assignment statement is not allowed.
You must use an casting operator to make the assignment
statement valid.
Download