Chapter 5 covers arrays and strings, detailing how to declare, manipulate, and process one-dimensional and two-dimensional arrays. It explains array indexing, initialization, and the importance of bounds checking, as well as how to pass arrays as parameters to functions. The chapter also highlights the structured nature of arrays and provides examples of basic operations and processing techniques.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
10 views39 pages
Chapter 5 Arrays
Chapter 5 covers arrays and strings, detailing how to declare, manipulate, and process one-dimensional and two-dimensional arrays. It explains array indexing, initialization, and the importance of bounds checking, as well as how to pass arrays as parameters to functions. The chapter also highlights the structured nature of arrays and provides examples of basic operations and processing techniques.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 39
CHAPTER 5
ARRAYS AND STRINGS
Objectiv es In this chapter, you will: • Explore how to declare and manipulate data into arrays • Understand the meaning of “array index out of bounds” • Become familiar with the restrictions on array processing • Discover how to pass an array as a parameter to a function • Discover how to manipulate data in a two- dimensional array Data Types • A data type is called simple if variables of that type can store only one value at a time • A structured data type is one in which each data item is a collection of other data items Array • s Array: a collection of a fixed number of components wherein all of the components have the same data type • In a one-dimensional array, the components are arranged in a list form • Syntax for declaring a one- dimensional array: Arrays • Example: (cont.) int num[5]; Accessing Array • Components General syntax:
where indexExp, called an index, is any
expression whose value is a nonnegative integer • Index value specifies the position of the component in the array • [] is the array subscripting operator • The array index always starts at 0 Accessing Array Components (cont.) Accessing Array Components (cont.) Accessing Array Components (cont.) Accessing Array Components (cont.) Processing One- Dimensional Arrays performed • Some basic operations on a one-dimensional array are: – Initializing – Inputting data – Outputting data stored in an array – Finding the largest and/or smallest element • Each operation requires ability to step through the elements of the array • Easily accomplished by a loop Processing One- Dimensional Arrays • Consider the(cont.) declaration int list[100]; //array of size 100 int i;
• Using for loops to access array
elements: for (i = 0; i < 100; i++) //Line 1 //process list[i] //Line 2 • Example: for (i = 0; i < 100; i++) //Line 1 cin >> list[i]; //Line 2 Array Index Out of • Bounds If we have the statements: double num[10]; int i; • The component num[i] is valid if i = 0, 1, 2, 3, 4, 5, 6, 7, 8, or 9 • The index of an array is in bounds if the index >=0 and the index <= ARRAY_SIZE-1 – Otherwise, we say the index is out of bounds • In C++, there is no guard against indices that are out of bounds Array Initialization During Declaration • Arrays can be initialized during declaration – In this case, it is not necessary to specify the size of the array • Size determined by the number of initial values in the braces • Example: double sales[] = {12.25, 32.50, 16.90, 23, 45.68}; Partial Initialization of Arrays During • Declaration The statement: int list[10] = {0}; declares list to be an array of 10 components and initializes all of them to zero • The statement: int list[10] = {8, 5, 12}; declares list to be an array of 10 components, initializes list[0] to 8, list[1] to 5, list[2] to 12 and all other components are initialized to 0 Partial Initialization of Arrays During Declaration • (cont.) The statement: int list[] = {5, 6, 3}; declares list to be an array of 3 components and initializes list[0] to 5, list[1] to 6, and list[2] to 3 • The statement: int list[25]= {4, 7}; declares an array of 25 components; initializes list[0] to 4 and list[1] to 7; all other components are initialized to 0 Some Restrictions on Array Processing • Consider the following statements:
• C++ does not allow aggregate
operations on an array:
• Solution: Some Restrictions on Array Processing (cont.) • The following is illegal too:
• Solution:
• The following statements are legal, but
do not give the desired results: Arrays as Parameters to • Functions Arrays are passed by reference only • The symbol & is not used when declaring an array as a formal parameter • The size of the array is usually omitted – If provided, it is ignored by the compiler Base Address of an Array and Array in Computer • TheMemory base address of an array is the address, or memory location of the first array component • If list is a one-dimensional array, its base address is the address of list[0] • When we pass an array as a parameter, the base address of the actual array is passed to the formal parameter Two-Dimensional • Arrays Two-dimensional array: collection of a fixed number of components (of the same type) arranged in two dimensions – Sometimes called matrices or tables • Declaration syntax:
where intexp1 and intexp2 are
expressions yielding positive integer values, and specify the number of rows and the number of columns, respectively, in the array Two-Dimensional Arrays (cont.) Accessing Array • Components Syntax:
where indexexp1 and indexexp2 are
expressions yielding nonnegative integer values, and specify the row and column position Accessing Array Components (cont.) Two-Dimensional Array Initialization During • Declarationarrays can be Two-dimensional initialized when they are declared:
– Elements of each row are enclosed within
braces and separated by commas – All rows are enclosed within braces – For number arrays, if all components of a row aren’t specified, unspecified ones are set to 0 Processing Two- Dimensional • Ways to process Arrays a two-dimensional array: – Process the entire array – Process a particular row of the array, called row processing – Process a particular column of the array, called column processing • Each row and each column of a two- dimensional array is a one-dimensional array – To process, use algorithms similar to processing one- dimensional arrays Processing Two- Dimensional Arrays (cont.) Initializati • on To initialize row number 4 (i.e., fifth row) to 0
• To initialize the entire matrix
to 0: Prin • t To output the components of matrix: Inpu • t To input data into each component of matrix: Sum by • Row To find the sum of row number 4 of matrix:
• To find the sum of each individual
row: Sum by • Column To find the sum of each individual column: Largest Element in Each Row and Each Column Reversing • Diagonal To reverse both the diagonals: Summar • y Array: structured data type with a fixed number of components of the same type – Components are accessed using their relative positions in the array • Elements of a one-dimensional array are arranged in the form of a list • An array index can be any expression that evaluates to a nonnegative integer Summary • (cont.) The base address of an array is the address of the first array component • When passing an array as an actual parameter, you use only its name – Passed by reference only • A function cannot return a value of the type array Summary • (cont.) array, the In a two-dimensional elements are arranged in a table form • To access an element of a two- dimensional array, you need a pair of indices: – One for the row position – One for the column position • In row processing, a two-dimensional array is processed one row at a time • In column processing, a two-dimensional array is processed one column at a time Source: C++ Programming: From Problem Analysis to Program Design, Fourth Edition