BITG 1113:
Array (Part 1)
                 LECTURE 8
                             1
Objectives :
 To understand basic concepts of array.
 To understand how to use arrays in the
program.
 To know how to input values into array
and output values from array.
                                           2
                       Concepts
• An array is a sequenced collection of elements of the
  same name and the same type.
• It serve as an example of structured data types - they are
  effectively just lists of variables all of the same data type
  ("int", "char" or whatever).
                                                             3
Array representation : the subscript concept
      (Example : An array of Numbers)
                                               4
                    Concepts
• When referring to which element in array, we use the
  subscript concept
   – E.g : number[1]
   – This is also known as indexing the elements
• Loops can be used to read and write, also it can be
  used to add, subtract, multiply and divide the
  elements in arrays
• The subscript / index starts with 0
  E.g : number[0] for the first element
                                                         5
Using arrays in C++
                      6
        Read or Print
         using index
Example of an array
    flowchart
                        7
       Declaring and defining arrays
• The general syntax for an array declaration is:
    – <component type> < identifier name>[<size>];
    – Declaration and definition tells the compiler the name of
      the array, type of each element and size or number of
      element in the array
• E.g : suppose we are writing a program to
  manipulate data concerning the number of hours a
  group of 6 employees have worked in a particular
  week.
•    We might start the program with the array
    declaration:
                      int hours[6];
                                                                  8
Declaring and defining arrays
                                9
Initialization
                 10
         Inputting Values
• Is another way to fill the array
• Can be done using a loop – the most
  appropriate is for loop
• E.g :
      int scores[10];
      for ( i = 0; i < 10; i++)
         cin >> scores [i];
                                        11
           Outputting values
• Usually done by using a for loop
   E.g :
     for (i=0; i<10; i++)
            cout << scores[i];
                                     12
            Assigning values
• Individual elements can be assigned values
  using the assignment operator
   – E.g :    scores [4] = 23;
• We can copy an array to another array with the
  same size and type but it is wrong to assign
  one array to another :
   – E.g :
      int num1[5]={1,2,3,4,5};
      int num2[5];
       num2 = num1; //error
                                                   13
            Assigning values
• Example : to copy elements of num1 into num2.
  int num1[5] = {1,2,3,4,5};
  int num2[5];
  for(int i =0 ; i<5;i++)
  {
  num2[i]= num1[i]; //correct
  }
                                                  14
         Example : Input and Output of an array
#include <iostream>
#include <iomanip>
using namespace std;
 
void main()
{
       int i, ary1[5]={2,4,6,8,10},ary2[5],ary3[5];
       cout<<“Enter 5 numbers:\n”;
       for(i=0; i<5; i++)
           cin>>ary2[i];
       cout<<setw(15)<<“ary1”<<setw(10)<<“ary2”<<setw(10)
              <<“ary3”<<endl;
       for(i=0;i<5;i++)
       {
              ary3[i]= ary1[i]+ ary2[i];
              cout<<setw(15)<<ary1[i]<<setw(10)<<ary2[i]
              <<setw(10)<<ary3[i]<<endl;
       }                                                    15
}
Output :
Enter 5 numbers:
1
2
3
4
5
    ary1   ary2    ary3
      2      1     3
      4      2     6
      6      3     9
      8      4     12
      10     5     15
                          16
            Example : Determine the minimum value
#include <iostream>
using namespace std;
 
void main()
{
       int i, score[5], min;          Output :
                                      Enter 5 scores:
      cout<<“Enter 5 scores:\n”;
                                      85
      for(i=0; i<5; i++)              60
             cin>>score[i];           55
                                      78
      min = score[0];
                                      95
      for(i=1;i<5;i++)               The minimum score is 55
      {
             if(score[i]< min )
                    min = score[i];
      }
      cout<<“The lowest score is “ << min;                     17
}
Exchanging values – the wrong way
                                    18
Exchanging values – using temporary variable
                                           19
               Example : Exchanging values
#include <iostream>
using namespace std;
void main()
{
       int temp;
       int numbers[5] = {3,7,12,24,45};
 
       cout << "Before exchange the value :"<< endl;
       for(int i=0; i<5; i++)
              cout << numbers[i] << ' ';
      temp = numbers[3];
      numbers[3] = numbers[1];
      numbers[1] = temp;
 
      cout<<"\nAfter exchange the value :"<<endl;
      for(int i=0; i<5; i++)
             cout << numbers[i] << ' ';
 
      cout << endl;
                                                       20
}
               Array Applications
• Common statistical application using array
   – Frequency distributions and histograms
• Frequency array
   – Shows number of identical element in a series
     of number
• Histograms
   – A pictorial representation of a frequency array
                                                       21
Frequency array
                  22
Frequency histogram
                      23
              Two dimensional array
• An array that consists of rows and columns
   – In C++ it means an array of two-dimensional array
                                                         24
25
           Two dimensional array
• Two dimensional array declaration
              int table [5][4];
        • First dimension specifies the number of rows in the array
        • Second dimension specifies the number of columns in each row
• Initialization
    int table [5][4] =
      {0,1,2,3,10,11,12,13,20,21,22,23,30,31,32,
      31,40,41,42,43};
    int table [5][4] = {{0,1,2,3},{10,11,12,13},
      {20,21,22,23},
       {30,31,32,31},{40,41,42,43}};
    int table [5][4] = {{0,1},{10},{20,21,22},{30},
      {40,41,42,43}};
                                                                  26
       Inputting Values
• for(r=0;r<5;r++)
      for(c=0;c<4;c++)
          cin>>table[r][c];
       Outputting Values
 for(r=0;r<5;r++){
      for(c=0;c<4;c++)
          cout<<table[r][c]<<“ “;
     cout<< endl;
     }
                                    27
                          Accessing Values
•   To access the element of a two dimensional array, the index of row
    and column are used.
    E.g : To print the element in the second row and the third column of
          table.
    int table [5][4] = {{0,1,2,3},{10,11,12,13},{20,21,22,23},
     {30,31,32,31},{40,41,42,43}};
    cout<<table[1][2];// print 12
•   Individual elements can be initialized using the assignment
    operator.
     table[2][0] = 23;
                                                                           28
                      Accessing Values
• Let us assume that we want to initialize our 5 x 4 array as shown below.
  0     1      2      3
  10   11     12     13
  20   21     22     23
  30   31     32     33
  40   41     42     43
• The following code will perform the initialization :
  -   int table[5][4];
  for(r=0;r<5;r++)
            for(c=0;c<4;c++)
       table[r][c]= r*10 + c ;
                                                                             29
             Example: Two Dimensional array
#include <iostream>
using namespace std;
 
void main()
{
       int i,j,ary1[4][3];
      for(i=0; i<4; i++){
             cout << “Enter 3 numbers for row :"<<i+1;
             for(j=0; j<3; j++)
                    cin>>ary1[i][j];
             cout<<endl;
      }
      cout<<“Elements of ary1 is : ”<<endl;
      for(i=0; i<4; i++){
             for(j=0; j<3; j++)
                    cout<<ary1[i][j]<<setw(5);
             cout<<endl;
                                                         30
      }
Output :
Enter 3 numbers for row 1 : 1 2 3
Enter 3 numbers for row 2 : 2 4 6
Enter 3 numbers for row 3 : 3 6 9
Enter 3 numbers for row 4 : 4 8 12
Elements of ary1 is :
1 2 3
2 4 6
3 6 9
4 8 12
                                     31