You are on page 1of 43

UNIT TWO

DATA TYPES AND VARIABLES

1
Data Types and Values
 A program can use several data to solve a given problem,
for example, characters, integers, or floating-point
numbers.
 Since a computer uses different methods for processing
and saving data, the data type must be known. The type
defines:
1. The internal representation of the data
2. The amount of memory to allocate.
 A number such as 1000 can be stored in either 2 or 4 bytes.
 When accessing the part of memory in which the number
is stored, it is important to read the correct number of
bytes.
 Moreover, the memory content, that is the bit sequence
being read, must be interpreted correctly as a signed
2
integer.
 The type of data element is a characteristic
restricting it to a particular range of possible
values
 The basic data types available in C++ are
1. int
2. float
3. char
4. bool
 Integer data type can be further modified as:
 int
 unsigned int
 short
 unsigned short 3
 unsigned long
 C++ data types is summarized in the following table with its
corresponding storage size and value of range.

(2 byte)
(2 byte)

(4 byte)

(4 byte)

(4 byte)

(4 byte)
(4 byte)
(8 byte)

1 Byte
2 byte

1 byte
4
1. Integer Data Type
 The int type stores integer number values .
 The length for int type is either two or four bytes on most
computers.
 Integer data have valued that can be used for counting.
 Variables of type int take on positive and negative integer
values
 The integer type data can be further categorized as
 int, short, unsigned short
 long, unsigned long
 The short data type can hold only whole numbers.
 It can’t be used to store a number with a fractional part.
 The short int type is used to store integer numbers with5
a
range of -32767 to +32767.
 The “unsigned short is the unsigned version of the short
data type,”
 “Unsigned means that the data type is incapable of storing
a negative number,”.
 The unsigned int can have only positive integers only and
up to 65536
 “As a result of that, it’s storage capacity is just about twice
that of the short data type: 0 to 65,535.”
 The long int type is used to store an integer value that has
a range which is larger than a regular integer within a
range of -2,147,483,647(231-1) to+ 2,147,483,647
 In the original C++ compilers, an int data type was
implemented using 16 bits of memory, and its storage range
was correspondingly smaller.
 However, most modern C++ compilers implement the int
6
using 32 bits of memory—the same as for a long.
2. Floating –Point Data Types
 The data of float type stores numbers that have a decimal
place.
 The float type has at lest 6 –digits of precision.
 The decimal point can occur anywhere within the 6 digits.
 Note: In general, use integers to count things, use floating-
point for measurement, fractions and approximations.
 If the accuracy obtained using a variable of the type float
is insufficient for the purpose at hand, it can be declared
instead to be of the type double.
 This is very similar to the type float, except that it provides
about twice the number of significant digits for the result.
 The exact number of significant digits varies from system
to system, but usually if a float variable has seven digits, a
7
double variable has 16 to 17.
 Numbers of the type float and double are treated
identically by the system in terms of calculations
 As a matter of fact, all floating point numbers are
converted in to double values automatically before they
are used in any operation.
 Using the type float saves memory, however, because a
float variable takes up only half as much space as a
double.
 To display a double value, the format characters %f (for
standard floating point notation) or %e(for scientific or
exponential notation) are used just as with type float.
 Most of the time, we use the relatively small, and
therefore less precise, float data type only for rough
approximation, to save space in large calculations, and
when accuracy isn’t too important.
8
Activity
1. Write C++ program to implement int, short int, unsigned,
and long data types and run each of the program and
observe its differences by considering the output that you
get from each of the program.
2. Write C++ program to implement the float and double
data types and indicate the difference between these two
types of data by considering the output of the program

9
3. Char Data Type
 Character data are defined in C++ by the char data type.
 char data type can be of two types:
1. character strings
2. char data type of single character
 character strings are simply collections of single characters.
 A character string may contain a single character or up to 256
characters.
 Character strings are always enclosed by double quotation marks.
Example
 char data type ‘a’ refers to a character constant, but “a” refers to a
character string.
 The char type can hold a one byte binary number, a single alpha
