ARRAYS
ARRAYS
• Array
• Consecutive group of memory locations
• Same name and type
• Format: arrayname[ position number ]
• First element at position 0
• n element array c:
c[ 0 ], c[ 1 ]…c[ n - 1 ]
• Array elements are like normal variables
c[ 0 ] = 3;
cout << c[ 0 ];
• Performing operations in subscript. If x = 3,
c[ 5 – 2 ] == c[ 3 ] == c[ x ]
ARRAYS
c[6]
-45
6
0
72
1543
-89
0
62
-3
1
6453
78
Name of array (Note that all
elements of this array have
the same name, c)
c[0]
c[1]
c[2]
c[3]
c[11]
c[10]
c[9]
c[8]
c[7]
c[5]
c[4]
Position number of the element
within array c
DECLARING ARRAYS
• Declaring arrays - specify:
• Name
• Type of array
• Number of elements
• Examples
int c[ 10 ];
float hi[ 3284 ];
• Declaring multiple arrays of same type
• Similar format as other variables
• Example
int b[ 100 ], x[ 27 ];
EXAMPLES USING ARRAYS
• Initializers
int n[ 5 ] = { 1, 2, 3, 4, 5 };
• If not enough initializers, rightmost elements become 0
• If too many initializers, a syntax error is generated
int n[ 5 ] = { 0 }
• Sets all the elements to 0
• If size omitted, the initializers determine it
int n[] = { 1, 2, 3, 4, 5 };
• 5 initializers, therefore n is a 5 element array
EXAMPLES USING ARRAYS
• Strings
• Arrays of characters
• All strings end with null ('0')
• Examples:
char string1[] = "hello";
char string1[] = { 'h', 'e', 'l', 'l', 'o',
'0’ };
• Subscripting is the same as for a normal array
String1[ 0 ] is 'h'
string1[ 2 ] is 'l'
• Side effect: if too much text entered, data written
beyond array
PASSING ARRAYS TO FUNCTIONS
• Specify the name without any brackets
• To pass array myArray declared as
int myArray[ 24 ];
to function myFunction, a function call would
resemble
myFunction( myArray, 24 );
• Array size is usually passed to function
• Arrays passed call-by-reference
• Value of name of array is address of the first element
• Function knows where the array is stored
• Modifies original memory locations
• Individual array elements passed by call-by-value
• pass subscripted name (i.e., myArray[ 3 ]) to function
PASSING ARRAYS TO FUNCTIONS
• Function prototype:
void modifyArray( int b[], int arraySize );
• Parameter names optional in prototype
• int b[] could be simply int []
• int arraysize could be simply int
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
SORTING ARRAYS
• Example:
• Original: 3 4 2 6 7
• Pass 1: 3 2 4 6 7
• Pass 2: 2 3 4 6 7
• Small elements "bubble" to the top
SEARCHING ARRAYS: LINEAR
SEARCH AND BINARY SEARCH
• Search array for a key value
• Linear search
• Compare each element of array with key value
• Useful for small and unsorted arrays
• Binary search
• Can only be used on sorted arrays
• Compares middle element with key
• Very fast; at most n steps, where 2^n > # of elements
• 30 element array takes at most 5 steps
• 2 > 30
MULTIPLE-SUBSCRIPTED ARRAYS
• Multiple subscripts - tables with rows, columns
• Like matrices: specify row, then column.
• Initialize
int b[ 2 ][ 2 ] = { {1, 2}, {3, 4}};
Initializers grouped by row in braces
int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } };
Row 0
Row 1
Row 2
Column 0 Column 1 Column 2 Column 3
a[ 0 ][ 0 ]
a[ 1 ][ 0 ]
a[ 2 ][ 0 ]
a[ 0 ][ 1 ]
a[ 1 ][ 1 ]
a[ 2 ][ 1 ]
a[ 0 ][ 2 ]
a[ 1 ][ 2 ]
a[ 2 ][ 2 ]
a[ 0 ][ 3 ]
a[ 1 ][ 3 ]
a[ 2 ][ 3 ]
Row subscript
Array name
Column subscript
1 2
3 4
1 0
3 4
MULTIPLE-SUBSCRIPTED ARRAYS
• Referenced like normal
cout << b[ 0 ][ 1 ];
• Will output the value of 0
• Cannot reference with commas
cout << b( 0, 1 );
• Will try to call function b, causing a syntax
error
TWO DIMENSIONALARRAY
• The two-dimensional array can be defined as an
array of arrays.
• The 2D array is organized as matrices which can be
represented as the collection of rows and columns.
• It provides ease of holding the bulk of data at once
which can be passed to any number of functions
wherever required.
• The syntax to declare the 2D array is:
data_type array_name[rows][columns];
TWO DIMENSIONALARRAY
int main(){
int i=0,j=0;
int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}};
//traversing 2D array
for(i=0;i<4;i++){
for(j=0;j<3;j++){
printf("arr[%d] [%d] = %d n",i,j,arr[i][j]);
}//end of j
}//end of i
return 0;
}
arr[0][0] = 1
arr[0][1] = 2
arr[0][2] = 3
arr[1][0] = 2
arr[1][1] = 3
arr[1][2] = 4
arr[2][0] = 3
arr[2][1] = 4
arr[2][2] = 5
arr[3][0] = 4
arr[3][1] = 5
arr[3][2] = 6
PASSING ARRAY TO FUNCTION
1. return_type function(type arrayname[])
• Declaring blank subscript notation [] is the widely used
technique.
2. return_type function(type arrayname[SIZE])
• Optionally, we can define size in subscript notation [].
3. return_type function(type *arrayname)
• You can also use the concept of a pointer.

