Introduction to Computers and Programming in JAVA: V22.0002 Mathematical Operators  2000 Prentice Hall, Inc.

Download Report

Transcript Introduction to Computers and Programming in JAVA: V22.0002 Mathematical Operators  2000 Prentice Hall, Inc.

Introduction to Computers and Programming
in JAVA: V22.0002
Mathematical Operators
 2000 Prentice Hall, Inc. All rights reserved. Modified for use with this course.
Basic Mathematical Operators
Basic Mathematical Operators
Operation
Operator
Addition
Subtraction
+
-
Algebraic
Expression
x+7
x-7
Java Expression
Multiplication
*
7x
x*7
Division
Modulus
/
%
x/7
x mod 7
x/7
x%7
x+7
x-7
Each of the operators in the table are binary operators. A binary operator acts on two operands
4
Lets look at a program to
Calculate the area of a circle
// Program calculates area of a circle (uses double data types)
public class circle_area {
public static void main(String[] args)
{
double radius, area; // declare variables double
radius = 3.00; // assign radius of the circle
area = radius * radius * 3.14159 ;
System.out.println("The area of the circle of radius " + radius + " is " + area);
System.exit(0);
}
}
 2000 Prentice Hall, Inc. Modified for use with this course. All rights reserved.
Same program with defining a constant
final datatype constant_name value;
public class circle_area_pi {
public static void main(String[] args) {
final double PI = 3.14159;
// declare variables
double radius, area;
// assign radius of the circle
radius = 3.00;
area = radius * radius * PI ;
System.out.println("The area of the circle of radius " + radius + " is " + area);
System.exit(0);
}
}
 2000 Prentice Hall, Inc. Modified for use with this course. All rights reserved.
5
Integer Division - Solution
• To understand the solution, you need to remember
your 3rd Grade Math (really.)
1
4
7
4
3
The answer: 1 remainder 3
• 7/4 = 1 (Integer Division)
• 7%4 = 3 (Modulus Division)
Example: Integer and Modulus Division
/*
Integer and Modulus Division
*/
public class mod_division
{
public static void main(String args[])
{
int x = 5, y =10;
System.out.println ("5/10: " + x/y);
System.out.println ("5%10: " + x%y);
} // end method main
} // end class mod_division
5/10 = 0
5%10 = 5
10
0
5
0
5/10: 0
5%10: 5
5
• No matter what, your answers must be integers.
Odd / Even Numbers
• Modulus division can also be used to determine
whether a number is odd or even.
• Just divide by 2.
– If the remainder (modulus) is 0, the number is even.
• Examples:
– 10 % 2 = 0. Hence 10 is even.
– 11 % 2 = 1. Hence 11 is odd.
Common Programming Error:

Dividing by zero is normally undefined on computer systems
generally results in a fatal error.

