0% found this document useful (0 votes)
10 views

Arrays

Uploaded by

Ulugbek Kushakov
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Arrays

Uploaded by

Ulugbek Kushakov
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 30

LECTURE 10

ARRAYS

1
Contents
 Declaration of Arrays, Initialization of
Arrays.
 Example using Arrays
 Passing Arrays to Function, Sorting arrays
 Computing Mean, Mode, Median using
Array
 Searching arrays
 Multiple Scripted Arrays

2
Definition
 An array is a collection of similar data elements
have the same data type.
 The elements of array are stored in consecutive
memory locations and are referenced by an index
(also known as subscript).
 Subscript indicates an ordinal number of the
elements counted from the beginning of the array.

3
Arrays in C++
 Data types are of two kinds:
- simple data types (e.g. int, float, double, char)
- Structured data type: (e.g. arrays)
 An array is a collection of two or more adjacent memory cells,
called array elements, that are associated with a particular symbolic
name.
 In C++ each array has: name, data type, size
 Several operations are allowed on the array: Read, Write, Search,
Sum, Min, Max, Sort, etc..
 Arrays are of two kinds:
- Arrays of one-dimension
- Arrays of two-dimension

4
One-Dimensional Arrays
Declaration of one-dimension array
Syntax: a type a name [ size ] ; // uninitialized array
a type a name [ size ] = { initialization list } ;

where
a type is any data type;
a name is the name given to the array;
size represents the number of elements in the array.
initialization list is the list of initial values given to
the array. 5
Declaration of Arrays
For example ,
int x [ 3 ];
- This tells the compiler to associate 3 memory cells

with name x.
- These cells will be adjacent to each other in memory.
- Each element of array x contains a value of integer

type
 More than one array can be declared on a line

int age [10] , height [10] , names [20] ;

 Mix declaration of variables with declaration of arrays


int i , j , age [10] ;
6
Initializing an Array
Example1:
int Y [ 4 ] = { 2, 4, 6, 8 } ;
This initializes array Y to have 4 elements which contain 2, 4, 6, 8.
2 4 6 8
Example2:
int age [ 10 ] = { 0,0,0,0,0,0,0,0,0,0 } ;
Example3:
int age[ 10 ] = { 0 } ;
0 0 0 0 0 0 0 0 0 0
Example4:
int age [ ] = { 1,2,3,4,5,6,7,8,9,10 } ;
Accessing One-Dimensional Array
int x [3]={24,20,10} ;
Array x in memory:
24 20 10

How to process the data stored in an array?

Syntax:
a name [ index ]
- index is the subscript that is used to reference the
desired element.
The array indexing starts from 0 until the fixed size -1.

8
Accessing One-Dimensional Array
Array x in memory:
Index 0 1 2
Values 24 20 10

Accessing the array:


x [0] to access the first element of x
x [1] to access the second element of x
x [2] to access the third element of x

9
Arrays
Name of array (Note that all elements of
this array have the same name, c)

c[0] -45
c[1] 6
c[2] 0
c[3] 72
c[4] 1543
c[5] -89
c[6] 0
c[7] 62
c[8] -3
c[9] 1
c[10] 6453
c[11] 78

Position number of the element


within array c
1. // Initializing an array with a declaration
2. #include <iostream>
3. #include <iomanip>//defines the manipulator functions that are used to manipulate
the format of the input and output of our program
4. using namespace std;
5. // Function declaration
6. int main() {
7. int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 };
8. cout << "Element" << setw( 13 ) << "Value" << endl;
9. for ( int i = 0; i < 10; i++ )
10. cout << setw( 7 ) << i << setw( 13 ) << n[ i ] << endl;// setw changes
the width of the next input/output field
11.
12. return 0;
13. }

