Document Sample
Programming Powered By Docstoc
					                                           Session 6 
                                         Iteration [while] 

Learning Objects: After completing this session you will be able to generate a code block 
which can re‐execute itself till your provided conditions remains true or valid using while 

while loop works in the same manner as of for loop. It repeats the code block or statement 
attached to it till the condition is true. The while is best used when the loop will repeat as 
unknown number of times.  

Example program 1: 

       int password=234; 

       int user_input=0; 

       while ( user_input != password) 


                cout << “Wrong password! Try again: “; 

                cin >> user_input; 



while ( user_input != password)  statement is the head of while loop in which condition is 
given. The loop will continue to execute till the value placed  in  user_input is not equal to 
value placed in password variable. Thus for any value in  user_input which is not equal to 
234 will initiate another cycle for execution for this  while loop. In the code block we have 
placed  a  user  message  stating  “Wrong  password!  Try  again:  and  then  it  asks  for  another 

The whole code can be used at the start of any program for protection from unlawful access 
to program.  

Example program 2: 

       cout << “Enter any number (or 0 to quit): “; 

       int number; 

            Computer Programming Lab Manual FALL‐2011, Iqra University:,    16 
                                           Instructor’s Web Address: 
       cin >> number; 

       while (number != 0) 


                cout << “\nSquare of “ << number << “ is “ << number*number; 

                cout << “Enter any number (or 0 to quit) “; 

                cin >> number; 



The program prints the square of number input by the user. The while loop is used to allow 
any number of computational cycle in a single run of the program. The condition (number 
!= 0) uses the variable number to control the loop. Its value is changed inside the loop by 
means of an input statement i.e cin >> number;. A variable which is used this way is called a 
loop control variable. The loop will only terminate when number becomes 0. 














            Computer Programming Lab Manual FALL‐2011, Iqra University:,    17 
                                           Instructor’s Web Address: 
                                        Programming Tasks 
Task 6.1:  

Convert the following for loop into while loop. 

        for (int z=1; z<=10; z++) 

                 cout << z‐5 << “ “; 

Task 6.2: 