To find out if a number evenly divides by
another number
• Modulus division can also be used to determine
whether a number divides evenly into another
number or not.
• If the remainder (modulus) is 0, the number
evenly divide.
• Examples:
–
–
–
–
10 % 2 = 0. Hence 10 is evenly divide into 2 .
11 % 2 = 1. Hence 11 is does not divide evenly into 1.
30 % 5 = 0. Hence 30 evenly divide into 5.
100 % 8 = 5.
( 100 / 8 = 12.5 )
» Hence 100 does not evenly divide into 8.
Do you see a pattern?
1234 / 1000 = ?
1234 % 1000 =?
234 / 100= ?
234 % 100= ?
34 / 10= ?
34 % 10=?
What is the pattern?
1234 / 1000 = 1
( lost three right digits and ended up with the left (first) digit)
1234 % 1000 = 234
(lost the left most digit and ended up with the remaining 3 digits)
234 / 100= 2
( lost the 2 right digits and ended up with the left (first) digit)
234 % 100= 34
(lost the left most digit and ended up with the remaining 2 digits)
34 / 10= 3
( lost right digit and ended up with the left (first) digit)
34 % 10= 4
(lost the left most digit and ended up with the remaining right digit)
12
What is the out put of this program?
public class date_digits
{
public static void main(String[] args)
{
int date, month, day, div;
date = 1213;
month = date/100;
day = date % 100;
System.out.println("month is " +month
+"\n" + "day is " + day + "\n” );
}
}
 2000 Prentice Hall, Inc. Modified for use with this course. All rights reserved.
13
What is the out put of this program?
public class date_digits
{
public static void main(String[] args)
{
int date, month, day, div;
month is 12
date = 1213;
day is 13
month = date/100;
Press any key to continue...
day = date % 100;
System.out.println("month is " +month
+"\n" + "day is " + day + "\n");
}
}
 2000 Prentice Hall, Inc. Modified for use with this course. All rights reserved.
Operator Precedence
Operator Precedence
• Operator precedence represent rules for evaluating
mathematical expressions.
• Every programming language has similar rules.
Operator(s)
()
*, /, or %
+ or -
Operation(s)
Parentheses
Order of evaluation (precedence)
Evaluated first. If the parentheses are nested, the
expression in the innermost pair is evaluated first. If there
are several pairs of parentheses “on the same level” (i.e.,
not nested), they are evaluated left to right.
Multiplication,Divi Evaluated second. If there are several, they are
sion, Modulus
evaluated left to right.
Addition
Evaluated last. If there are several, they are
Subtraction
evaluated left to right.
Operator Precedence
• Hence, option #2 is always correct
– (multiplication is performed first):
x = 7 + 3 * 6;
Evaluates
to
x
=
7
+
18
=
25
Example:
•
• Find the average of three variables a, b and c
• Do not use:
a + b + c / 3
• Use:
(a + b + c ) / 3
17
Lets look at a program to allow user to input data
using an input text prompt window
 2000 Prentice Hall, Inc. Modified for use with this course. All rights reserved.
18
Getting Input from Input Dialog Boxes
String string = JOptionPane.showInputDialog(
null, “Prompt Message”,
“Dialog Title”,
JOptionPane.QUESTION_MESSAGE));
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
19
Converting Strings to Integers
•
•
•
The input returned from the input dialog box is a string.
If you enter a numeric value such as 123, it returns “123”.
To obtain the input as a number, you have to convert a string into
a number.
•
To convert a string into an int value, you can use the static
parseInt method in the Integer class as follows:
int intValue = Integer.parseInt(intString);
•
Where intString is a numeric string such as “123”.
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
20
Converting Strings to Doubles
•To convert a string into a double value, you can use the static
parseDouble method in the Double class as follows:
double doubleValue =Double.parseDouble(doubleString);
where doubleString is a numeric string such as “123.45”.
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Addition2.java uses JOptionPane prompt window to enter data
// Addition program that displays the sum of two numbers.
// Java packages
import javax.swing.JOptionPane;
// main method begins execution of Java application
public static void main( String args[] )
{
String firstNumber;
// first string entered by user
String secondNumber; // second string entered by user
int number1;
int number2;
int sum;
// first number to add
// second number to add
// sum of number1 and number2
Outline
Addition2.java
// program uses JOptionPane
Declare variables: name and type.
public class Addition2 {
21
1. import
2. class Addition
2.1 Declare variables
(name and type)
Input first integer as a String, assign
to firstNumber.
3.
showInputDialog
// read in first number from user as a String
firstNumber = JOptionPane.showInputDialog( "Enter first integer" );
// read in second number from user as a String
secondNumber =
JOptionPane.showInputDialog( "Enter second integer" );
4. parseInt
5. Add numbers, put
Convert strings to integers. result in sum
// convert numbers from type String to type int
number1 = Integer.parseInt( firstNumber );
number2 = Integer.parseInt( secondNumber );
// add numbers
sum = number1 + number2;
Add, place result in sum.
 2003 Prentice Hall, Inc.
All rights reserved.
22
33
34
35
36
37
38
39
40
41
// display result
JOptionPane.showMessageDialog( null, "The sum is " + sum,
"Results", JOptionPane.PLAIN_MESSAGE );
System.exit( 0 );
Outline
// terminate application with window
} // end method main
} // end class Addition2
Program output
 2003 Prentice Hall, Inc.
