9.3.14

Compound Data Types: Arrays in C++

  Arrays

Before reading this tutorial, you should have knowledge of loop statements.

An array is a collection of several data items of the same data type. It consists of several contiguous memory locations storing data. It removes the cumbersome task of defining separate variables for each data item. A single variable can be used to store one or more data items. For example, if you want to store ages of 10 students of a class, you can easily declare an array of integer type of size 10 instead of declaring 10 variables of integer type each storing age of a student. The general form of the single dimension array is:-

type variable_name[size];

The type is the base type of the array and which is the type of each of the element of the array. The size is the no of the elements in the array. The variable_name is the name of the identifier holding the array. For example,

int age [10];

The age is an array of type integer whose size is 10. It can hold 10 data values. The specific element in the array  can be accessed using an index. An index is the offset from the first element of the array. For example, first element has an index of 0 while the third element has an index of 2. The integer age has elements from age[0] to age[9]. Here is a program which illustrates the working of arrays.
#include<iostream>
using namespacestd


#include<iostream>
using namespace std;
int main ()
{
           int age[10];
           int i,sum=0, avg=0;
           int max=0,min=100;
            for(i=0;i<10;i++)
            {
                       cout << "Enter the age of the student  " << i+1 <<endl;
                       cin >> age[i];
             }
            for(i=0;i<10;i++)
            {
                        sum=sum+age[i];
                        if(age[i]>max)
                        {
                                    max=age[i];
                        }
                        if(age[i]<min)
                        {
                                    min=age[i];
                        }
            }
            avg=sum/10;
            cout << "Average age of the students of the class : " << avg << endl;
            cout << "Maximum age of the student of the class : " << max << endl;
            cout << "Minimum age of the student of the class : " << min << endl;
            return(0);
}

The result of the program is:-


In the program the array is declared by the statement

            int age[10];

age is the identifier of the array which is of type integer and whose size is 10. In the for loop user is asked to enter the age of the student, the age is stored in the element of the array by the statement
                       
            cin >> age[i];

here i is the index of the array. The index starts from 0.  In the next for loop, average age, minimum age and maximum age of the students is calculated. Each element is accessed by index i. The sum of the elements of the array is calculated by the statement
            sum=sum+age[i];

age[i] is the (i+1)th element of the array. The maximum age is calculated by the if statement
                        if(max>age[i])
                        {
                                    max=age[i];
                        }
The minimum age is calculated by the another if statement
                       
                        if(min<age[i])
                        {
                                    min=age[i];      
                        }
The average is calculated by the statement

                        avg=sum/10;

The total no bytes used to store an array is equal to
                        Total bytes=size of(base type)×size of array.

Initializing Arrays

The arrays can be initialized by giving the initial values in a list and enclosed in curly brackets, which is placed after the equal sign which is put after the declaration of the array. For example,
           
            int age[5]={12,13,10,24,15};

elements of the array have values 12, 13, 10, 24, 15. The elements age[0] has value 12 and age[4] will have 15.  If the elements of the array are not initialized then they take some garbage value before they are assigned to some specified value. There is also another way of initializing all the elements of the array to be zero. For example,

            int age[5]={0};

will initialize all the elements of the array age to be zero. If you want some of the elements to be initialized with specific value and rest of the values to be zero then here is an example.
                       
            int age[5]={12,13};

The elements age[0] and age[1] will be initialized to 12 and 13 respectively and rest of the elements will be initialized to zero.


Null Terminated Strings
 
The most common use of one dimensional array is for character strings.  The null terminated string is a character array with a null character at the end. The characters form the string with a null character indicating the termination of the string. A null terminated string can be declared as

            char name[10];

it will hold 10 characters with a null at the end. The size of the array can be more than the length of the array. The array can be initialized as

            char name[10]={'j','e','s','u','s'};

The first 5 elements are initialized and rest elements are null characters. Here is a program which calculates the length of the string.

#include<iostream>
using namespace std;

int main()
{
            char name[15];
            int i=0;
            cout << " Enter your name " << endl;
            cin >> name;
            while(name[i]!='\0')
            {
                        i++;
            }
            cout << "Lenght of the name is : " << i << endl;
            return(0);
}

The result of the program is


The character array is declared by the statement

            char name[15];

The length of the name can be at most 15.  The arrays is assigned by taking the input from the user by the statements
                       
            cout << " Enter your name " << endl;
            cin >> name

Variable name is assigned the string entered by the user.  Each element of the array is referenced and checked whether it is null or not by the statement
                       
while(name[i]!='\0')

Until a null character is not encountered variable i is incremented by the statement
           
i++;

When a null character is encountered while loop is terminated and length is printed by the statement

            cout << "Length of the name is : " << i << endl;

 
Multidimensional Arrays
 
The multidimensional arrays are arrays of arrays. The general form of a multidimensional array is: -
            type variable_name[Size1][Size2]..[Size n];

The two dimensional array can be declared as

            int age[2][5];

this array has two rows and 5 columns. The three dimensional array can be declared as

            int age[2][3][5];

When an element of the array of n dimensional is referenced it uses n index values. For example first element of a two dimensional array declared above is referred as age[0][0] as the index starts from zero and last element is referred as age[1][4]. Here is a program which calculates the average of the elements of the row of the two dimensional array.

#include<iostream>
using namespace std;

int main ()
{
            int age[2][5]= { {12,13,14,15,15}, { 12,16,17,13,12}};
            int i,j;
            int sum=0,avg=0;
            for(i=0;i<2;i++)
            {
                        for(j=0;j<5;j++)
                        {
                                    sum=sum+age[i][j];
                        }
                        avg=sum/5;
                        cout << "Average of the elements of the row " << i+1  << " is " << avg << endl;
                        sum=0;
            }
            return(0);
}