numeric or special Character or have each but have its own
individual value.
 The range for a binary number in char type is -127 to +127. 10
C++ Example of char Data types
#include<iostream.h>
// program 1 to illustrate use or char data type
main()
{
char ltr_1='C',
ltr_2=' ',
ltr_3='i',
ltr_4='s',
ltr_5=' ',
ltr_6='g',
ltr_7='r',
ltr_8='e',
ltr_9='a',
ltr_10='t',
ltr_11='!';
The out put of this program is
cout<<"\n"<<ltr_1<<ltr_2<<ltr_3<<ltr_4<<ltr_5<<ltr_6<<ltr_7<<ltr_8<<ltr_9<<ltr_10<<ltr_11;

}
C is great!

11
 In program we have used comma, between all the ten char type data
10 that all constant of char type are declared in one statement only .
 Although each one of them are written in different lines but that
does not make any difference.
1. Write C++ Program to display the following output
I Love ETHIOPIA!
Program 2 C++ Example of char data type
# include<iostream.h> //Program to demonstrate Character variable
void main()
{
char charvar1='A'; // define Char Variable as Character
char charvar2='\t'; // define Char Variable as tab
cout<<charvar1; // display Character
cout<<charvar2; //Display the tab character
charvar1= 'B'; // set Char variable to char Constant
cout<<charvar1; // display Character
}
12
Exercise
1. Write C++ program to display the following output
using char data type and character strings:
A) C D E F

B) Her Unearth Beauty Blinded me that

I can’t see and appreciate the beauty of others


 Leave a line between the output of the above two
statements.

C) P R O G R A M

13
4. Bool Data Type
 Arithmetic expressions evaluate to numeric values; a Boolean
expression, sometimes called a predicate, evaluates to true or false.
 While Boolean expressions may appear very limited on the surface,
they are essential for building more interesting and useful
programs.
 C++ supports the non-numeric data type bool, which stands for
Boolean.
 The term Boolean comes from the name of the British
mathematician George Boole.
 A branch of discrete mathematics called Boolean algebra is
dedicated to the study of the properties and the manipulation of
logical expressions.
 Compared to the numeric types, the bool type is very simple in that it
can represent only two values: true or false.
 Look the following C++ program to implement the Boolean data
type: 14
#include<iostream.h>
#include<conio.h>
int main () {
clrscr ();
int b,n;
b=10;
cout<<"enter the number n :";
cin>>n;
if(b==n){
cout<<"This is executed."<<endl; }
else {
cout<<"This is not executed."<<endl;
}
// outcome of a relational operator is a boolean value
cout<<"b>n is "<<(b>n)<<endl;
cout<<"b<n is "<<(b<n);
return 0;
} 15
 The Boolean values false and true are represented as
integer 0 and integer 1 respectively.
 More precisely, zero represents the bool value false, and
any non-zero integer (positive or negative) means true.
 The direct assignment to a bool variable of an integer
other than 0 or 1 may result in a warning (Visual C++
reports truncation of ’int’ to ’bool’), but the variable is
still interpreted as true.
 The data type bool is basically a convenience for
programmers; any C++ program that uses bool variables
can be rewritten using integers instead to achieve the
same results.
 While Boolean values and variables are freely compatible
and interchangeable with integers, the bool type is
convenient and should be used when the context involves16
truth values instead of numbers.
Size of Integers
 On any one computer, each variable type takes up a
single, unchanging amount of room.
 That is, an integer might be two bytes on one machine,
and four on another, but on either computer it is always
the same, day in and day out.
 A char variable (used to hold characters) is most often
one byte long.
 A short integer is two bytes on most computers, a long
integer is usually four bytes, and an integer (without the
keyword short or long) can be two or four bytes.
 The following C++ program should help you determine
