meljun cortes java numerical data types and expressions
TRANSCRIPT
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
1/64
MELJUN CORTES MBA MPA BSCS ACS
Chapter 3-
JAVA Numerical Expression
Numerical
Data
MELJUN CORTES
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
2/64
MELJUN CORTES
MELJUN CORTES MBA MPA BSCS ACS
Chapter 3 Objectives
After you have read and studied this
chapter, you should be able to
Select proper types for numerical data.
Write arithmetic expressions in Java.
Evaluate arithmetic expressions, using theprecedence rules.
Describe how the memory allocationworks for objects and primitive datavalues.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
3/64
MELJUN CORTES MBA MPA BSCS ACS
Chapter 3 Objectives, cont.
After you have read and studied this
chapter, you should be able to
Write mathematical expressions, using
methods in the Mathclass.
Use the GregorianCalendarclass in
manipulating date information such as year,
month, and day.
Use the DecimalFormat class to format
numerical data.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
4/64
MELJUN CORTES MBA MPA BSCS ACS
Chapter 3 Objectives, cont.
After you have read and studied this
chapter, you should be able to Convert input string values to numerical
data.
Apply the incremental developmenttechnique in writing programs.
(Optional) Describe how integers and real
numbers are represented in memory.
Input data by using System.inand outputdata using System.out.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
5/64
MELJUN CORTES MBA MPA BSCS ACS
3.1 Variables
To compute the sum and the differenceof xand yin a program, we must first
declare what kind of data will be
assigned to them.
After we assign values to them, we can
compute their sum and difference.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
6/64
MELJUN CORTES MBA MPA BSCS ACS
3.1 Variables
When a declaration, such as
int x, y;
is made, memory locations to store datavalues for xand yare allocated.
These memory locations are calledvariables, and xand yare the names
we associate with the memorylocations.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
7/64MELJUN CORTES MBA MPA BSCS ACS
3.1 Variables
A variable has three properties:
A memory location to store the value.
The type of data stored in the memory
location.
The name used to refer to the memory
location.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
8/64MELJUN CORTES MBA MPA BSCS ACS
3.1 Variables
The syntax for declaring variables is
;
where is a sequence of
identifiers separated by commas.
Every variable we use in a program
must be declared.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
9/64MELJUN CORTES MBA MPA BSCS ACS
3.1 Variables
There are six numerical data types in
Java: byte
short
int
long
float
double
Data types byte, short, int, and longare for integers.
Floatand doubleare for real numbers.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
10/64MELJUN CORTES MBA MPA BSCS ACS
3.1 Variables
At the time a variable is declared, it can
also be initialized.
int count = 10, height = 34;
We assign a value to a variable byusing an assignment statement.
Do not confuse mathematical equalityand assignment. The following is not
valid Java code:
4 + 5 = x;
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
11/64MELJUN CORTES MBA MPA BSCS ACS
3.1 Variables
The only difference between a variable
for numbers and a variable for objects
is the contents in the memory
locations.
For numbers, a variable contains thenumerical value itself.
For objects, a variable contains an
address where the object is stored.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
12/64MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.1
A diagram showing how two memory
locations (variables) are declared, and
values are assigned to them.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
13/64MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.2
A difference between object declaration
and numerical data declaration.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
14/64MELJUN CORTES MBA MPA BSCS ACS
3.1 Variables
We use the newcommand to create an
object.
Objects are called reference data types,
because the contents are addressesthat refer to memory locations where
the objects are actually stored.
Numerical data are calledprimitive data
types.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
15/64MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.3
An effect of assigning the content of one
variable to another.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
16/64MELJUN CORTES MBA MPA BSCS ACS
3.2 Arithmetic Expressions
Arithmetic operators in Java
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
17/64
MELJUN CORTES MBA MPA BSCS ACS
3.2 Arithmetic Expressions
An illustration of a subexpression in the
expression x + 3 * y
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
18/64
MELJUN CORTES MBA MPA BSCS ACS
3.2 Arithmetic Expressions
Precedence rules for arithmetic
operators and parentheses
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
19/64
MELJUN CORTES MBA MPA BSCS ACS
3.2 Arithmetic Expressions
Rules for arithmetic promotion
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
20/64
MELJUN CORTES MBA MPA BSCS ACS
3.3 Constants
If we want a variable to remain fixed, we
use a constant.
A constant is declared in a manner similar
to a variable, but with the additionalreserved word final.
final double PI = 3.14159;final int MONTHS_IN_YEAR = 12;
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
21/64
MELJUN CORTES MBA MPA BSCS ACS
3.3 Constants
If a literal constant contains a decimal
point, it is of type doubleby default.
To designate a literal constant of type
float, append a letter f or F to thenumber:
2 * PI * 345.79F
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
22/64
MELJUN CORTES MBA MPA BSCS ACS
3.3 Constants
Numbers in scientific notation, such as
Number x 10exponent
are expressed in Java using the syntax
E
12.40e+209
29.009E-102
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
23/64
MELJUN CORTES MBA MPA BSCS ACS
3.4 Getting Numerical Input Values
Wrapper classesare used to perform
necessary type conversions, such asconverting a String object to a
numerical value.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
24/64
MELJUN CORTES MBA MPA BSCS ACS
3.4 Getting Numerical Input Values
/*
Chapter 3 Sample Program: Compute Area andCircumference
File: Ch3Circle.java
*/
import javax.swing.*;
import java.text.*;
class Ch3Circle {
public static void main( String [] args ) {
final double PI = 3.14159;
String radiusStr;
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
25/64
MELJUN CORTES MBA MPA BSCS ACS
3.4 Getting Numerical Input Values
double radius, area, circumference;
radiusStr =JOptionPane.showInputDialog(null, "Enterradius:");
radius = Double.parseDouble(radiusStr);
//compute area and circumference
area = PI * radius * radius;
circumference = 2.0 * PI * radius;
JOptionPane.showMessageDialog(null, "GivenRadius: " + radius + "\n" + "Area: "+ area + "\n" + "Circumference: " +circumference);
}
}
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
26/64
MELJUN CORTES MBA MPA BSCS ACS
3.4 Getting Numerical Input Values
An illustration of how the compiler
interprets an overloaded operator.
int x = 1;
int y = 2;
String output = test + x + y;
String output = x + y + test;
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
27/64
MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.4
The dialog that appears when the input
value 2.35 was entered into theCh3Circle program.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
28/64
MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.5
The result of formatting the output
values by using a DecimalFormatobject.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
29/64
MELJUN CORTES MBA MPA BSCS ACS
3.5 Standard Output
The showMessageDialogmethod is
intended for displaying short one-linemessages, not for a general-purpose
output mechanism.
Using System.out,we can output
multiple lines of text to the standard
output window.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
30/64
MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.6
The standard output window for
displaying multiple lines of text.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
31/64
MELJUN CORTES MBA MPA BSCS ACS
3.5 Standard Output
We use the printmethod to output a
value.
The printmethod will continue printing
from the end of the currently displayedoutput.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
32/64
MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.7
Result of executing
System.out.print(Hello, Dr.Caffeine.).
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
33/64
MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.8
Result of sending five printmessages
to System.outof Figure 3.7.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
34/64
MELJUN CORTES MBA MPA BSCS ACS
3.5 Standard Output
The printmethod will do the necessary
type conversion if we pass numericaldata.
We can print an argument and skip tothe next line so that subsequent output
will start on the next line by using
printlninstead of print.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
35/64
MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.9
The result of mixing printwith four
printlnmessages to System.out.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
36/64
MELJUN CORTES MBA MPA BSCS ACS
3.6 Standard Input
The technique of using System.into
input data is called standard input.
We can only input a single byte usingSystem.in directly.
To input primitive data values, we usethe Scanner class (from Java 2 SDK
1.5).
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
37/64
MELJUN CORTES MBA MPA BSCS ACS
Here's a sample code to input one
integer and one double:
Scanner scanner;
scanner = Scanner.create(System.in);
int num = scanner.nextInt();
double val = scanner.nextDouble();
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
38/64
MELJUN CORTES MBA MPA BSCS ACS
Method Example
nextByte( ) byte b = scanner.nextByte( );
nextDouble( ) double d = scanner.nextDouble( );nextFloat( ) float f = scanner.nextFloat( );
nextInt( ) int i = scanner.nextInt( );
nextLong( ) long l = scanner.nextLong( );
nextShort( ) short s = scanner.nextShort( );
next() String str = scanner.next();
Common Methods:
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
39/64
MELJUN CORTES MBA MPA BSCS ACS
3.7 The MathClass
The Mathclass in thejava.lang
package contains class methods forcommonly used mathematical
functions.
Table 3.6 contains a partial list of class
methods available in the Mathclass.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
40/64
MELJUN CORTES MBA MPA BSCS ACS
3.8 The GregorianCalendarClass
The GregorianCalendarclass is useful
in manipulating calendar informationsuch as year, month, and day.
Note that the first month of the year,January, is represented by 0.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
41/64
MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.12
Result of running the Ch3TestCalendar
program at November 11, 2002, 6:13p.m.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
42/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
Program flow:
Get three input values:
loanAmount, interestRate, and
loanPeriod.
Compute the monthly and totalpayments.
Output the results.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
43/64
MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.13
The object diagram for the program
LoanCalculator.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
44/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
Steps of implementation:
1. Start with code to accept three input
values.
2. Add code to output the results.
3. Add code to compute the monthlyand total payments.
4. Update or modify code and tie up
any loose ends.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
45/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
Step 1 Development: Input Three Data
Values
Call the showInputDialogmethod to
accept three input values: loan amount,
annual interest rate,
loan period.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
46/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
/*
Chapter 3 Sample Development: Loan Calculator
(Step 1)
File: Step1/Ch3LoanCalculator.java
Step 1: Input Data Values
*/
import javax.swing.*;
class Ch3LoanCalculator {
public static void main (String[] args) {
double loanAmount,annualInterestRate;
int loanPeriod;
String inputStr;
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
47/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//get input values
inputStr = JOptionPane.showInputDialog(null,
"Loan Amount (Dollars+Cents):");
loanAmount = Double.parseDouble(inputStr);
inputStr = JOptionPane.showInputDialog(null,
"Annual Interest Rate (e.g.,9.5):");
annualInterestRate = Double.parseDouble(inputStr);
inputStr = JOptionPane.showInputDialog(null,
"Loan Period - # of years:");
loanPeriod = Integer.parseInt(inputStr);
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
48/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//echo print the input values
System.out.println("Loan Amount: $" +loanAmount);
System.out.println("Annual Interest Rate: " +
annualInterestRate + "%");
System.out.println("Loan Period (years): " +
loanPeriod);
}
}
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
49/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
Step 2 Development: Output Values
We must determine an appropriate
format to display the computed results,
so that the results will becomprehensible to the user.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
50/64
MELJUN CORTES MBA MPA BSCS ACS
Fig. 3.14
Two display formats: One with input
values displayed, and the other withonly the computed values displayed.
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
51/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
/*
Chapter 3 Sample Development: Loan Calculator
(Step 2)
File: Step2/Ch3LoanCalculator.java
Step 2: Display the Result
*/
import javax.swing.*;
class Ch3LoanCalculator {
public static void main (String[] args) {
double loanAmount,
annualInterestRate;
double monthlyPayment,
totalPayment;
int loanPeriod;
String inputStr;
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
52/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//get input values
inputStr = JOptionPane.showInputDialog(null,
"Loan Amount (Dollars+Cents):");
loanAmount = Double.parseDouble(inputStr);
inputStr = JOptionPane.showInputDialog(null,
"Annual Interest Rate (e.g.,
9.5):");
annualInterestRate = Double.parseDouble(inputStr);
inputStr = JOptionPane.showInputDialog(null,
"Loan Period - # of years:");
loanPeriod = Integer.parseInt(inputStr);
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
53/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//compute the monthly and total payments
monthlyPayment = 132.15;
totalPayment = 15858.10;
//display the result
System.out.println("Loan Amount: $" +loanAmount);
System.out.println("Annual Interest Rate: " +
annualInterestRate + "%");System.out.println("Loan Period (years): " +
loanPeriod);
System.out.println("\n"); //skip two lines
System.out.println("Monthly payment is $ " +monthlyPayment);
System.out.println(" TOTAL payment is $ " +totalPayment);
}
}
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
54/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
Step 3 Development: Compute Loan
Amount
Complete the program by implementing
the formula derived in the design
phase.
We must convert the annual interest
rate (input value) to a monthly interest
rate (per the formula), and the loanperiod to the number of monthly
payments.
S C
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
55/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
/*
Chapter 3 Sample Development: Loan Calculator (Step 3)
File: Step3/Ch3LoanCalculator.java
Step 3: Compute the monthly and total payments
*/
import javax.swing.*;
class Ch3LoanCalculator {
public static void main (String[] args) {
final int MONTHS_IN_YEAR = 12;
double loanAmount, annualInterestRate,monthlyPayment, totalPayment;
double monthlyInterestRate;
int loanPeriod, numberOfPayments;
String inputStr;
3 9 S l D l L C l l
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
56/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//get input values
inputStr = JOptionPane.showInputDialog(null,
"Loan Amount(Dollars+Cents):");loanAmount = Double.parseDouble(inputStr);
inputStr = JOptionPane.showInputDialog(null,
"Annual Interest Rate (e.g.,9.5):");
annualInterestRate=Double.parseDouble(inputStr);
inputStr = JOptionPane.showInputDialog(null,"Loan Period - # of years:");
loanPeriod = Integer.parseInt(inputStr);
3 9 S l D l t L C l l t
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
57/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//compute the monthly and total payments
monthlyInterestRate = annualInterestRate /MONTHS_IN_YEAR / 100;
numberOfPayments = loanPeriod * MONTHS_IN_YEAR;
monthlyPayment =
(loanAmount * monthlyInterestRate) /(1 - Math.pow(1/(1 + monthlyInterestRate),
numberOfPayments ) );
totalPayment = monthlyPayment * numberOfPayments;
3 9 S l D l t L C l l t
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
58/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//display the result
System.out.println("Loan Amount: $" +
loanAmount);
System.out.println("Annual Interest Rate: " +
annualInterestRate + "%");
System.out.println("Loan Period (years): " +
loanPeriod);
System.out.println("\n"); //skip two lines
System.out.println("Monthly payment is $ "
+ monthlyPayment);
System.out.println(" TOTAL payment is $ "
+ totalPayment);}
}
3 9 S l D l t L C l l t
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
59/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
Step 4 Development: Finishing Up
Finalize the program by making
necessary modifications or additions.
We will add a program description and
format the monthly and total payments
to two decimal places.
3 9 S l D l t L C l l t
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
60/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
/*
Chapter 3 Sample Development: Loan Calculator (Step 4)
File: Step4/Ch3LoanCalculator.java
Step 4: Finalize the program
*/
import javax.swing.*;
import java.text.*;
class Ch3LoanCalculator {
public static void main (String[] args) {
final int MONTHS_IN_YEAR = 12;
double loanAmount, annualInterestRate;
double monthlyPayment, totalPayment;
double monthlyInterestRate;
int loanPeriod, numberOfPayments;
String inputStr;
DecimalFormat df = new DecimalFormat("0.00");
3 9 S l D l t L C l l t
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
61/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//describe the program
System.out.println("This program computes the
monthly and total");
System.out.println("payments for a given loanamount, annual ");
System.out.println("interest rate, and loan
period.");
System.out.println("Loan amount in dollars andcents, e.g., 12345.50");
System.out.println("Annual interest rate inpercentage, e.g., 12.75");
System.out.println("Loan period in number ofyears, e.g., 15");
System.out.println("\n"); //skip two lines
3 9 S l D l t L C l l t
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
62/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//get input values
inputStr = JOptionPane.showInputDialog(null,
"Loan Amount(Dollars+Cents):");
loanAmount = Double.parseDouble(inputStr);
inputStr = JOptionPane.showInputDialog(null,
"Annual Interest Rate (e.g.,
9.5):");
annualInterestRate = Double.parseDouble(inputStr);
inputStr = JOptionPane.showInputDialog(null,
"Loan Period - # of years:");
loanPeriod = Integer.parseInt(inputStr);
3 9 S l D l t L C l l t
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
63/64
MELJUN CORTES MBA MPA BSCS ACS
3.9 Sample Development: Loan Calculator
//compute the monthly and total payments
monthlyInterestRate = annualInterestRate /MONTHS_IN_YEAR / 100;
numberOfPayments = loanPeriod * MONTHS_IN_YEAR;
monthlyPayment =
(loanAmount * monthlyInterestRate) /(1 - Math.pow(1/(1 + monthlyInterestRate),
numberOfPayments ) );
totalPayment = monthlyPayment * numberOfPayments;
3 9 Sample De elopment Loan Calc lator
-
8/13/2019 MELJUN CORTES Java Numerical Data Types and Expressions
64/64
3.9 Sample Development: Loan Calculator
//display the result
System.out.println("Loan Amount: $" +
loanAmount);System.out.println("Annual Interest Rate: " +
annualInterestRate + "%");
System.out.println("Loan Period (years): " +loanPeriod);
System.out.println("\n"); //skip two lines
System.out.println("Monthly payment is $ "
+ df.format(monthlyPayment));
System.out.println(" TOTAL payment is $ "
+ df.format(totalPayment));
}
}