0% found this document useful (0 votes)
50 views

Programming With C++ - Lecture3

This document discusses fundamental data types in C++ including numerical and floating point types. It covers integer types like bool, char, short, int, long and their ranges. Floating point types include float, double, long double. Arithmetic, increment, decrement and composite assignment operators for performing calculations are described. Type conversion between integer and floating point types and issues like overflow and rounding errors are also summarized. The document explains variable scope and block nesting in C++ programs.

Uploaded by

Abdul baseer
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
50 views

Programming With C++ - Lecture3

This document discusses fundamental data types in C++ including numerical and floating point types. It covers integer types like bool, char, short, int, long and their ranges. Floating point types include float, double, long double. Arithmetic, increment, decrement and composite assignment operators for performing calculations are described. Type conversion between integer and floating point types and issues like overflow and rounding errors are also summarized. The document explains variable scope and block nesting in C++ programs.

Uploaded by

Abdul baseer
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

1

Programming with C++

Lecture 3: Fundamental Data types


Sikander Naseem
2

Numerical Data Types


 Integer data types is used  Integral type
for discreet numbers with • Boolean Type (bool)
no decimal or fractional • Enummeration Type (enum)
part. • Char Type (char, unsigned
char, wchar_t)
 Floating point data types
• Integer type (short, int,
can store floating point long, unsigned short,
numbers having decimal unsigned int, unsigned
part. long)
 So why not using Floating  Floating-point type
point types for almost all • float
data types? • Double
• long double
3

Integral type
 Boolean type
• Can have one of the two variables “true” or “false”
• The values are stored as integers 0 and 1 (binary)
• Declared by bool
int main()
{// Prints the values of a boolean variable
bool b=false;
cout <<"the value of b ="<<b<<endl;
b=true;
cout <<"the value of b ="<<b;
}
4

Integral type
 Character type
• Character type “char” is and integral type which represents the
letters like “A”, digits like “4”. Should be enclose with ( ‘ ).
• The character are stored as integers of their repective ASCII code,
though they appears as letters “A” and digits “4”.
int main()
{// Prints the ASCII code for the characters
char c1='A', c2='a', c3='\t', c4=':';
cout <<"c1 =" <<c1<<" with ASCII code = "<<int(c1)<<endl;
cout <<"c2 =" <<c2<<" with ASCII code = "<<int(c2)<<endl;
cout <<"c3 =" <<c3<<" with ASCII code = "<<int(c3)<<endl;
cout <<"c4 =" <<c4<<" with ASCII code = "<<int(c4)<<endl;
}
5

Integral type
 Integeral type
 short, Type Name Bytes Range of Values
 int, bool 1 false or true
 long, char 1 –128 to 127 by
 unsigned short, default
 unsigned int, short 2 –32,768 to 32,767
 unsigned long unsigned short 2 0 to 65,535
int 4 –2,147,483,648 to
2,147,483,647
unsigned int 4 0 to 4,294,967,295
long 4 –2,147,483,648 to
2,147,483,647
unsigned long 4 0 to 4,294,967,295
6

Arithmetic operators
 To perform numerical calculation C++ uses
arithmetic operators such as +,-,*,/ and % (modulus
or remainder operator)

 A simple numerical calculation program.


7

Increment and Decrement Operators


 Integral object’s values can be incremented or
decremented with operators ++ and – respectively
 “Pre” version e.g. ++i, and “post” version e.g. i++
int main()
{int m,n;
m=44;
n=++m; //Using "pre" version increment
cout<<"m ="<<m<<" and n="<<n<<endl;
m=44;
n=m++; //Using "post" version increment
cout<<"m ="<<m<<" and n="<<n<<endl;
}
8

Composite assignment operator


 standard assignment operator =
 In addition C++ has the following composite
assignment operators +=,-=,*=,/= and %=
 Each applies the indicated operator to the varialble
9

Composite assignment operator


int main()
{int m=22;
cout<<"m ="<<m<<endl;
m += 8; //adds 8 to m
cout<<"after m += 8, m= "<<m<<endl;
m /= 3; //divide m with 3
cout <<"after m /= 3, m= "<<m<<endl;
m %= 7; //converts m to reminder after diving by 7
cout <<"after m %= 7, m= "<<m<<endl;
}
10

Floating-point type
 Floating-point type
• float
• double
• long double
 Use to store floating-point numerical values.
Type Name Bytes Range of Values
float 4 3.4E +/- 38 (7 digits)
double 8 1.7E +/- 308 (15 digits)
long double same as double Same as double
11

Floating-point type
 All of the above programs for athematic operators,
increment and decrement operators, and
composite assignment operators can be use for
floating-point types also.
 Floating-point types can be use for storing discreet
numerical values, but….
 Using the right and sufficient type of data is
storage space and access time efficient.
12

Type conversion and truncation


 In C++ “lower types” such as int are converted
(promoted) automatically to “higher type” such as
float

int main()
{int m = 10;
float f=3.1443;
f += m; // m is converted to 22.0
cout<<"f ="<<f<<endl;
f +=2; // 2 is converted to 2.0
cout <<"f ="<<f<<endl;
}
13

Type conversion and truncation


 But conversion from “higher types” such as float
to “lower type” such as int is not automatic.
 This will remove the decimal part (truncation) and
the process is called type casting
int main()
{
float f=120.67;
int m = int(f); // m get the discreet part of f
cout<<"f ="<<f<<endl;
cout <<"m ="<<m<<endl;
}
14

Numerical overflow
 The space allocated to a data type is limited
 Exceeding the space limit will cause numerical
overflow error
 Example
15

Round off error


 The rounding off occurs in the decimal point part of a
numerical value after calculation
 For instance number 1/3 maybe stored as 0.333333
which is no equal to 1/3.
 This round off error accumulates in the next
calculations
 E.g. solving quadratic equations. The roots will not
have the exact value.
 It is best not use floating point types for equality
comparison in decision making.
16

The Scientific format


 Scientific format (E-format) can be used to input
very small floating point number or very large
numbers.
 The display can output the values in both format
depending on the output value size.
 Example
17

Scope, internal blocks and nesting


 { } represents a block and the beging and end of its
scope
 There can internal blocks inside another block.
This process is called nesting
int main()
{ //main function block scope starts here

{//internal function block scope starts here

}//internal function block scope ends here

}//main function block scope ends here


18

Scope, internal blocks and nesting


 The scope for instance for variables is the range in which they can
identified by compilers and use.
 The scope of the variable starts from the point of declaration to the
end of the {}.
int main()
{ //main function block scope starts here
int x =22;
{//internal function block scope starts here
int x=12;
cout<<"Value of x in internal block ="<<x<<endl;
}//internal function block scope ends here
cout<<"Value of x in main() ="<<x<<endl;
}//main function block scope ends here
19

The End

Thanks for coming

Reference book:
Programming with C++, SCHAUM’s outlines, John Hubbard,
3rd/2nd Edition, McGraw Hill, New Delhi

You might also like