C-Programming Arrays.pptx

  • 1.
  • 2.
    ARRAYS • Array • Consecutivegroup of memory locations • Same name and type • Format: arrayname[ position number ] • First element at position 0 • n element array c: c[ 0 ], c[ 1 ]…c[ n - 1 ] • Array elements are like normal variables c[ 0 ] = 3; cout << c[ 0 ]; • Performing operations in subscript. If x = 3, c[ 5 – 2 ] == c[ 3 ] == c[ x ]
  • 3.
    ARRAYS c[6] -45 6 0 72 1543 -89 0 62 -3 1 6453 78 Name of array(Note that all elements of this array have the same name, c) c[0] c[1] c[2] c[3] c[11] c[10] c[9] c[8] c[7] c[5] c[4] Position number of the element within array c
  • 4.
    DECLARING ARRAYS • Declaringarrays - specify: • Name • Type of array • Number of elements • Examples int c[ 10 ]; float hi[ 3284 ]; • Declaring multiple arrays of same type • Similar format as other variables • Example int b[ 100 ], x[ 27 ];
  • 5.
    EXAMPLES USING ARRAYS •Initializers int n[ 5 ] = { 1, 2, 3, 4, 5 }; • If not enough initializers, rightmost elements become 0 • If too many initializers, a syntax error is generated int n[ 5 ] = { 0 } • Sets all the elements to 0 • If size omitted, the initializers determine it int n[] = { 1, 2, 3, 4, 5 }; • 5 initializers, therefore n is a 5 element array
  • 6.
    EXAMPLES USING ARRAYS •Strings • Arrays of characters • All strings end with null ('0') • Examples: char string1[] = "hello"; char string1[] = { 'h', 'e', 'l', 'l', 'o', '0’ }; • Subscripting is the same as for a normal array String1[ 0 ] is 'h' string1[ 2 ] is 'l' • Side effect: if too much text entered, data written beyond array
  • 7.
    PASSING ARRAYS TOFUNCTIONS • Specify the name without any brackets • To pass array myArray declared as int myArray[ 24 ]; to function myFunction, a function call would resemble myFunction( myArray, 24 ); • Array size is usually passed to function • Arrays passed call-by-reference • Value of name of array is address of the first element • Function knows where the array is stored • Modifies original memory locations • Individual array elements passed by call-by-value • pass subscripted name (i.e., myArray[ 3 ]) to function
  • 8.
    PASSING ARRAYS TOFUNCTIONS • Function prototype: void modifyArray( int b[], int arraySize ); • Parameter names optional in prototype • int b[] could be simply int [] • int arraysize could be simply int
  • 9.
    SORTING ARRAYS • Sortingdata • 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
  • 10.
    SORTING ARRAYS • Example: •Original: 3 4 2 6 7 • Pass 1: 3 2 4 6 7 • Pass 2: 2 3 4 6 7 • Small elements "bubble" to the top
  • 11.
    SEARCHING ARRAYS: LINEAR SEARCHAND BINARY SEARCH • Search array for a key value • Linear search • Compare each element of array with key value • Useful for small and unsorted arrays • Binary search • Can only be used on sorted arrays • Compares middle element with key • Very fast; at most n steps, where 2^n > # of elements • 30 element array takes at most 5 steps • 2 > 30
  • 12.
    MULTIPLE-SUBSCRIPTED ARRAYS • Multiplesubscripts - tables with rows, columns • Like matrices: specify row, then column. • Initialize int b[ 2 ][ 2 ] = { {1, 2}, {3, 4}}; Initializers grouped by row in braces int b[ 2 ][ 2 ] = { { 1 }, { 3, 4 } }; Row 0 Row 1 Row 2 Column 0 Column 1 Column 2 Column 3 a[ 0 ][ 0 ] a[ 1 ][ 0 ] a[ 2 ][ 0 ] a[ 0 ][ 1 ] a[ 1 ][ 1 ] a[ 2 ][ 1 ] a[ 0 ][ 2 ] a[ 1 ][ 2 ] a[ 2 ][ 2 ] a[ 0 ][ 3 ] a[ 1 ][ 3 ] a[ 2 ][ 3 ] Row subscript Array name Column subscript 1 2 3 4 1 0 3 4
  • 13.
    MULTIPLE-SUBSCRIPTED ARRAYS • Referencedlike normal cout << b[ 0 ][ 1 ]; • Will output the value of 0 • Cannot reference with commas cout << b( 0, 1 ); • Will try to call function b, causing a syntax error
  • 14.
    TWO DIMENSIONALARRAY • Thetwo-dimensional array can be defined as an array of arrays. • The 2D array is organized as matrices which can be represented as the collection of rows and columns. • It provides ease of holding the bulk of data at once which can be passed to any number of functions wherever required. • The syntax to declare the 2D array is: data_type array_name[rows][columns];
  • 15.
    TWO DIMENSIONALARRAY int main(){ inti=0,j=0; int arr[4][3]={{1,2,3},{2,3,4},{3,4,5},{4,5,6}}; //traversing 2D array for(i=0;i<4;i++){ for(j=0;j<3;j++){ printf("arr[%d] [%d] = %d n",i,j,arr[i][j]); }//end of j }//end of i return 0; } arr[0][0] = 1 arr[0][1] = 2 arr[0][2] = 3 arr[1][0] = 2 arr[1][1] = 3 arr[1][2] = 4 arr[2][0] = 3 arr[2][1] = 4 arr[2][2] = 5 arr[3][0] = 4 arr[3][1] = 5 arr[3][2] = 6
  • 16.
    PASSING ARRAY TOFUNCTION 1. return_type function(type arrayname[]) • Declaring blank subscript notation [] is the widely used technique. 2. return_type function(type arrayname[SIZE]) • Optionally, we can define size in subscript notation []. 3. return_type function(type *arrayname) • You can also use the concept of a pointer.