the exact size of these types on your computer.
17
//Determining the size of variable types on your computer.
#include <iostream.h>
#include <conio.h>
int main()
{
clrscr ();
cout<<"The size of an int is:\t\t"<< sizeof(int)<<"bytes \n";
cout<<"The size of a short int is:\t" << sizeof(short)<<"
bytes.\n";
cout<<"The size of a long int is:\t"<< sizeof(long)<<" bytes.\n";
cout<<"The size of a char is:\t\t"<< sizeof(char)<<" bytes.\n";
cout<<"The size of a float is:\t\t"<< sizeof(float)<< " bytes.\n";
cout<<"The size of a double is:\t"<< sizeof(double)<<"
bytes.\n";
return 0;
} 18
Constants (Literals)
 Sometimes an unchanging value is used through out a
program.
 Such a quantity is called a constant.
 For instance, if a program deals with the area and
circumference of circles, the constant value pi(=2.14159)
would be used frequently.
 In financial program, interest rate might be a constant.
 If the constant is given a descriptive name:
i) It improves the readability of a program
ii)prevent errors
 Constants always have definite values but they may or may
not have named.
 Constants of all type can be broadly categorized as:
1. Literal constant like 2.14159 or
19
2. Symbolic constant like pie, interest_rate
1. A constant that is identified only by value is called a literal constant.
 You include literal constant in program statements by writing their
values.
For example, 137.45 identifies an integer constant with the indicated
value (in decimal)
A literal constant may appear anywhere in C++ program and will
always be correctly interpreted.
2. A constant that is identified by name is called symbolic constant.
In C++ , the word “ const” is used and is applied to normal variable
declarations such as;
const int MAX=100;
The int MAX=100; portion is formatted exactly the same way as a
normal declaration
The word const in front of it simply defines that the variable MAX can
not be subsequently changed.
 Note:- A constant is declared by writing constant before the keyword 20
(e.g.int,long, float) in the declaration.
Example
const int num;……………………………………1)
const int time; ………….........................................(2)
const int num, time; ……………………………..(3)
const int num=9, time =15;………………………(4)
const float dist =7.0;…………………………….(5)
float distance =0.0, velocity;…………………….(6)
 First two lines contain examples of constant declaration of int
type but without assigning their values.
 These constants are num and time
 We could include them in one statement as shown in third line.
 In fourth line attempt has been made to declare the data type with
its value assigned therein
 Line 5 and 6 are example of float type declaration for constant dist
and distance and the value of velocity not initialized. 21
Example
 Let’s see the following C++ program to implement
constants(Literals):
#include<iostream.h>
main ()
{
const int MAX=100;
cout<<"MAX="<<MAX<<endl;
int z, y;
z=(MAX)*2;
cout<<"Z="<<z<<endl;
y=(MAX)*3+10;
cout<<"Y="<<y;
} 22
Working with Escape Characters
 You cannot express characters such as quotation marks
(“) and line breaks literally in a string.
 If you include a quotation mark as part of a string, the
compiler will think that the quotation mark indicates the
end of the string.
 For example, to create a string quoting someone, you
might write "He said, "This is a quote".“
 However, the compiler will interpret this as two separate
strings, “He said, “ and “This is a quote.”
 Because the words This is a quote are assumed to be non-
strings, you wind up with a syntax error.
 A similar problem occurs with line breaks.
 All strings must be contained on a single line, so if you
try to place a line break in the middle of a string, you get
a syntax error. 23
 Fortunately, there is a solution to problems like these.
 The solution is to use escape characters.
 Escape characters (or meta-characters) are a set of
characters used to represent characters that cannot be
expressed literally.
 To create an escape character, you combine a backslash
(\) and the particular character.
 For example, the escape character for a quotation mark
is \”. Here’s what it looks like in the code:
 "He said, \"This is a quote\"." This code produces the
desired string.
 If you were to output this string, He said, “This is a
quote”, would be displayed on screen.
 Look at the following C++ program to implement escape