Generate a code which input a single lower case alphabet and then display its upper case. 
The  program  should  terminate  only  if  Esc  (Escape)  key  is  pressed.  (Hint:  Consult  ASCII  code 

Task 6.3: 

Using  while  and  switch  statements  implement  a  solution  for  sound  generation.  Use  the 
following frequency table for your reference.  

                                    Key          Frequency 
                                    A            261 
                                    S            293 
                                    D            329 
                                    F            349 
                                    G            392 
                                    H            440 
                                    J            493 
Use  getch,  sound,  delay  and  nosound  functions  to  produce  sound  through  PC’s  internal 
speaker.  The program should generate the sound frequency 261 with a delay of 500 when 
ever  ‘a’  is  pressed  (as  mentioned  in  table).  The  program  should  terminate  whenever  q  is 






             Computer Programming Lab Manual FALL‐2011, Iqra University:,    18 
                                            Instructor’s Web Address: 
                                              Session 7 
                            Iteration [Arrays, Input/ Output, Array Arithmetic] 

Learning Objects: After completing this session you will be able to create array of any valid 
data  type,  take  input  and  output  from  array  and  perform  mathematical  function  on  data 
present in array. 

Arrays  are  collection  of  variables  with  a  common  name  and  data  type.  They  are  helpful 
when there is a need of storing huge number of similar type of data items. A simple array to 
store 5 variables of type integer can be created by using the following statement. 

        int data [5] ; 

Here data is a common name for all five variables which we have created using this single 
statement.  The  first  variable  will  be  data[0],  second  will  be  data[1],  third  will  be  data[2], 
fourth will be data[3] and fifth will be data[4]. Remember that index for any array in C++ 
starts from 0 that’s why first element or variable of data array is data[0].  

In the same manner we can create array for characters (which is also known as string, we 
will discuss string later on) and float or any other valid data types of C++.   

Following example illustrates the anatomy of character array. 

        char my_text [10]; 

The  statement  has  created  an  array  of  type  character.  The  starting  element  will  be 
my_text[0].  In  only  character  array,  the  last  element  of  array  is  reserved  for  NULL  value 
which  indicates  the  termination  of  string.  Thus  we  are  left  with  9  elements  to  store  our 
data as 10th element will automatically have NULL value. The input / output for character 
array will be discussed later on when we will study strings. 

 Example program 1: 

        int id[3]; 

        float height[3]; 

        for (int count =0 ; count < 3 ; count ++) 


                 cout << “Enter id: “; 

                 cin >> id[count]; 

             Computer Programming Lab Manual FALL‐2011, Iqra University:,    19 
                                            Instructor’s Web Address: 
                 cout << “Enter age: “; 

                 cin >> age[count]; 



int  id[3];  and  float  height[3];  will  create  two  arrays  of  type  integer  and  float  with  id  and 
height as respective common names. We are using a for loop which executes three time and 
cleverly using the count variable used in  for  loop as an index locator for both arrays. For 
example, on its first execution cycle count will be zero thus the statement cin >> id[count]; 
will  be  cin  >>  id[0];  and  cin  >>  age[count];  will  be  executed  as  cin  >>  age[0];.  In  next 
iteration count will become 1 thus cin >> id[count];  will be executed as cin >> id[1] and  cin 
>> age[count]; will be executed as cin >> age[1]; so on and so forth.  

We can take manual input as will in array. For example  

        float salary[100]; 

        cin >> salary [59];   //this will take input for 60th variable in array salary 

We can apply any mathematical operation on array elements. For example 

        float marks[5]; 

        float sum=marks[0]+marks[1];             //Store the result of marks[0]+marks[1] in sum 

        float temp=marks[4]/50;          //Divide marks[4]’s data by 50 and store result in temp 

To further enlighten you regarding array and how it store value in memory the following 
diagram will be helpful. Lets say 

        int X[5]={10,5,6,8,234};         //Hardcoded 5 values into array X 

Memory Snap Shoot: 
        Other variables/ programs 
                         X[0]  X[1]  X[2]  X[3]  X[4]  Other variables/program
        |~~~~~~~~~~~~~~  10    5     6     8     234  ~~~~~~~~~~~~~~|

Remember that array element is always placed next to previous element. So int X[5]; will 
occupy 10 consecutive bytes in computer memory (i.e 2 bytes for each variable and there 
are 5 variables in this array) 

             Computer Programming Lab Manual FALL‐2011, Iqra University:,    20 
                                            Instructor’s Web Address: 
                                     Programming Tasks 

Task 7.1: 

State, how many bytes will be occupied in memory against following statements. 

   a) int data[37]; 
   b) float temperature[96]; 
   c) char my_name [25]; 
Task 7.2: 

Construct the shape of memory for each of the following statements. 

    a) int height[5]= { 34, 67, 231, 654, 22}; 
    b) float x[3] = {43.6, 55.9, ‐23.5}; 
    c) char name[4]=”C++”; 

Task 7.3: 

Write a program which inputs the stock value for 5 companies listed in stock exchange and 
then prints the highest stock value on screen? 

Task 7.4: 

Write a program which reserves the seats of an aircraft. Assume that aircraft has 10 seats 
and seat number starts from 1. At the beginning all unoccupied seats should be initialized 
to 0 i.e seat[0]=0, seat [1]=0, seat[2]=0 so on and so forth. If a seat is reserved then that seat 
should  be  assigned  a  value  1.  For  example  if  a  traveler  want  to  occupy  seat  no  8  then 
seat[7]=1. Any negative value entered by user should display the total number of allocated 
and free seats.  







             Computer Programming Lab Manual FALL‐2011, Iqra University:,    21 
                                            Instructor’s Web Address: 
                                               Session 8 
                                     Function, Prototype, Call, Definition 

Learning  Objects:  After  completing  this  session  you  will  be  able  to  write  your  own 
function  prototype,  call  and  definition.  You  will  also  learn  the  concept  of  parameter  and 

A  function  is  a  subroutine  that  contains  one  or  more  C++  statements  and  performs  a 
specific task. Every program that we have written so far has used one function i.e main(). 
Functions are building blocks of C++ because a program is a collection of functions. All of 
the action statements are found within function. 

