COMPSCI 125 Spring 2005 ©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or...

34
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Spring 2005 Chapter 3: Numeric Data *Variables *Numeric data types *Assignment *Expressions
  • date post

    20-Dec-2015
  • Category

    Documents

  • view

    214
  • download

    0

Transcript of COMPSCI 125 Spring 2005 ©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or...

©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Chapter 3: Numeric Data

*Variables*Numeric data types*Assignment*Expressions

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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 that can change as the program runs

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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 variable has a Java identifier

for a name.

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Variables

* In the last chapter, we declared variables whose location stored the address of an object

* For numeric data, a declaration sets aside memory locations to store the actual data. • 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.

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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.

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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 before it can be used.

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Primitive Types

*There are two different kinds of variable in Java•Object types - variable stores a

reference to the actual data•Primitive types - variable stores

the actual value of the data•Numeric data - six types•Boolean data - boolean

(Chapter 5)•Character data - char (Chapter

9)

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Numeric Types* There are six numeric data types in Java:

• We need 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

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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;

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Variables 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.

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Memory diagram for numeric data

*For numeric data, the actual value is stored in the memory location associated with the variable

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Object Variables

* For objects, the location (memory address) for the object is stored in the memory location associated with the variable

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Comparison of Numeric and Object Variables

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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.

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Assignment

*Numeric Data *Objects

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Arithmetic Expressions

Operation Operator

Expression

Result

Addition + x + y 17

Subtraction - y - z 5

Multiplication

* x * y 70

Division / x / z 2

Modulo (remainder)

% x % y 3

Assume x=10, y=7, z=2

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Examples: What is

3 % 26 % 28 / 38 % 35 / 75 % 7

j * (i / j) + i % j

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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 ?

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Evaluation of Expressions

*Subexpression evaluation x + 3 * y

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Examples : What is3 + 5 / 7(3 + 5) / 73 * 3 + 3 % 23 + 2 / 5 + -2 * 41 / 2 * ( 3 + 5)7 * 5 / 4 * 2

*How would you take a length in inches and convert it to whole feet and inches?•e.g. 56 in. = 5 ft. 6 in.

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Rules for arithmetic promotion* Unary Operators

1. byte and short operands are converted to int

* Binary Operators1. If either operand has type double,

the other will be converted to a double

2. Otherwise, if either operand has type float, the other will be converted to a float

3. Otherwise, if either operand has type long, the other will be converted to a long

4. Otherwise, both operands are converted to int will be converted to an int

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Examples: What is

(3 + 6) / 5(3 + 6) / (double) 51.0 / 2 * ( 3 + 6)(int) 1.999999

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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;

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Examples: What is

*1.602 x 10-19

*6.02 x 1023

*2.38 x 1014

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Scientific Notation

* Numbers in scientific notation, such as • mantissa x 10exponent

* are expressed in Java using the syntax• <mantissa> E <exponent>• 12.40e+209• 29.009E-102

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

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

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Using the Math Class

*Math.PI is a public constant that contains the value of (see Ch3Circle3.java)area = 2 * Math.PI * radius * radius;

*Use Math.sqrt() to get the square root of a numberroot = Math.sqrt( b * b - 4 * a * c) / (2.0 * a);

*Use Math.round() to round a double to the nearest long int percent = (int)(Math.round(0.01 *

score));

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Ch3PoleHeight.java

*Want to calculate the height of a flag pole from a distance.

©The McGraw-Hill Companies,Inc. Permission required for reproduction or display.COMPSCI 125 Spring 2005

Take another measurement