0% 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.

Uploaded by

Chen Dishan
Copyright
© © All Rights Reserved
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% 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.

Uploaded by

Chen Dishan
Copyright
© © All Rights Reserved
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

You might also like