The general form of a function is shown here. 

        return_type function_name (parameter_list) 




The  return_type  specify  the  data  returned  by  function,  this  can  be  any  valid  type  but  an 
array.  function_name  could  be  any  legal  name  which  is  not  already  in  use.  The 
parameter_list is list of data type which a function will receive from any other function as a 
form of argument. 

A function prototype declares the function prior to its definition. The prototype allows the 
compiler  to  know  the  function’s  return  type,  as  well  as  the  number  and  type  of  any 
parameters that the function may have. The compiler needs to know this information prior 
to the first time the function is called. Remember, main function does not have a prototype. 

The following statements show you some variations for addition function prototypes. 

        a)   void addition (void); 
        b)   void addition (float, float); 
        c)   float addition (void); 
        d)   float addition (float, float); 

The part a is a type of function prototype which does not receive any argument and does 
not  return  any  value  to  calling  function.  The  part  b  is  a  type  of  function  prototype  which 
takes two float arguments on which it will perform addition and it does not return any data 
to calling function. Part c is a type of function prototype which does not takes any argument 
             Computer Programming Lab Manual FALL‐2011, Iqra University:,    22 
                                            Instructor’s Web Address: 
but do return float value to calling function. Part d is a function prototype which takes two 
arguments and returns the result to calling function. Now consider the following program. 

Example program 1: 

        float addition (float, float);          //prototype of function 

        void main () 


                 cout << addition (3.5, 4.5);  //function call   


        float addition (float a, float b)       //function definition 


                 return a+b;                    //returns the result of a+b to calling function 



The  function  prototype  which  tells  the  compiler  that  addition  function  will  receive  two 
arguments in function call (i.e 3.5 and 4.5) and both arguments will be of type float and it 
will return a float value.  

The  function  definition  states  the  actual  working  of  function  which  in  this  case  is  to  add 
two  float values which are passed by value into variable a and b (i.e 3.5 will be passed to a 
while 4.5 will be passed into b). The return statement will add a and b and return the value 
which is of course a float value to calling function i.e main(). 

The function call is where we are calling a function with two float arguments 3.5 and 4.5. 
The arguments can be any float value hard coded or soft coded. cout statement will receive 
the  return  value  from  function  which  in  this  case  is  8.0  i.e  3.5+4.5=8.0.  A  function  call 
transfer the program control to function’s definition and return transfers the control back 
to calling location. 

Example program 2: 

        void addition (void);           //prototype of function 

        void main () 

             Computer Programming Lab Manual FALL‐2011, Iqra University:,    23 
                                            Instructor’s Web Address: 

                addition ();  //function call   


       void addition (void)  //function definition 


                float x,y; 

                cin >> x >> y; 

                cout << x+y;   



It’s a variation of addition function in which we have avoided using parameters and return 
type. In this way we have to take input within the boundary of function definition and show 
the result using cout in the same boundary.   













            Computer Programming Lab Manual FALL‐2011, Iqra University:,    24 
                                           Instructor’s Web Address: 
                                     Programming Tasks 

Task 8.1: 

Write four different function prototypes for subtract, multiply and division functions each 
with appropriate return type and parameter list. 

Task 8.2: 

Write  definitions  for  addition,  subtraction,  multiply  and  division  function  prototypes  you 
have created in task 8.1. 

Task 8.3: 

Write a function which takes length (integer) and element (character) to construct a line. 
For example if length is 5 and element is + then the function should generate a line like  


The function will have two arguments of type int and char with void return value. Call the 
function in main. 

Task 8.4: 

Construct a calculator program. Use switch statement for selection among mathematical 
operations. Use functions to perform the mathematical function. Take help from task 8.1 
and 8.2. 










             Computer Programming Lab Manual FALL‐2011, Iqra University:,    25 
                                            Instructor’s Web Address: 
                                             Session 9 

Learning  Objects:  After  completing  this  session  you  will  be  able  to  actually  see  the 
memory  addresses  of  different  variable  along  with  access  to  them  using  pointers  and 
perform pointer arithmetic.  

Pointer is a special type of variable which is used to store memory address. We can fetch 
actual  memory  address  of  any  variable  using  “address  of”  operator  i.e  &  and  place  it  in 
appropriate pointer variable. For example 

        int data=10; 

        cout << &data; 

