Introduction To C++
Programming Language
LECTURE
What is C++
C++ is a high-level language and it
is evolved from C over a period of
several years starting in 1980.
The standard for C++ was jointly
developed by the American National
Standards Institute (ANSI) and the
International Standards Organization
(ISO).
a set of rules, symbols, and special
words used to construct a computer
Structure of a C++ Program
Figure 3.1 Structure of a C++ Program
A Typical C++ Program
// A typical C++ Program
Comment
# include <header files> Preprocessor Directive
using namespace std;
# define PI 3.142
int Integer;
Global Declaration
int main ( )
{
Local declaration
double radius, area;
radius = 7; Main
area = radius * radius * PI; Statements function
return 0;
}
Character Set
C++ is composed of character set :
Number : 0 to 9
Alphabetical : a to z and A to Z
Spacing
Special Character :
, . : ; ? ! ( ) {} “ ‘ + - * / = > < # % & ^ ~ | / _
Token
Token : combination of the characters in C++
Categorised into:
Identifiers
Reserved words/keywords
Constants
Literal String
Punctuators
Operators
Identifiers
Allows programmers to name data and other objects in the
program-variable, constant, function etc.
Can use any capital letter A through Z, lowercase letters a
through z, digits 0 through 9 and also underscore ( _ )
Rules for identifier
The first character must be alphabetic character or
underscore
It must consists only of alphabetic characters, digits and
underscores, cannot contain spaces
It cannot duplicate any reserved word
C++ is case-sensitive; this means that CASE, Case, case,
and CaSe are four completely different words.
Valid and Invalid Identifiers
Valid names Invalid names
A $sum // $ is illegal
student_name 2names // can’t start with
_aSystemNam 2
e stdnt Nmbr // can’t have
pi space
al int // reserved word
stdntNm
_anthrSysNm
PI
Reserved word/Keywords
A word that has special meaning in
C++.
Keywords cannot be used to name
identifiers.
Constant
Data values that cannot be changed
during the execution of a program
Types of constant:
Literals constant
Defined constants
Declared constants
Literals Constant
If the data cannot be changed, we can simply code
the data value itself in a statement
Eg: discount = 0.10 ;
0.10 is a literal
Categorised into: constant
Integer Numerals ( eg: 178, -9, 0113, 0x4b)
Floating-Point Numerals (eg: 3.14159,6.02e23,1.6e-19 ,3.0
Characters ( eg: ‘A’, ‘p’)
Strings ( eg; “Hello World”)
Boolean (eg: true , false).
Defined Constant (#define)
Use the #define preprocessor directive
Format: #define identifier value
Eg : #define EPF_RATE 0.11
Placed at the beginning of the program
#include <header files>
using namespace std;
#define EPF_RATE 3.142
int main()
{
……;
nett = salary – ( salary * EPF_RATE);
………;
}
Declared Constants
se a type const qualifier to indicate that data
cannot be changed and to fix the contents of
the memory location
g: const float
#include <headerpi = 3.1416;
files>
using namespace std;
#define EPF_RATE 3.142
eclared inside a function
int main()
{
const double socso_rate = 0.05;
nett = salary – ( salary * EPF_RATE * socso_rate);
………;
}
Data Types in C++
Type defines a set of value and operations
that can be applied on those values
Set of values for each type is known as the
domain for the type
Functions also have types which is
determined by the data it returns
Data Types
Standard
They serves as the basic building blocks for derived
types (complex structures that are built using the
standard types
Serves as the basic building blocks for derived types
Data Types
Derived
Data Type : Void
Typed as void
Has no values and operations
Both set of values are empty
Usually used in functions
Eg: void printSum()
Data Type : Char
Used to hold characters or very small
integer values
Usually 1 byte of memory
CODE:
char letter;
letter = 'C';
Data Type : Integer
Coded as int
A number without a fraction part
C++ supports three different sizes of
integer
short int
int
long int
Can be signed and unsigned
Data Type : Integer
Type Byte Size Minimum Maximum Value
Value
short int 2 -32,768 32,767
unsigned short int 2 0 65,535
int 4 -2,147,483,648 2,147,483,647
unsigned int 4 0 4,294,967,295
long int 4 -2,147,483,648 2,147,483,647
unsigned long int 4 0 4,294,967,295
Data Type : Float
A number with fractional part such as 43.32, - 2.33
C++ supports three types of float
float
double
long float
Stored in a form similar to scientific notation
Can be represented in
Fixed point (decimal) notation:
31.4159 0.0000625
E notation:
3.14159E1 6.25e-5
Data Type Float
Are double by default
Can be forced to be float (3.14159f) or
long double (0.0000625L)
All floating-point numbers are signed
Type Byte Size Precision Range
float 4 7 10-37 ..1038
double 8 15 10-307 ..10308
long double 8 15 10-307 ..10308
Data Type : Boolean
Represents values that are true or false
bool variables are stored as small integers
false is represented by 0, true by 1:
bool allDone = true;
bool finished = false;
allDone finished
0
Variables
A storage location in memory whose contents can change while
program is running
Has an identifier and a type of data it can hold
Variable declaration syntax :
type identifier [= initial_value]
eg : int itemsOrdered;
To hold the number of items
A variable name should represent the purpose of the variable.
ordered.
Variables
Variables Initialization
To initialize a variable means to assign it
a value when it is declared:
int length = 12;
Can initialize some or all variables:
int length = 12, width = 5, area;
Variables Assignment
An assignment statement uses the = operator to
store a value in a variable.
item = 12;
This statement assigns the value 12 to the item
variable.
The variable receiving the value must appear on
the left side of the = operator.
This will NOT work:
// ERROR!
12 = item;
Variables Scope
The scope of a variable: the part of the program
in which the variable can be accessed
A variable cannot be used before it is defined
Variables Scope
Global Variables
Local Variable
Local Variable
Variables Scope
Global scope
a global variable is a variable declared in the main
body of the source code, outside all functions
Global variables can be referred from anywhere in the
code, even inside functions, whenever it is after its
declaration.
Local Scope
a local variable is one declared within the body of a
function or a block.
is limited to the block enclosed in braces ({}) where
they are declared.
Operators
C ++ uses a set of built in operators ( Eg : +,
-, / etc).
Four classes of operators :
Arithmetic
Relational
Logical
Assignment
Arithmetic Operators
Assume int a=4, b= 5, d;
C++ Arithmetic C++ Value of d
Operation Operator Expression after
assignment
Addition + d=a+b 9
Substraction - d=b-2 3
Multiplication * d=a*b 20
Division / d = a/2 2
Modulus % d = b%3 2
Assignment Operators
Assume x=4, y=5, z=8;
Assignment Sample Similar Value of variable
Operator Expression Expression after assignment
+= x += 5 x=x+5 x=9
-= y -= x y=y-x y=1
*= x *= z x = x*z x=32
/= z /=2 z = z/2 z=4
%= y %=x y = y%x y=1
Relational & Equality
Operators
Assume y = 6, x =5
Relational Operators Sample Expression Value
> y>x T
< y<2 F
>= x >= 3 T
<= y <= x F
Equality Operators Sample Expression Value
== x == 5 T
!= y !=6 F
Logical Operators
Logical Operators Called Sample Operation
&& AND expression1 && expression 2
|| OR expression1 | | expression2
! NOT !expression
Example :Assume int x = 50
expression !expression Sample Expression
F T !(x == 60)
T F !(x != 60)
Logical Operators
Assume x=4, y=5, z=8
expression1 expression2 expression1 && Sample Expression
expression2
F F F ( y > 10) && ( z <=x )
F T F ( z <= y) && ( x == 4)
T F F ( y != z) && ( z < x )
T T T ( z >= y ) && ( x != 3 )
Increment and Decrement
Operators
Operator Called Sample Similar Explanation
Expression Expression
++ preincrement ++a a = a +1 Increment a by 1, then use
the new value of a in
a += 1 expression in which a reside
++ postincrement a++ a = a +1 Use the current value of a in
the expression which a
a += 1 reside, then increment a by
1
-- predecrement --a a = a -1 Decrement a by 1, then use
the new value of a in
a -= 1 expression in which a reside
-- postdecrement a-- a = a -1 Use the current value of a in
the expression which a
a -= 1 reside, then decrement a by
1
Operator Precedence
Operators Associative
() Left to right
++ - - + - ! Right to left
* / % Left to right
+ - Left to right
< <= > >= Left to right
= = != Left to right
&& Left to right
|| Left to right
*= += - = /= %= Right to left
Operator Precedence
Example 1: Example 2:
int a=10, b=20, c=15, d=8; int a=15, b=6, c=5, d=4;
a*b/(-c*31%13)*d d *= ++b – a/3 + c
1. a*b/(-15*31%13)*d 1. d *= ++b – a/3+ c
2. a*b/(-465%13)*d 2. d*=7- a/3+c
3. a*b/(-10)*d 3. d*=7- 5+c
4. 200/(-10)*d 4. d*=2 + c
5. -20*d 5. d*= 7
6. -160 6. d = d*7
7. d = 28
Example of a program
// Operating with variables
#include <iostream>
using namespace std;
int main()
{
//variables declaration
int no1;
int no2; Output :
int value_div;
int value_mod; Enter two integral numbers : 10 6
10 / 6 is 1 with a remainder of 4
cout << “Enter two integral numbers:”;
cin >> no1 >> no2;
value_div= no1 / no2;
cout << no1 << “ / ” << no2 << “ is ” <<
value_div;
value_mod = no1 % no2;
cout << “ with a remainder of ” <<
value_mod
<< endl;
return 0;
}
/*Evaluate two complex expression*/
#include <iostream>
using namespace std;
void main ( )
{
int a =3, b=4, c = 5, x, y;
cout << “Initial values of the variables:\n”;
cout << “a = “ << a<< “ b = “ << b <<“ c = “ Output :
<< c<< endl; Initial values of the variables :
cout << endl; a=3 b=4 c= 5
x = a * 4 + b / 2 – c * b;
cout << “Value of a * 4 + b/2-c * b is : “ Value of a * 4 + b/2-c * b is : -6
Value of - - a * (3 + b) / 2 – c++ * b is: -13
<< x << endl;
y = - - a * (3 + b) / 2 – c++ * b; Values of the variables are now :
cout << “Value of - - a * (3 + b) / 2 – c++ * b is: “ a=2 b=4 c= 6
<< y << endl;
cout << “a = “ << a << “ b = “ << b << “ c = “
<< c << endl;
}
Formatting Output
Output is made more readable using
manipulator
Must include <iomanip> header file.
Manipulators Use
endl New line
dec Formats output as decimal
oct Formats output as octal
hex Formats output as hexadecimal
fixed Set floating-point decimals
showpoint Shows decimal in floating-point values
setw(…) Sets width of output fields
setprecision Specifies number of decimals for floating point
setfill(…) Specifies fill character
Formatting Output
Set Width (setw)
Set the minimum width for an output
Two alignment : right justified and left
justified
Set Fill Character (setfill)
If the output width is greater than the data
values placed in it, a fill character can be
used to fill the empty spaces whenever
required
Formatting Output
Three integer manipulators:
Decimal (dec)
The default
Value in decimal form
Octal (oct)
Values are displayed in octal numbering system
Hexadecimal (hex)
Values are in hexadecimal format
Formatting Output
Three Floating-point manipulators:
Fixed (fixed)
Displays floating-point numbers (eg:
1.234568e+6) in the fixed-point format
(1234567.875)
Set precision (setprecision)
Used to control the number of the decimal
places to be displayed
Showpoint (showpoint)
To show value with the decimal point
//demonstrate the output manipulator
#include <iostream>
#include <iomanip>
using namespace std;
int main( )
{
char aChar;
int integer;
float dlrAmnt;
Output :
cout << “Please enter an integer ,\n”; Please enter an integer,
<< “ a dollar amount and a character.\n”; a dollar amount and a
character.
cin >> integer>>dlrAmnt >> aChar;
12 123.45 G
cout <<“\nThank you.You entered:\n”;
Thank you. You entered:
cout << setw( 6 ) << integer << “ “
12 $****123.45 G
<< setfill(‘*’) << setprecision (2) << fixed
<< ‘$’ << setw(10) << dlrAmnt
<< setfill(‘ ‘) << setw( 3 ) <<aChar << endl;
46
}
THANK YOU!