SlideShare a Scribd company logo
Fundamentals 2
1
Programs and Data
Most programs require the temporary storage of data. The
data to be processed is stored in a temporary storage in the
computer's memory: space memory.
A space memory has three characteristics
•Identifier
•Data Type
•State
2
Identifier
Identifier
is a sequence of characters that denotes the name of the space memory to be used.
•This name is unique within a program.
Identifier Rules
•It cannot begin with a digit (0 – 9).
•It may contain the letters a to z, A to Z, the digits 0 to 9, and the underscore
symbol, _.
•No spaces or punctuation, except the underscore symbol, _, are allowed.
Identifiers in Java are case-sensitive. Thus, the identifiers myNumber
and mynumber, are seen as two different identifiers by the compiler.
3
State
State
My be changed  variable
All lowercase.
Capitalizing the first letter of each word in a multiword identifier,
except for the first word.
Cannot be changed  constant
All uppercase, separating words within a multiword identifier with
the underscore symbol, _.
4
Data Type
Data Type
•The data type defines what kinds of values a space memory is allowed to
store.
•All values stored in the same space memory should be of the same data
type.
•All constants and variables used in a Java program must be defined prior to
their use in the program.
5
Java built-in Data Types
Java built-in Data Types
6
Constant or Variable
Numeric Character Boolean
Integer Floating-point
short
int
char String boolean
float
double
First Decision Level
Second Decision Level
Third Decision Level
Fourth Decision Level
long
byte
Primitive Data Types
Primitive Data Types
7
Type
Size
(bits)
Range Description
boolean true, false Stores a value that is either
true or false.
char 16 0 to 65535 Stores a single 16-bit
Unicode character.
byte 8 -128 to +127 Stores an integer.
short 16 -32768 to +32767 Stores an integer.
int 32 bits -2,147,483,648 to
+2,147,483,647
Stores an integer.
long 64 bits -9,223,372,036,854,775,808
to
+9,223,372,036,854,775,807
Stores an integer.
float 32 bits accurate to 8 significant digits Stores a single-precision
floating point number.
double 64 bits accurate to 16 significant digits Stores a double-precision
floating point number.
Variable/Constant Declaration
Variable/Constant Declaration
• When the declaration is made, memory space is
allocated to store the values of the declared
variable or constant.
• The declaration of a variable means allocating a
space memory which state (value) may change.
• The declaration of a constant means allocating a
space memory which state (value) cannot
change.
8
Constant Declaration
final dataType constIdentifier = literal | expression;
final int MAX = 1024;
final int MIN = 128;
final int AVG = (MAX + MIN) / 2;
9
These are called
literals.
This is called
expression.
Variable Declaration
Variable Declaration
• A variable may be declared:
– With initial value.
– Without initial value.
• Variable declaration with initial value;
dataType variableIdentifier = literal | expression;
double avg = 0.0;
int i = 1;
int x =5, y = 7, z = (x+y)*3;
• Variable declaration without initial value;
dataType variableIdentifier;
double avg;
int i;
10
More declaration examples
More declaration examples
• String declaration
– with initial value:
• String word="Apple";
– without initial value:
• String word;
• char declaration
– with initial value:
• char symbol ='*';
– without initial value:
• char symbol;
11
• Boolean declaration:
– with initial value:
• boolean flag=false;
• boolean valid=true;
– without initial value:
• boolean flag;
Exercises
Exercises
• A-Declare a variable of double type with initial value=0.0;
• B- Declare a constant of String type with initial value=“Good”
• C- Declare a variable of type string with initial value equals to
the value of constant in B.
• D-Is the following names are valid , why?
– Student name
– 1course
– course*name
12
Operators
• Operators are special symbols used for:
– mathematical functions
– assignment statements
– logical comparisons
• Examples of operators:
– 3 + 5 // uses + operator
– 14 + 5 – 4 * (5 – 3) // uses +, -, * operators
• Expressions: can be combinations of variables and
operators that result in a value
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 13
Groups of Operators
• There are 5 different groups of operators:
– Arithmetic Operators
– Assignment Operator
– Increment / Decrement Operators
– Relational Operators
– Logical Operators
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 14
Java Arithmetic Operators
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 15
Addition +
Subtraction –
Multiplication 
Division /
Remainder (modulus ) %
Assignment Operator =
Arithmetic Operators
• The following table summarizes the
arithmetic operators available in Java.
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 16
This is an integer division
where the fractional part
is truncated.
Example
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 17
Example of division issues:
10 / 3 gives 3
10.0 / 3 gives 3.33333
As we can see,
•if we divide two integers we get an integer
result.
•if one or both operands is a floating-point
value we get a floating-point result.
Modulus
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 18
Generates the remainder when you
divide two integer values.
5%3 gives 2 5%4 gives 1
5%5 gives0 5%10 gives 5
Modulus operator is most commonly used
with integer operands. If we attempt to
use the modulus operator on floating-point
values we will garbage!
Example: Sum of two integer
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 19
public class Sum {
// main method
public static void main( String args[] ){
int a, b, sum;
a = 20;
b = 10;
sum = a + b;
System.out.println(a + ” + ” + b + “ = “ + sum);
} // end main
} // end class Sum
Arithmetic/Assignment Operators
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 20
Java allows combining arithmetic and
assignment operators into a single operator
:
Addition/assignment
=+
Subtraction/assignment