The statement cout << &data; will fetch the address of variable from memory and display it 
on screen. If in memory  
                                  data  Other programs or free memory 
                  Other programs or free memory
                  |~~~~~~~~~~~~~~ 10    ~~~~~~~~~~~~~~| 

Then  the  output  will  be  the  address  of  data which  is  FFF4.  C++  place  0x  before  any  hexa 
decimal value to distinguish it from a text. So you will see 0xFFF4 on screen.  

Now  If  we  want  to  store  the  address  of  data  into  variable  for  later  use  then  we  need  a 
pointer of same data type i.e integer. This is how we do it 

        int data = 10; 

        int *pointer;           //pointer of type integer 

        pointer = &data;        //address of data placed in pointer 

        cout << pointer;        //print the contents of pointer i.e FFF4 

As you have observed that a pointer is created with a * (asterisk, pronounced asturisk). Once 
a pointer is created we can assign it any memory address. Later on if we want to see the 
contents of pointer we just have to write cout << pointer_name;  

Now if we want to see the contents of memory address which is stored in pointer then we 
have to use the statement cout << *pointer_name; For example 

           Computer Programming Lab Manual FALL‐2011, Iqra University:,    26 
                                          Instructor’s Web Address: 

        int data = 10; 

        int *pointer;              //pointer of type integer 

        pointer = &data;           //address of data placed in pointer 

        cout << pointer;           //print the contents of pointer i.e FFF4 

        cout << *pointer            //prints the contents of memory location FFF4 which is 10 

We can increment or decrement in a pointer like a normal variable. Only four arithmetic 
operators that can be used on pointer are ++,‐‐, + and ‐. Now have a look on the following 

        int data=30; 

        int state=45; 

        int *p=&data; 

        cout << p << “ “ << *p << endl; 


        cout << p << “ “ << *p; 


The memory map of above mentioned code would be like 
                                FFF4  FFF2 
                Other programs or free memory
                                data  State                     Other programs or free memory 
                |~~~~~~~~~~~~~~ 10    45                        ~~~~~~~~~~~~~~| 

Please note that there no guarantee that data and state variables occupy adjacent memory 
location.  However  in  a  simple  program  like  the  one  stated  above  it  is  possible.  In  only 
arrays variables are placed next to each other. 

The  3rd  statement  will  create  a  pointer  p  which  is  assigned  a  value  of  data  (i.e  FFF4).  4th 
statement will show 0xFFF4  10 on screen. Now if we use p‐‐; statement the pointer will be 
subtracted by two (remember integer is of two bytes) thus now pointing to FFF2. The last 
statement in this way will produce an output 0xFFF2  45. 

            Computer Programming Lab Manual FALL‐2011, Iqra University:,    27 
                                           Instructor’s Web Address: 
Note that memory start building from bottom to up. As you see first variable is at FFF4 and 
the next variable is at FFF2.  

It is worth mentioning that pointer will increase or decrease by the length of its base type.  




















          Computer Programming Lab Manual FALL‐2011, Iqra University:,    28 
                                         Instructor’s Web Address: 
                                     Programming Tasks 

Task 9.1: 

Use  pointers  to  find  out  the  size  of  memory  occupied  by  char,  int  and  float  in  your 
computer. [Hint: Use integer, char and float arrays]. 

Task 9.2: 

Using pointer, copy the contents of x and y into a and b. Assume 

       int a,x; 


       float y,b; 


Task 9.3: 

Multiply  two  variables  without  directly  accessing  them  and  then  store  the  result  in  third 
variable. Use pointers to implement the solution. 

Task 9.4: 

Create a wild pointer (a pointer which is not initialized). Try to see its contents. Write your 










             Computer Programming Lab Manual FALL‐2011, Iqra University:,    29 
                                            Instructor’s Web Address: 
                                  Session 10 
                        Surprise problem solving session 

                  Note: Problem(s) will be provided in the class 






















    Computer Programming Lab Manual FALL‐2011, Iqra University:,    30 
                                   Instructor’s Web Address: 

Shared By:
Tags: Pogramming