The result of the program is: -


The program initializes and declares the two dimensional array by the statement

            int age[2][5]= { {12,13,14,15,15}, { 12,16,17,13,12}};

Elements of the first row and second row are initialized as {12,13,14,15,15} and
{ 12,16,17,13,12}  respectively. The elements are accessed using the statement as

            sum=sum+age[i][j];

age[i][j] refers to the element of row i and column j. This statement calculates the sum of the elements of the row.  After the sum of the elements of a row is calculated then average is calculated by the statement.
           
avg=sum/5;

sum is again initialized to zero. Then again the same process repeats for the second row.

After an introduction of arrays, let us move on to discuss pointers.

9 comments:

  1. //Name : Sumonto Kumer Ghosh
    //ID : 201410848
    //Batch : 45 th
    //Write a program performing as calculator which allows all Arithmetic Operators with operand
    #include
    using namespace std;
    class square
    {
    public:
    int height;
    int width;
    int area();

    };
    int square::area()
    {
    return height*width;
    }

    int main()
    {

    square obj;
    obj.height = 20;
    obj.width = 10;
    cout<<"Area = "<<obj.area()<<endl;

    return 0;

    }

    ReplyDelete
  2. //Name : Sumonto Kumer Ghosh
    //ID : 201410848
    //Batch : 45 th
    //calculate square and cube of given number using inline function
    C++ program using class to calculate square and cube of given number using inline function

    #include
    class power
    {
    public:
    inline int square(int n)
    {
    -----------------------------
    -----------------------------
    }
    inline int cube(int n)
    {
    -----------------------------
    -----------------------------
    }

    };
    void main()
    {
    -------------------------------
    -------------------------------
    }

    ReplyDelete
  3. //Name : Sumonto Kumer Ghosh
    //ID : 201410848
    //Batch : 45 th
    #include
    #include
    class line
    {
    public:
    inline float multi(float c,float d)
    {
    return(c*d);
    }
    inline float cube(float c)
    {
    return(c*c*c);
    }
    };
    void main()
    {
    line obj;
    float c1,d1;
    clrscr();
    cout<<"\n Enter Two Value ";
    cin>>c1>>d1;
    cout<<" Multiplication is :"<<obj.multi(c1,d1)<<endl;
    cout<<" Cube of val1 is :"<<obj.cube(c1)<<endl;
    cout<<" Cube of val2 is :"<<obj.cube(d1)<<endl;
    getch();
    }

    ReplyDelete
  4. //Name : Sumonto Kumer Ghosh
    //ID : 201410848
    //Batch : 45 th
    //C++ program to calculate simple interest amount use default value for rate
    Write a C++ program using class to calculate simple interest amount use default value for rate.

    #include
    using namespace std;
    main()
    {
    float SI=0,p,t,r;
    cin>>p>>t>>r;
    SI=((p*t*r)/100);
    cout<
    using namespace std;
    float interest(float q,float s,float r);
    main()
    {
    float q,,r,SI=0;
    cin>>q>>s>>r;
    interest(q,s,r);
    }
    float interest(float x,float y,float z)
    {
    float SI;
    SI=((x*y*z)/100);
    cout<<SI;
    }

    ReplyDelete
  5. //Name : Sumonto Kumer Ghosh
    //ID : 201410848
    //Batch : 45 th
    //C++ program to find area of triangle, circle,and rectangle using function overloading
    Write a C++ program to find area of triangle, circle,and rectangle using function overloading

    #include
    Float area(int r)
    {
    cout<>r;area(r);
    cout<>b>>h;
    area(b,h);
    cout<>l>>br;
    area(l,br);
    getch();
    return 0;
    }

    ReplyDelete
  6. //Name : Sumonto Kumer Ghosh
    //ID : 201410848
    //Batch : 45 th
    #include
    class power
    {
    public:
    inline int square(int s)
    {
    return s*s;
    }
    inline int cube(int s)
    {
    return s*s*s;
    }
    };
    void main()
    {
    int s,r;
    power p;
    clrscr();
    cout<<“\nEnter the Number: \s” ;
    cin>>n;
    r=p.square(s);
    cout<<“\nSquare of “<<s<<” = “<<r<<endl;
    r=p.cube(s);
    cout<<“\nCube of “<<s<<” = “<<r<<endl;
    getch();
    }

    ReplyDelete
  7. //Name : Sumonto Kumer Ghosh
    //ID : 201410848
    //Batch : 45 th
    //check strange number using inheritance
    #include
    using namespace std;
    //base class
    class strange
    {
    public:
    void setdigit(int d)
    {
    digit=d;
    }
    protected:
    int digit;
    };
    //derived class
    class number : public strange
    {
    public:
    int i,j,t=1,d;
    int devide()
    {
    while(d!=0)
    {
    j=d%10;
    d=d/10;
    for(i=2;i>p;
    nmb.setdigit(p);
    nmb.check();
    }


    ReplyDelete
  8. //Name : Sumonto Kumer Ghosh
    //ID : 201410848
    //Batch : 45 th

    #include
    #include
    using namespace std;
    class CheckStrnge
    {
    public:
    int strange (int s)
    {
    int r,n,p=1,i;
    while(s!=0)
    {
    r=s%10;
    n=s/10;
    for(i=2 ;i>number;
    Str.strange(number);
    }

    ReplyDelete

Comment Here