characters to print the following output: 24
Example
He said, "This is a quote".n
“This displays on one line, and this on the next”.
“The new line Character is ”.
“She said “I Love ” in replay to Hirut’s Question.”
/*program to implement escape character to represent
characters that cannot be expressed literally*/
#include<iostream.h>
main () {
cout<<"He said, \"This is a quote\".n" "\n";
cout<<"\"This displays on one line, and this on the next\".\n";
cout<<"\"The new line Character is \".\n";
cout<<"\"She said \"I Love\"in replay to Hirut’s Question \".";
} 25
 The following table shows the common Escape
characters used in C++ language.
Name Usage

‘\n’ Line feed, new line( LF in ASCII)

‘\t’ Horizontal Tab (HT in ASCII)

‘\b’ Backspace (BS in ASCII)

‘\\’ The backslash character

\’ The Single quote character

\” The Double quote character


26
The Concept of a Variable
 A variable is a place to store a piece of information .
 Variables are a way of accessing your computers
memory.
 A computers memory can change over time, if you tell
it too.
 Since variables are your access point to your
computer’s memory, it makes sense that you would be
able to change information in a computer’s memory,
otherwise, they wouldn’t be called variables (they
would be called statics).
 Why should you care about variable?
 Because variables are the essence of any computer
program, without variables computers would be
27
useless.
 Variables always have names.
 In C++, variables must be declared before it
used in the program.
 A declaration statement identifies the, variables
name and associated it with a data type.
 When a name of variable appears in any other
C++ statement; that means for the computer
either to use or to set the current value.
 Variables generally do not have predictable
values until a program has assigned them.
 Declaration statements, must appear in a
program before variable names are used in any
other way. 28
Declaring Variables
 Let’s say you want to declare a variable of type int called
myAge.
 This is to say, the variable myAge will store an integer.
 In C++, this is written:
int myAge;
 This declaration tells the computer that you plan to use
an integer, and that the integers name is myAge.
 Note: Sometimes variables will be initialized to 0, that is,
a variable’s initial value will be zero.
 This is not true in C++:
i) Sometimes variables will be initialized to 0.
ii) But sometimes they will be initialized with garbage.
 As you might anticipate, this can cause some nasty bugs.
29
Example :Program1.
#include<iostream.h>
//program to illustrate variable Declatation and variable
//initialized with garbage or nasty bugs
int main() {
int myAge;
cout<<”myAge is”<<“ “<<myAge<<endl;
return 0;
}
 The output of this program is unreliable.
 On one system you may get output of “myAge is 11”,
 In another system may output “myAge is 0” ;
 Yet another system may output “myAge is 18125”.
 That’s what it means to have a variable initialized with
garbage. 30
 Note: It is always a good idea to initialize your variables
with some value.
 If you don’t know what a variables, initial value should
be, initialize it to 0.
 Let fix the above program. So that it always output
“myAge is 22”.
 The first line of the main function initializes myAge by
assigning it a value immediately.
//Program1 to illustrate initialization of a variable
#include<iostream.h>
int main()
{
int myAge=22;
cout<<"myAge is"<<" "<<myAge<<endl;
return 0;
} 31
Rules for Naming variables
1. Variable names must begins with a letter of the Roman
alphabet.
 The underscore character(_), is considered as a letter.
 It is legal to start a variable name with the underscore
character.
2. The first character may be followed by a sequence of letters
and/or digits(0 through 9).
3. The compiler regards uppercase and lowercase letters as
different, although both may be used in constructing
variable names.
 Therefore the variable names NET and net are regarded as
two separate variables.
 Usually, however, variable names are entirely declared in
lowercase. 32
4. No variable name may be a keyword.
 The rule means we cannot give a variable a reserved
name such as int.
5. No special characters such as a blank space, period,
semicolon, comma, or slash, are permitted in variable
names.
 But, remember that, the underscore (_) is not