OUTPUT
Element Value
0 32
1 27
2 64
3 18
4 95
5 14
6 90
7 70
8 60
9 37 11
Examples Using Arrays
 Strings
 Arrays of characters
 All strings end with null ('\0')
 Examples
 char string1[] = "hello";
 Null character implicitly added
 string1 has 6 elements
 char string1[] = { 'h', 'e', 'l', 'l',
'o', '\0’ };
 Subscripting is the same
String1[ 0 ] is 'h'
string1[ 2 ] is 'l'

12
Examples Using Arrays
 Input from keyboard
char string2[ 10 ];
cin >> string2;
 Puts user input in string
 Stops at first whitespace character

 Adds null character

 Printing strings
 cout << string2 << endl;
 Does not work for other array types

 Characters printed until null found

13
1
2 // Treating character arrays as strings
3 #include <iostream>
4
5 using namespace std;
6
7
8
9 int main()
10 {
11 char string1[ 20 ], string2[] = "string literal";
12
13 cout << "Enter a string: ";
14 cin >> string1;
15 cout << "string1 is: " << string1
16 << "\nstring2 is: " << string2;
17
17 return 0;
18
18 }
19

Enter a string: Hello there


string1 is: Hello
string2 is: string literal
Passing Arrays to Functions

 Specify name without brackets


 To pass array myArray to myFunction

int myArray[ 24 ];
myFunction( myArray, 24 );
 Array size usually passed, but not
required

15
Passing Arrays to Functions
 Arrays passed-by-reference
 Functions can modify original array data
 Value of name of array is address of first element
 Function knows where the array is stored

 Can change original memory locations

 Individual array elements passed-by-value


 Like regular variables
 square( myArray[3] );

16
1. // Array passed by reference
2. #include <iostream>
3. using namespace std;
4. void read_array(int a[], int n) {
5. for (int i = 0; i < n; i++) {
6. cin >> a[i];
7. }
8. for (int i = 0; i < n; i++) {
9. cout << a[i] << endl;
10. }
11. }
12. int main() {
13. int a[20];
14. int n;
15. cout << "Enter the number of elements in array:" << endl;
16. cin >> n;
17. read_array(a, n);
18. return 0;
19. } OUTPUT

17
1. //array elements passed by value
2. #include <iostream>
3. using namespace std;
4. void display(int a[5]) {
5. cout << "Enter the marks:";
6. for (int i = 0; i < 5; i++) {
7. cin >> a[i];
8. }
9. cout << "Displaying marks:"<<endl;
10. for (int i = 0; i < 5; i++) {
11. cout << "Student "<< i + 1<<": " << a[i] << endl;
12. }
13. }
14. int main() {
15. int a[5] = { 88,76,90,61,69 };
16. for (int i = 0; i < 5; i++) {
OUTPUT
17. cout << a[i] << endl;
18. }
19. display(a);
20. return 0;
21. }

18
Sorting Arrays
 Sorting data
 Important computing application
 Virtually every organization must sort some
data
 Massive amounts must be sorted
 Bubble sort (sinking sort)
 Several passes through the array
 Successive pairs of elements are compared
 If increasing order (or identical), no change
 If decreasing order, elements exchanged

 Repeat these steps for every element


19
Sorting Arrays
 Example:
 Go left to right, and exchange elements as
necessary
 One pass for each element

 Original: 3 4 2 7 6
 Pass 1: 3 2 4 6 7 (elements exchanged)
 Pass 2: 2 3 4 6 7
 Pass 3: 2 3 4 6 7 (no changes needed)
 Pass 4: 2 3 4 6 7
 Pass 5: 2 3 4 6 7
 Small elements "bubble" to the top (like 2 in this
example)
20
Sorting Arrays
 Swapping variables
int x = 3, y = 4;
y = x;
x = y;
 What happened?
 Need a temporary variable
 Solution
int x = 3, y = 4, temp = 0;
temp = x; // temp gets 3
x = y; // x gets 4
y = temp; // y gets 3

21
Computing Mean, Median and Mode
Using Arrays
 Mean
 Average
 Median
 Number in middle of sorted list
 1, 2, 3, 4, 5 (3 is median)
 Mode
 Number that occurs most often
 1, 1, 1, 2, 3, 3, 4, 5 (1 is mode)
Arrays of Two-Dimensions
Syntax ( in C++ ):
atype aname [nrows] [ncolumns] ;

Example:

int B [2] [3] ;

Array in diagram:

23
Arrays of Two-Dimensions

 Reading array of two-dimensions:


Syntax ( in C++ ): Input
After first outer loop
]0[ 5 2 9
int B [2] [3] ;
int i , j ;
for ( i = 0 ; i < 2 ; i++ )
for ( j = 0 ; j < 3 ; j++ )
cin >> B[ i ] [ j ] ;
After second outer loop Input

]0[ 5 2 9
]1[ 7 0 4

24
1. //Write C++ program that reads array A of size (2 x 3) and finds the sum of the elements in each
row.
2. #include <iostream>
3. using namespace std;
4. int main() {
5.
6. int i, j , Rsum = 0 ;
7. int B[2][3];
8. cout << "Enter 6 array elements: " ;
9. for ( i = 0 ; i < 2 ; i++ )
10. for ( j = 0 ; j < 3 ; j++)
11. cin >> B[i][j] ;
12. // Process the array now
13. for ( i = 0 ; i < 2 ; i++ )
14. {
15. for ( j = 0 ; j < 3 ; j++)
16. {
17. Rsum = Rsum + B[i][j];
18. }
19. cout << " sum of row no. " <<i<< " is " << Rsum<<endl;
20. Rsum = 0;
21. }
OUTPUT
22. return 0;
23. }

25
Searching Arrays
 Search array for a key value
 Linear search
 Compare each element of array with key value
 Start at one end, go to other
 Useful for small and unsorted arrays
 Inefficient
 If search key not present, examines every element

26
The problem:
Write C++ program that searches for an integer in array of 10
integers. A proper message should be printed out.

The Analysis:
A given array of integer numbers is going to be searched in order
to find a given number.

Requirements:
Input: an integer number n, an array A of 10 integers
Output: a message “yes found” or “no not found” according to
whether the number is found or not.
27
1. // search element from array
2. #include <iostream>
3. using namespace std;
4. int main() {
5. int L[10];
6. int CurElem, SearchVal;
7. bool Found;
8. // ------------------------ Reading L ---------------------------
9. cout << "Enter 10 integers:";
10. for (CurElem = 0; CurElem < 10; CurElem++) {
11. cin >> L[CurElem];
12. }
13. cout << "Enter the number that you want to search for: ";
14. cin >> SearchVal;
15. Found = false;

28
18. for (CurElem = 0; CurElem < 10 && !Found; CurElem++) {
19. if (L[CurElem] == SearchVal)
20. {
21. Found = true; // Set Found to true if the number is found
22. }
23. }
24. if (Found == true)
25. cout << " Yes, the number is found ";
26. else
27. cout << " No, the number is not found";
28. return 0;
29. }

OUTPUT

29
1. //Example to find the largest number of array
2. #include <iostream>
3. using namespace std;
4. int main() {
5. int a[20];
6. int i, n;
7. int large = -1;
8. cout << "Enter the number of elements in array:" << endl;
9. cin >> n;
10. cout << "Enter elements of array" << endl;
11. for (i = 0; i < n; i++) {
12. cin >> a[i];
13. }
14. for (i = 0; i < n; i++) {
15. if (a[i] >= large) {
16. large= a[i];
17. }
18. } OUTPUT
19. cout << "The largest number of array=" << large << endl;
20. return 0;
21. }
30

You might also like