Chapter 3 Numerical Data. Topics Variables Numeric data types Assignment Expressions.
-
date post
21-Dec-2015 -
Category
Documents
-
view
238 -
download
1
Transcript of Chapter 3 Numerical Data. Topics Variables Numeric data types Assignment Expressions.
Chapter 3
Numerical Data
Topics
• Variables
• Numeric data types
• Assignment
• Expressions
Numeric Data and Operations
• So far, our programs have used only String data
• It is common to use computers for numeric calculations
• We can write literal numbers into our programs - just write the number
• We need a way to store numeric data - variables
Variables
• In mathematical expressions, we often use x and y to represent unknown values and to make a placeholder for many different values– y = x2 + 5
• A variable is used in a similar way in a program– A variables has a Java identifier for a name.
Variables
• In the last chapter, we declared variables whose location stored the address of an object
• Now we need to learn to declare variables to store numeric data.
• A declaration sets aside memory locations to store data values. – These memory locations are called variables, and x and y are the names we associate with the memory locations.
• As before, we need to say what kind of data the variable represents.
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.
Variable Declarations
• The syntax for declaring variables is<data type> <variables>;
• where <variables> is a sequence of identifiers separated by commas.
• Every variable we use in a program must be declared.
Numeric Types
• There are six numeric data types in Java:– We nee to be able to use two basic kinds of numbers.– We have several types for each kind of number to allow for different ranges
of values.
• Integers have discrete values (whole numbers).– byte– short– int– long
• Real numbers are needed for values that have fractional parts.
– float– double
Assignment
• First we need to declare a variable.int a;
• We assign a value to a variable by using an assignment statement.a = 5;
• At the time a variable is declared, it can also be initialized.
int count = 10, height = 34;• Do not confuse mathematical equality and
assignment. The following is not valid Java code:• 4 + 5 = x;
Varaibles for Objects and Numbers
• 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 the numeric value
itself.
– For objects, a variable contains an address where the object is stored.
Memory diagram for numeric data
• For numeric data, the actual value is stored in the memory location associated with the variable
Object Variables
• For objects, the location (memory address) for the object is stored in the memory location associated with the variable
Comparison
Variables
• We use the new command to create an object.– Objects are called reference data types, because
the contents are addresses that refer to memory locations where the objects are actually stored.
• Numerical data are called primitive data types.– We don't need to use new with primitive types.– You do have to give the primitive variable a
value.
Assignment
• Numeric Data • Objects
Arithmetic Expressions
Operation Operator Expression Result
Addition + x + y 17
Subtraction - y - z 4.5
Multiplication * x * y 70
Division / y / x 0.7
Modulo (remainder)
% x % y 3
Assume x=10, y=7, z=2.5
Division and Modulo
• Division works differently for integer and floating point types– for floating point types you get a floating point result
(what your calculator would give you)
– for integers, you get an integer result
– integer division and modulo together are what you first learned when you learned division in grade school
• 27 divided by 6 is 4 with a remainder of 3
• so 27 / 6 gives a result of 4
• and 27 % 6 gives a result of 3
Evaluation order
• In an expression with more than one binary operator, we need rules to tell us what order to do them in– What is 5 + x * 16 / y + 5 ?
• Precedence rules tell us which of two different operations should get done first– What is 5 + 4 * 3 ?
• Associativity rules tell us which order operations of the same type get done in– What is 16 / 2 / 2 ?
Precedence rules
• for arithmetic operators and parentheses
Order Group Operator Rule
first Subexpression () innermost first left to right
Unary operation +, - single operand
multiplicative operators
*, /, % left to right
last additive operators
+, - left to right
Evaluation of Expressions
• Subexpression evaluation x + 3 * y
Mixed-mode Arithmetic
• What happens when the operands in your expression have different types?– x = 3.45 / 2
• The hardware supports only single-type operations• The value of a variable has to be stored in the
appropriate format.• Type conversions are used to convert mixed-type
expressions to single type expressions
Type Conversions
• Widening conversions happen automatically– promote a value from one type into another which can
represent a larger range of values • converting an int to a double
• Narrowing conversions have to be programmed explicitly– information will be lost
• converting a double to an int
– cast operator is the name of the type of the result enclosed in parentheses
– (int)2.34– fractional part will be truncated
Rules for arithmetic promotion
• Unary Operators1. byte and short operands are converted to int
• Binary Operators1. If either operand has type double, the other will be
converted to a double2. Otherwise, if either operand has type float, the other
will be converted to a float3. Otherwise, if either operand has type long, the other
will be converted to a long4. Otherwise, both operands are converted to int will be
converted to an int
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 additional reserved word final.
• final double PI = 3.14159;
• final int MONTHS_IN_YEAR = 12;
Literal Constants
• If a literal constant contains a decimal point, it is of type double by default.
• To designate a literal constant of type float, append a letter f or F to the number:
• 2 * PI * 345.79F
Scientific Notation
• Numbers in scientific notation, such as • Number x 10exponent
• are expressed in Java using the syntax• <number> E <exponent>
• 12.40e+209• 29.009E-102
Getting Numerical Input Values
• Wrapper classes are used to perform necessary type conversions, such as converting a String object to a numerical value.
Getting Numerical Input Values
radiusStr = JOptionPane.showInputDialog(null,
"Enter radius:");
radius = Double.parseDouble(radiusStr);
The Math Class
• The Math class in the java.lang package contains class methods for commonly used mathematical functions.
• Some methods available in the Math class:– sqrt, abs, round– sin, cos, asin, …
• Math has the constant Math.PI in it