considered as a special characters.
6. Variable names are “case sensitive” (i.e.; the variable
“myNumber” is different from the variable
“MYNUMBER” which is different from the variable
“mYnUmBeR”.

33
 The following are some invalid variable named.
 The reason why each is invalid is written besides the
name.
Variable Why it is invalid?
char Keyword

4then Begins with a numeric character


% loss Begins with special character.

month. Contains period

bad name Contains a space.


34
Variable Declarations of Variables of Built-in Data Type.
 All variables must be declared before use although
certain declaration can be made implicitly by context.
 Syntax: data_type var_name1, var_name2,………..;
 A declaration specifies a type, and contains a list of one
of more variables of that type, as in
int top, bottom, step;
char c, set [50];
 The following are valid variable declarations:
char middle_initial, union_code;
int num_dependents;
float reg_hours, ot_hours, rate_of_pay;
double gross_pay, net_pay;

35
 The following are invalid variable declarations.
 Integer num_dependents; // invalid data type should be int
….. reg_hours, ot_hours; //No data type given.
Double gross_ pay, net_pay; //Invalid data Type, should be
all lower case.
char union; // Invalid variable name, union is a reserved
word.
char ‘a’, // Placed comma instead of;
 Variables can be distributed among declarations in any
fashion, as given bellow.
int top, bottom;
int bottom;
int step;
char c;
char set [50]; 36
 A variables may also be initialized in its declaration.
 If the name is followed by an equals sign and an expression,
the expression serves as an initialize, as in
float eps=2.0e-5;
char esc= ‘\\’;
int i=0;
int limit=MAXLINE +1;
Rules for Declaring variables
 Declaration of a variable actually reserves a place in memory for its
storage
 The size of the place reserved in memory is determined by the data
type specified in the declaration.
 All variables must be declared before used in statement.
 Declarations must be placed at the beginning of block
 You may specify more than one variable of the some type by listing
37
them separated with commas
//Example:- Programs to illustrate variable declaration in one line
#include<iostreams.h>
main() {
int yard, foot, inch;
cout<<"Enter next lenth";
cin>>yard;
while(yard >=0) {
foot = 3*yard;
inch=36*yard;
cout<<"\n"<<yard;
cout<<"\n"<<foot;
cout<<"\n"<<inch;
cout<<"\n”"<<"Enter next length";
cin >> yard;
}
cout<<"\n"<<"***END OF PROGRAM***\n";
}
38
Initialization of Variables
 When declaring a local variable, its value is
undetermined by default.
 But you may want a variable to store a concrete value
the moment that it is declared.
 In order to do that, you have to append an equal sign
followed by the value wanted to the variable declaration.
Syntax
type identifier = initial_ value;
 For example if we want to declare an int variable called
a that contains the value 0 at the moment in which it is
declared, we could write int a=0;

39
 C++ has added a new way to initialize variable:
 By enclosing the initial value between parenthesis ();
Syntax
type identifier (intial_value);
Example : int a (0);
 Both the above two ways are valid and equivalent in C++
Scope of variables
 In C++ can declare variables any where in the source
code, even between two executable sentences, and not
only at the beginning of a block of instructions.
 Observe the following C++ Program.

40
#include<iostream.h>
int Integer;
char Character; Global variables
char string [20];
unsigned int NumberOfSons;
main ()
{
unsigned short Age;
float Number, AnotherOne; Local Variables

cout<<‘Enter your age: “;


cin>>Age;
Instruction
cout<<"Age="<<Age;
}
41
 Global variables can be referred to any where in the code,
within any function, whenever it is after its declaration.
 The scope of the local variables is limited to the code level
in which they are declared.
 If they are declared at the begging of a function (like in
main ) their scope is the whole main function.
 In the example above, this means that if another function
existed in addition to main(), the local variables declared in
main could not be used in the other function and vice
versa.
 In C++ the scope of a local variable is given by the block in
which it is declared (a block is a group of instructions
grouped together with in curly brackets{} signs).
 If it is declared within a function it will be a variable with
function scope. 42
 if it is declared in a loop its scope will be only the loop etc.
 In addition to local and global scopes there exists external
scope, that causes a variable to be visible not only in the
same source file but in all other files that will be linked
together
//1. Observe the following program and determine its output.
#include<iostream.h>
main()
{
int x;
x=65;
cout<< x<<endl;
x= 90;
cout<<endl<<x;
}
43

You might also like