[go: up one dir, main page]

0% found this document useful (0 votes)
15 views48 pages

Rahul Chapter2

Uploaded by

Rahul Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views48 pages

Rahul Chapter2

Uploaded by

Rahul Singh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 48

Chapter 2: Elementary Programming

1
Introducing Programming with an
Example
Computing the Area of a Circle
This program computes the area of the circle.

2
animation
Trace a Program Execution
public class ComputeArea { allocate memory
/** Main method */ for radius
public static void main(String[] args) {
double radius; radius no value
double area;

// Assign a radius
radius = 20;

// Compute area
area = radius * radius * 3.14159;

// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}

3
animation
Trace a Program Execution
public class ComputeArea {
/** Main method */
public static void main(String[] args) {
double radius;
double area;

// Assign a radius
radius = 20;

// Compute area
area = radius * radius * 3.14159;

// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}

4
animation
Trace a Program Execution
public class ComputeArea { assign 20 to radius
/** Main method */
public static void main(String[] args) {
double radius; radius 20
double area; area no value

// Assign a radius
radius = 20;

// Compute area
area = radius * radius * 3.14159;

// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}

5
animation
Trace a Program Execution
public class ComputeArea {
/** Main method */ memory
public static void main(String[] args) {
double radius; radius 20
double area; area 1256.636
// Assign a radius
radius = 20;
compute area and assign
// Compute area it to variable area
area = radius * radius * 3.14159;

// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}

6
animation
Trace a Program Execution
public class ComputeArea {
/** Main method */ memory
public static void main(String[] args) {
double radius; radius 20
double area; area 1256.636

// Assign a radius
radius = 20;

// Compute area
area = radius * radius * 3.14159; print a message to the
console
// Display results
System.out.println("The area for the circle of radius " +
radius + " is " + area);
}
}

7
Reading Input from the Console

1. Create a Scanner object


Scanner input = new Scanner(System.in);

2. Use the method nextDouble() to obtain to a double


value. For example,
System.out.print("Enter a double value: ");
Scanner input = new Scanner(System.in);
double d = input.nextDouble();

ComputeAreaWithConsoleInput Run

ComputeAverage Run

8
Identifiers
 An identifier is a sequence of characters that consist of
letters, digits, underscores (_), and dollar signs ($).
 An identifier must start with a letter, an underscore (_),
or a dollar sign ($). It cannot start with a digit.
 An identifier cannot be a reserved word. (See Appendix
A, “Java Keywords,” for a list of reserved words).
 An identifier cannot be true, false, or
null.
 An identifier can be of any length.

9
Variables

// Compute the first area


radius = 1.0;
area = radius * radius * 3.14159;
System.out.println("The area is “ +
area + " for radius "+radius);

// Compute the second area


radius = 2.0;
area = radius * radius * 3.14159;
System.out.println("The area is “ +
area + " for radius "+radius);
10
Declaring Variables
int x; // Declare x to be an
// integer variable;
double radius; // Declare radius to
// be a double variable;
char a; // Declare a to be a
// character variable;

11
Assignment Statements

x = 1; // Assign 1 to x;

radius = 1.0; // Assign 1.0 to radius;


a = 'A'; // Assign 'A' to a;

12
Declaring and Initializing
in One Step

 int x = 1;
 double d = 1.4;

13
Named Constants

final datatype CONSTANTNAME = VALUE;

final double PI = 3.14159;


final int SIZE = 3;

14
Naming Conventions
 Choose meaningful and descriptive names.
 Variables and method names:
• Use lowercase. If the name consists of several words, concatenate all in
one, use lowercase for the first word, and capitalize the first letter of each
subsequent word in the name. For example, the variables radius and
area, and the method computeArea.

15
Naming Conventions, cont.
 Class names:
• Capitalize the first letter of each word in the
name. For example, the class name
ComputeArea.

 Constants:
• Capitalize all letters in constants, and use
underscores to connect words. For
example, the constant PI and MAX_VALUE

16
Numerical Data Types
Name Range Storage Size

byte –27 to 27 – 1 (-128 to 127) 8-bit signed

short –215 to 215 – 1 (-32768 to 32767) 16-bit signed

int –231 to 231 – 1 (-2147483648 to 2147483647) 32-bit signed

long –263 to 263 – 1 64-bit signed


(i.e., -9223372036854775808 to 9223372036854775807)

float Negative range: 32-bit IEEE 754


-3.4028235E+38 to -1.4E-45
Positive range:
1.4E-45 to 3.4028235E+38
double Negative range: 64-bit IEEE 754
-1.7976931348623157E+308 to -4.9E-324

Positive range:
4.9E-324 to 1.7976931348623157E+308

17
Reading Numbers from the Keyboard
Scanner input = new Scanner(System.in);
int value = input.nextInt();

Method Description

nextByte() reads an integer of the byte type.


nextShort() reads an integer of the short type.
nextInt() reads an integer of the int type.
nextLong() reads an integer of the long type.
nextFloat() reads a number of the float type.
nextDouble() reads a number of the double type.

18
Numeric Operators

Name Meaning Example Result

+ Addition 34 + 1 35

- Subtraction 34.0 – 0.1 33.9

* Multiplication 300 * 30 9000

/ Division 1.0 / 2.0 0.5

% Remainder 20 % 3 2

19
Integer Division

+, -, *, /, and %

5 / 2 yields an integer 2.
5.0 / 2 yields a double value 2.5

5 % 2 yields 1 (the remainder of the division)

20
Remainder Operator
Remainder is very useful in programming. For example, an
even number % 2 is always 0 and an odd number % 2 is always
1. So you can use this property to determine whether a
number is even or odd. Suppose today is Saturday and you
and your friends are going to meet in 10 days. What day is
in 10 days? You can find that day is Tuesday using the
following expression:

Saturday is the 6th day in a week


A week has 7 days
(6 + 10) % 7 is 2
The 2nd day in a week is Tuesday
After 10 days

21
Problem: Displaying Time
Write a program that obtains minutes and
remaining seconds from seconds.

22
NOTE

Calculations involving floating-point numbers are


approximated because these numbers are not stored
with complete accuracy. For example,
System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);
displays 0.5000000000000001, not 0.5, and
System.out.println(1.0 - 0.9);
displays 0.09999999999999998, not 0.1. Integers are
stored precisely. Therefore, calculations with integers
yield a precise integer result.

23
Exponent Operations

System.out.println(Math.pow(2, 3));
// Displays 8.0
System.out.println(Math.pow(4, 0.5));
// Displays 2.0
System.out.println(Math.pow(2.5, 2));
// Displays 6.25
System.out.println(Math.pow(2.5, -2));
// Displays 0.16

24
Number Literals

A literal is a constant value that appears directly


in the program. For example, 34, 1,000,000, and
5.0 are literals in the following statements:

int i = 34;
long x = 1000000;
double d = 5.0;

25
Integer Literals
An integer literal can be assigned to an integer variable as
long as it can fit into the variable. A compilation error
would occur if the literal were too large for the variable to
hold. For example, the statement byte b = 1000 would
cause a compilation error, because 1000 cannot be stored
in a variable of the byte type.
An integer literal is assumed to be of the int type, whose
value is between -231 (-2147483648) to 231–1
(2147483647). To denote an integer literal of the long
type, append it with the letter L or l. L is preferred
because l (lowercase L) can easily be confused with 1 (the
digit one).

26
Floating-Point Literals
Floating-point literals are written with a decimal point. By default, a floating-
point literal is treated as a double type value. For example, 5.0 is considered
a double value, not a float value. You can make a number a float by
appending the letter f or F, and make a number a double by appending the
letter d or D. For example, you can use 100.2f or 100.2F for a float number,
and 100.2d or 100.2D for a double number.

27
double vs. float
The double type values are more accurate than the float type values. For
example,

System.out.println("1.0 / 3.0 is " + 1.0 / 3.0);

displays 1.0 / 3.0 is 0.3333333333333333

16 digits

System.out.println("1.0F / 3.0F is " + 1.0F / 3.0F);

displays 1.0F / 3.0F is 0.33333334


7 digits

28
Scientific Notation

Floating-point literals can also be specified in


scientific notation, for example, 1.23456e+2, same
as 1.23456e2, is equivalent to 123.456, and
1.23456e-2 is equivalent to 0.0123456. E (or e)
represents an exponent and it can be either in
lowercase or uppercase.

29
Arithmetic Expressions

3  4 x 10( y  5)(a  b  c ) 4 9 x
  9(  )
5 x x y

is translated to

(3+4*x)/5 – 10*(y-5)*(a+b+c)/x + 9*(4/x + (9+x)/y)

30
How to Evaluate an Expression

Though Java has its own way to evaluate an


expression behind the scene, the result of a Java
expression and its corresponding arithmetic
expression are the same. Therefore, you can safely
apply the arithmetic rule for evaluating a Java
expression. 3 + 4 * 4 + 5 * (4 + 3) - 1
(1) inside parentheses first
3 + 4 * 4 + 5 * 7 – 1
(2) multiplication
3 + 16 + 5 * 7 – 1
(3) multiplication
3 + 16 + 35 – 1
(4) addition
19 + 35 – 1
(5) addition
54 - 1
(6) subtraction
53

31
Problem: Converting Temperatures
Write a program that converts a Fahrenheit degree to Celsius using the
formula:

celsius  ( 95 )( fahrenheit  32)

Note: you have to write


celsius = (5.0 / 9) * (fahrenheit – 32)

32
Augmented Assignment Operators

33
Increment and
Decrement Operators

34
Increment and
Decrement Operators, cont.

int i = 10; Same effect as


int newNum = 10 * i++; int newNum = 10 * i;
i = i + 1;

int i = 10; Same effect as


int newNum = 10 * (++i); i = i + 1;
int newNum = 10 * i;

35
Increment and
Decrement Operators, cont.

Using increment and decrement operators makes


expressions short, but it also makes them complex and
difficult to read. Avoid using these operators in expressions
that modify multiple variables, or the same variable for
multiple times such as this: int k = ++i + i.

36
Assignment Expressions and
Assignment Statements
Prior to Java 2, all the expressions can be used as
statements. Since Java 2, only the following types of
expressions can be statements:
variable op= expression; // Where op is +, -, *, /, or %
++variable;
variable++;
--variable;
variable--;

37
Numeric Type Conversion

Consider the following statements:


byte i = 100;
long k = i * 3 + 4;
double d = i * 3.1 + k / 2;

38
Conversion Rules
When performing a binary operation involving two
operands of different types, Java automatically
converts the operand based on the following rules:

1. If one of the operands is double, the other is


converted into double.
2. Otherwise, if one of the operands is float, the other is
converted into float.
3. Otherwise, if one of the operands is long, the other is
converted into long.
4. Otherwise, both operands are converted into int.

39
Type Casting
Implicit casting
double d = 3; (type widening)

Explicit casting
int i = (int)3.0; (type narrowing)
int i = (int)3.9; (Fraction part is truncated)

What is wrong? int x = 5 / 2.0;

range increases

byte, short, int, long, float, double

40
Casting in an Augmented Expression

In Java, an augmented expression of the form x1 op= x2 is implemented as x1 =


(T)(x1 op x2), where T is the type for x1. Therefore, the following code is
correct.
int sum = 0;
sum += 4.5; // sum becomes 4 after this statement

sum += 4.5 is equivalent to sum = (int)(sum + 4.5).

41
Problem:
Computing Loan Payments
This program lets the user enter the interest
rate, number of years, and loan amount, and
computes monthly payment and total payment.
Loan Amount=1200
Rate of interest=10%
Time=1 Year
loanAmount  monthlyInterestRate
monthlyPayment 
1 1
(1  monthlyInterestRate ) numberOfYe ars12
• Use the Pythagorean theorem to find the length of the hypotenuse
given the lengths of the two opposing sides x = 3; y = 4.
• Compute the distance to a lightning strike whose sound takes 7.2
seconds to reach you. Light speed=1100
• Compute the number of cubic inches in 1 cubic mile.

43
Common Errors and Pitfalls

 Common Error 1: Undeclared/Uninitialized


Variables and Unused Variables
 Common Error 2: Integer Overflow
 Common Error 3: Round-off Errors
 Common Error 4: Unintended Integer Division
 Common Error 5: Redundant Input Objects

 Common Pitfall 1: Redundant Input Objects


44
Common Error 1: Undeclared/Uninitialized
Variables and Unused Variables

double interestRate = 0.05;


double interest = interestrate * 45;

45
Common Error 2: Integer Overflow

int value = 2147483647 + 1;


// value will actually be -2147483648

46
Common Error 3: Round-off Errors

System.out.println(1.0 - 0.1 - 0.1 - 0.1 - 0.1 - 0.1);

System.out.println(1.0 - 0.9);

47
Common Error 4: Unintended Integer Division

int number1 = 1; int number1 = 1;


int number2 = 2; int number2 = 2;
double average = (number1 + number2) / 2; double average = (number1 + number2) / 2.0;
System.out.println(average); System.out.println(average);

(a) (b)

48

You might also like