All rights reserved.
23
Adding Integers
5
import javax.swing.JOptionPane;
// program uses JOptionPane
– Location of JOptionPane for use in the program
7
public class Addition {
– Begins public class Addition
• Recall that file name must be Addition.java
– Lines 10-11: main
12
13
String firstNumber;
String secondNumber;
// first string entered by user
// second string entered by user
– Declaration
• firstNumber and secondNumber are variables
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
24
Adding Integers
12
13
String firstNumber;
String secondNumber;
// first string entered by user
// second string entered by user
– Variables
• Location in memory that stores a value
– Declare with name and type before use
• firstNumber and secondNumber are of type String
(package java.lang)
– Hold strings
• Variable name: any valid identifier
• Declarations end with semicolons ;
String firstNumber, secondNumber;
– Can declare multiple variables of the same type at a time
– Use comma separated list
– Can add comments to describe purpose of variables
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
25
Adding Integers
15
16
17
int number1;
int number2;
int sum;
// first number to add
// second number to add
// sum of number1 and number2
– Declares variables number1, number2, and sum of type
int
• int holds integer values (whole numbers): i.e., 0, -4, 97
• Types float and double can hold decimal numbers
• Type char can hold a single character: i.e., x, $, \n, 7
• Primitive types - more in Chapter 4
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
26
Adding Integers
20
firstNumber = JOptionPane.showInputDialog( "Enter first integer" );
– Reads String from the user, representing the first number
to be added
• Method JOptionPane.showInputDialog displays the
following:
• Message called a prompt - directs user to perform an action
• Argument appears as prompt text
• If wrong type of data entered (non-integer) or click Cancel,
error occurs
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
27
Adding Integers
20
firstNumber = JOptionPane.showInputDialog( "Enter first integer" );
– Result of call to showInputDialog given to
firstNumber using assignment operator =
• Assignment statement
• = binary operator - takes two operands
– Expression on right evaluated and assigned to variable on
left
• Read as: firstNumber gets value of
JOptionPane.showInputDialog( "Enter first
integer" )
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
28
Adding Integers
23
24
secondNumber =
JOptionPane.showInputDialog( "Enter second integer" );
– Similar to previous statement
• Assigns variable secondNumber to second integer input
27
28
number1 = Integer.parseInt( firstNumber );
number2 = Integer.parseInt( secondNumber );
– Method Integer.parseInt
• Converts String argument into an integer (type int)
– Class Integer in java.lang
• Integer returned by Integer.parseInt is assigned to
variable number1 (line 27)
– Remember that number1 was declared as type int
• Line 28 similar
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
29
Adding Integers
31
sum = number1 + number2;
– Assignment statement
• Calculates sum of number1 and number2 (right hand side)
• Uses assignment operator = to assign result to variable sum
• Read as: sum gets the value of number1 + number2
• number1 and number2 are operands
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
30
Adding Integers
34
35
JOptionPane.showMessageDialog( null, "The sum is " + sum,
"Results", JOptionPane.PLAIN_MESSAGE );
– Use showMessageDialog to display results
– "The sum is " + sum
• Uses the operator + to "add" the string literal "The sum is"
and sum
• Concatenation of a String and another type
– Results in a new string
• If sum contains 117, then "The sum is " + sum results in
the new string "The sum is 117"
• Note the space in "The sum is "
• More on strings in Chapter 11
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
31
Adding Integers
34
35
JOptionPane.showMessageDialog( null, "The sum is " + sum,
"Results", JOptionPane.PLAIN_MESSAGE );
– Different version of showMessageDialog
•
•
•
•
•
Requires four arguments (instead of two as before)
First argument: null for now
Second: string to display
Third: string in title bar
Fourth: type of message dialog with icon
– Line 35 no icon: JOptionPane.PLAIN_MESSAGE
 2003 Prentice Hall, Inc. All rights reserved (Modified) .
32
Adding Integers
Messa g e d ia lo g typ e
Ic o n
Desc rip tio n
JOptionPane.ERROR_MESSAGE
Displays a dialog that indicates an error
to the user.
JOptionPane.INFORMATION_MESSAGE
Displays a dialog with an informational
message to the user. The user can simply
dismiss the dialog.
JOptionPane.WARNING_MESSAGE
Displays a dialog that warns the user of a
potential problem.
JOptionPane.QUESTION_MESSAGE
Displays a dialog that poses a question to
the user. This dialog normally requires a
response, such as clicking on a Yes or a
No button.
JOptionPane.PLAIN_MESSAGE
no icon
Displays a dialog that simply contains a
message, with no icon.
Fig. 2.12 JOptionPane c o nsta nts fo r m essa g e d ia lo g s.
 2003 Prentice Hall, Inc. All rights reserved (Modified) .