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