=
Multiplication/assignment

=
Division/assignment
=/
Remainder/assignment
=%
Increment/Decrement Operators
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 21
Only use ++ or   when a variable is
being incremented/decremented as
a statement by itself.
x++; is equivalent to x = x+1;
x--; is equivalent to x = x-1;
Relational Operators
•
Relational operators compare two values
•
They Produce a boolean value (true or
false) depending on the relationship
Operation Is true when
a >b a is greater than b
a >=b a is greater than or equal to b
a ==b a is equal to b
a !=b a is not equal to b
a <=b a is less than or equal to b
a <b a is less than b
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 22
Example
• int x = 3;
• int y = 5;
• boolean result;
result = (x > y);
• now result is assigned the value false because
3 is not greater than 5
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 23
Logical Operators
Symbol Name
&&
AND
||
OR
!
NOT
|| T F
T T T
F T F
&& T F
T T F
F F F
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 24
Example
boolean x = true;
boolean y = false;
boolean result;
result = (x && y);
result is assigned the value false
result = ((x || y) && x);
(x || y) evaluates to true
(true && x) evaluates to true
result is then assigned the value true
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 25
Operators Precedence
Parentheses (), inside-out
Increment/decrement ++, --, from left to right
Multiplicative *, /, %, from left to right
Additive +, -, from left to right
Relational <, >, <=, >=, from left to right
Equality ==, !=, from left to right
Logical AND &&
Logical OR ||
Assignment =, +=, -=, *=, /=, %=
Introduction to OOP
Dr. S. GANNOUNI & Dr. A. TOUIR
Page 26
Standard Output Window
•
Using System.out, we can output multiple
lines of text to the standard output window
.
Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 27
• The exact style of standard output window
depends on the Java tool you use.
The println Method
•
We use println instead of print to skip a line
.
Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 28
int x = 123, y = x + x;
System.out.print( " x = “ );
System.out.println( x );
System.out.print( " x + x = “ );
System.out.println( y );
System.out.println( " THE END“ );
x = 123
x + x = 246
THE END
Standard Input
• To input primitive data values, we use the Scanner
class.
• 4 steps are needed to be able to use input primitive:
– Step 1: import the Scanner class:
• import Java.util.Scanner;
– Step 2 : declaring a reference variable of a Scanner
• Scanner read ; //we named the object read
– Step 3: creating an instance of the Scanner
• read = new Scanner (System.in);
– Step 4: use specific methods to enter data
• int x = read.nextInt();
Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 29
Example
Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 30
import java.util.Scanner;
public class TestInput {
public static void main(String[] args) {
Scanner input ;
int area ,length, width;
input = new Scanner (System.in); // creating an instance
System.out.println("enter the length ");
length = input.nextInt(); //reading the length from the keyboard
System.out.println("Enter the Width ");
width = input.nextInt(); //reading the width from the keyboard
area = length * width ;
System.out.println("the length is "+ length);
System.out.println("the width is "+ width);
System.out.println("the area is "+ area);
}
}
Output
enter the length
2
Enter the Width
3
the length is 2
the width is 3
the area is 6
Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 31
Common Scanner Methods
• Method Example
Scanner input = new Scanner (System.in);
nextByte( ) byte b = input.nextByte( );
nextDouble( ) double d = input.nextDouble( );
nextFloat( ) float f = input.nextFloat( );
nextInt( ) int i = input.nextInt( );
nextLong( ) long l = input.nextLong( );
nextShort( ) short s = input.nextShort( );
next() String str = input.next();
Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 32

More Related Content

PPTX
C++.pptx
PPTX
Chapter1.pptx
PPTX
03 and 04 .Operators, Expressions, working with the console and conditional s...
PPTX
ChapterTwoandThreefnfgncvdjhgjshgjdlahgjlhglj.pptx
ODP
OpenGurukul : Language : C Programming
PPT
c-programming
PPT
02basics
PDF
learn basic to advance C Programming Notes
C++.pptx
Chapter1.pptx
03 and 04 .Operators, Expressions, working with the console and conditional s...
ChapterTwoandThreefnfgncvdjhgjshgjdlahgjlhglj.pptx
OpenGurukul : Language : C Programming
c-programming
02basics
learn basic to advance C Programming Notes

Similar to lecture2 (1).ppt variable s and operators (20)

PPT
C program
PPT
Unit 1: Primitive Types - Variables and Datatypes
PPT
Java: Primitive Data Types
PPT
Basic concept of c++
PPTX
Structured Languages
PPTX
Fundamentals of computers - C Programming
PPTX
KMK1093 CHAPTER 2.kkkpptx KMK1093 CHAPTER 2.kkkpptx
PPTX
Java fundamentals
PPTX
PPSX
Esoft Metro Campus - Certificate in c / c++ programming
PDF
C intro
PPTX
C programming language
PDF
Chapter 01 Introduction to Java by Tushar B Kute
PPTX
Lecture 1 .
PPT
C operators
PPTX
JAVA CLASS PPT FOR ENGINEERING STUDENTS BBBBBBBBBBBBBBBBBBB
PPSX
Pointers
PPTX
PPTX
CSL101_Ch1.pptx
PPTX
CSL101_Ch1.pptx
C program
Unit 1: Primitive Types - Variables and Datatypes
Java: Primitive Data Types
Basic concept of c++
Structured Languages
Fundamentals of computers - C Programming
KMK1093 CHAPTER 2.kkkpptx KMK1093 CHAPTER 2.kkkpptx
Java fundamentals
Esoft Metro Campus - Certificate in c / c++ programming
C intro
C programming language
Chapter 01 Introduction to Java by Tushar B Kute
Lecture 1 .
C operators
JAVA CLASS PPT FOR ENGINEERING STUDENTS BBBBBBBBBBBBBBBBBBB
Pointers
CSL101_Ch1.pptx
CSL101_Ch1.pptx
Ad

Recently uploaded (20)

PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
Approach and Philosophy of On baking technology
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Encapsulation theory and applications.pdf
PDF
Electronic commerce courselecture one. Pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
cuic standard and advanced reporting.pdf
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
MIND Revenue Release Quarter 2 2025 Press Release
Approach and Philosophy of On baking technology
Machine learning based COVID-19 study performance prediction
Encapsulation_ Review paper, used for researhc scholars
Dropbox Q2 2025 Financial Results & Investor Presentation
“AI and Expert System Decision Support & Business Intelligence Systems”
Encapsulation theory and applications.pdf
Electronic commerce courselecture one. Pdf
Unlocking AI with Model Context Protocol (MCP)
Assigned Numbers - 2025 - Bluetooth® Document
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
MYSQL Presentation for SQL database connectivity
cuic standard and advanced reporting.pdf
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Chapter 3 Spatial Domain Image Processing.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Programs and apps: productivity, graphics, security and other tools
Spectral efficient network and resource selection model in 5G networks
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Ad

lecture2 (1).ppt variable s and operators

  • 2. Programs and Data Most programs require the temporary storage of data. The data to be processed is stored in a temporary storage in the computer's memory: space memory. A space memory has three characteristics •Identifier •Data Type •State 2
  • 3. Identifier Identifier is a sequence of characters that denotes the name of the space memory to be used. •This name is unique within a program. Identifier Rules •It cannot begin with a digit (0 – 9). •It may contain the letters a to z, A to Z, the digits 0 to 9, and the underscore symbol, _. •No spaces or punctuation, except the underscore symbol, _, are allowed. Identifiers in Java are case-sensitive. Thus, the identifiers myNumber and mynumber, are seen as two different identifiers by the compiler. 3
  • 4. State State My be changed  variable All lowercase. Capitalizing the first letter of each word in a multiword identifier, except for the first word. Cannot be changed  constant All uppercase, separating words within a multiword identifier with the underscore symbol, _. 4
  • 5. Data Type Data Type •The data type defines what kinds of values a space memory is allowed to store. •All values stored in the same space memory should be of the same data type. •All constants and variables used in a Java program must be defined prior to their use in the program. 5
  • 6. Java built-in Data Types Java built-in Data Types 6 Constant or Variable Numeric Character Boolean Integer Floating-point short int char String boolean float double First Decision Level Second Decision Level Third Decision Level Fourth Decision Level long byte
  • 7. Primitive Data Types Primitive Data Types 7 Type Size (bits) Range Description boolean true, false Stores a value that is either true or false. char 16 0 to 65535 Stores a single 16-bit Unicode character. byte 8 -128 to +127 Stores an integer. short 16 -32768 to +32767 Stores an integer. int 32 bits -2,147,483,648 to +2,147,483,647 Stores an integer. long 64 bits -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 Stores an integer. float 32 bits accurate to 8 significant digits Stores a single-precision floating point number. double 64 bits accurate to 16 significant digits Stores a double-precision floating point number.
  • 8. Variable/Constant Declaration Variable/Constant Declaration • When the declaration is made, memory space is allocated to store the values of the declared variable or constant. • The declaration of a variable means allocating a space memory which state (value) may change. • The declaration of a constant means allocating a space memory which state (value) cannot change. 8
  • 9. Constant Declaration final dataType constIdentifier = literal | expression; final int MAX = 1024; final int MIN = 128; final int AVG = (MAX + MIN) / 2; 9 These are called literals. This is called expression.
  • 10. Variable Declaration Variable Declaration • A variable may be declared: – With initial value. – Without initial value. • Variable declaration with initial value; dataType variableIdentifier = literal | expression; double avg = 0.0; int i = 1; int x =5, y = 7, z = (x+y)*3; • Variable declaration without initial value; dataType variableIdentifier; double avg; int i; 10
  • 11. More declaration examples More declaration examples • String declaration – with initial value: • String word="Apple"; – without initial value: • String word; • char declaration – with initial value: • char symbol ='*'; – without initial value: • char symbol; 11 • Boolean declaration: – with initial value: • boolean flag=false; • boolean valid=true; – without initial value: • boolean flag;
  • 12. Exercises Exercises • A-Declare a variable of double type with initial value=0.0; • B- Declare a constant of String type with initial value=“Good” • C- Declare a variable of type string with initial value equals to the value of constant in B. • D-Is the following names are valid , why? – Student name – 1course – course*name 12
  • 13. Operators • Operators are special symbols used for: – mathematical functions – assignment statements – logical comparisons • Examples of operators: – 3 + 5 // uses + operator – 14 + 5 – 4 * (5 – 3) // uses +, -, * operators • Expressions: can be combinations of variables and operators that result in a value Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 13
  • 14. Groups of Operators • There are 5 different groups of operators: – Arithmetic Operators – Assignment Operator – Increment / Decrement Operators – Relational Operators – Logical Operators Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 14
  • 15. Java Arithmetic Operators Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 15 Addition + Subtraction – Multiplication  Division / Remainder (modulus ) % Assignment Operator =
  • 16. Arithmetic Operators • The following table summarizes the arithmetic operators available in Java. Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 16 This is an integer division where the fractional part is truncated.
  • 17. Example Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 17 Example of division issues: 10 / 3 gives 3 10.0 / 3 gives 3.33333 As we can see, •if we divide two integers we get an integer result. •if one or both operands is a floating-point value we get a floating-point result.
  • 18. Modulus Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 18 Generates the remainder when you divide two integer values. 5%3 gives 2 5%4 gives 1 5%5 gives0 5%10 gives 5 Modulus operator is most commonly used with integer operands. If we attempt to use the modulus operator on floating-point values we will garbage!
  • 19. Example: Sum of two integer Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 19 public class Sum { // main method public static void main( String args[] ){ int a, b, sum; a = 20; b = 10; sum = a + b; System.out.println(a + ” + ” + b + “ = “ + sum); } // end main } // end class Sum
  • 20. Arithmetic/Assignment Operators Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 20 Java allows combining arithmetic and assignment operators into a single operator : Addition/assignment =+ Subtraction/assignment  = Multiplication/assignment  = Division/assignment =/ Remainder/assignment =%
  • 21. Increment/Decrement Operators Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 21 Only use ++ or   when a variable is being incremented/decremented as a statement by itself. x++; is equivalent to x = x+1; x--; is equivalent to x = x-1;
  • 22. Relational Operators • Relational operators compare two values • They Produce a boolean value (true or false) depending on the relationship Operation Is true when a >b a is greater than b a >=b a is greater than or equal to b a ==b a is equal to b a !=b a is not equal to b a <=b a is less than or equal to b a <b a is less than b Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 22
  • 23. Example • int x = 3; • int y = 5; • boolean result; result = (x > y); • now result is assigned the value false because 3 is not greater than 5 Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 23
  • 24. Logical Operators Symbol Name && AND || OR ! NOT || T F T T T F T F && T F T T F F F F Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 24
  • 25. Example boolean x = true; boolean y = false; boolean result; result = (x && y); result is assigned the value false result = ((x || y) && x); (x || y) evaluates to true (true && x) evaluates to true result is then assigned the value true Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 25
  • 26. Operators Precedence Parentheses (), inside-out Increment/decrement ++, --, from left to right Multiplicative *, /, %, from left to right Additive +, -, from left to right Relational <, >, <=, >=, from left to right Equality ==, !=, from left to right Logical AND && Logical OR || Assignment =, +=, -=, *=, /=, %= Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 26
  • 27. Standard Output Window • Using System.out, we can output multiple lines of text to the standard output window . Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 27 • The exact style of standard output window depends on the Java tool you use.
  • 28. The println Method • We use println instead of print to skip a line . Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 28 int x = 123, y = x + x; System.out.print( " x = “ ); System.out.println( x ); System.out.print( " x + x = “ ); System.out.println( y ); System.out.println( " THE END“ ); x = 123 x + x = 246 THE END
  • 29. Standard Input • To input primitive data values, we use the Scanner class. • 4 steps are needed to be able to use input primitive: – Step 1: import the Scanner class: • import Java.util.Scanner; – Step 2 : declaring a reference variable of a Scanner • Scanner read ; //we named the object read – Step 3: creating an instance of the Scanner • read = new Scanner (System.in); – Step 4: use specific methods to enter data • int x = read.nextInt(); Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 29
  • 30. Example Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 30 import java.util.Scanner; public class TestInput { public static void main(String[] args) { Scanner input ; int area ,length, width; input = new Scanner (System.in); // creating an instance System.out.println("enter the length "); length = input.nextInt(); //reading the length from the keyboard System.out.println("Enter the Width "); width = input.nextInt(); //reading the width from the keyboard area = length * width ; System.out.println("the length is "+ length); System.out.println("the width is "+ width); System.out.println("the area is "+ area); } }
  • 31. Output enter the length 2 Enter the Width 3 the length is 2 the width is 3 the area is 6 Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 31
  • 32. Common Scanner Methods • Method Example Scanner input = new Scanner (System.in); nextByte( ) byte b = input.nextByte( ); nextDouble( ) double d = input.nextDouble( ); nextFloat( ) float f = input.nextFloat( ); nextInt( ) int i = input.nextInt( ); nextLong( ) long l = input.nextLong( ); nextShort( ) short s = input.nextShort( ); next() String str = input.next(); Introduction to OOP Dr. S. GANNOUNI & Dr. A. TOUIR Page 32