Chapter 8:
Arrays
Starting Out with Programming Logic & Design
Second Edition
by Tony Gaddis
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter Topics
8.1
8.2
8.3
8.4
8.5
8.6
Array Basics
Sequentially Searching an Array
Processing the Contents of an Array
Parallel Arrays
Two-Dimensional Arrays
Arrays of Three or More Dimension
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-2
8.1 Array Basics
An array allows you to store a group of items of
the same data type together in memory
Why? Instead of creating multiple similar
variables such as employee1, employee2,
employee3 and so on
Its more efficient to create just one variable
Declare String employees[50]
Declare Real salesAmounts[7]
The number in the [ ] is the size of the array
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-3
8.1 Array Basics
The storage locations in an array are elements
Each element of the array has a unique number
called a subscript that identifies it the
subscript always starts at 0
Figure 8-1 Array subscripts
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-4
8.1 Array Basics
Assigning values can be done individually using
a subscript
Set numbers[0] = 20
Set numbers[1] = 30
Set numbers[2] = 40
Set numbers[3] = 50
Set numbers[4[ = 60
But, it is much more efficient to use a Loop to
step through the array
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-5
8.1 Array Basics
Figure 8-3 Contents of the hours array
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-6
8.1 Array Basics
Arrays can be initialized to 0 or specific values
Declare String days[7] = Sunday, Monday, Tuesday,
Wednesday, Thursday, Friday, Saturday
Array bounds checking should be performed to
avoid use of an invalid subscript
Days[7] = Saturday is invalid because there is no 7 index
A common error is running a loop one time more than is
necessary, exceeding the bound of the array
Off-by-one Error
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-7
8.1 Array Basics
Partially Filled Array
Sometimes an array is only partially filled
To avoid processing the unfilled elements, you must
have an accompanying integer variable that holds
the number of items stored in the array.
When the array is empty, 0 is stored in this variable
The variable is incremented each time an item is added to
the array
The variable's value is used as the array's size when
stepping through the array.
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-8
8.1 Array Basics
Constant Integer SIZE = 100
Declare Integer values[SIZE]
The count variable holds the number of items
stored in the array.
Declare Integer count = 0
Declare Integer number
Declare Integer Index
Display "Enter a number, or -1 to quit."
Partially Filled Array
Example
Input number
While (number != -1 AND count < SIZE)
Set values[count] = number
Set count = count + 1
Display "Enter a number, or -1 to quit."
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-9
8.1 Array Basics
Optional Topic: The For Each Loop
Some languages provide a For Each loop
It works with an array, iterating once for each array
element
During each iteration, the loop copies an element's
value to a variable.
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-10
8.1 Array Basics
Constant Integer SIZE = 5
Declare Integer numbers[SIZE] = 5, 10, 15, 20, 25
Declare Integer num
For Each Example
For Each num In numbers
Display num
End For
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-11
8.2 Sequentially Searching an Array
A sequential search algorithm is a simple technique for finding an
item in a string or numeric array
Uses a loop to sequentially step through an array
Compares each element with the value being searched for
Stops when the value is found or the end of the array is hit
Set found = False
Set index = 0
While found == False AND index <= SIZE -1
If (array[index] == searchValue Then
Set found = True
Else
Set index = index + 1
End If
End While
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-12
8.3 Processing the Contents of an Array
Totaling the values in an array and calculating
average
Loops are used to accumulate the values
Then, the total is simply divided
by the size
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-13
Example
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-14
8.3 Processing the Contents of an Array
Finding the highest & lowest values in an array
The highest
Create a variable to hold the highest value
Assign the value at element 0 to the highest
Use a loop to step through the rest of the elements
Each iteration, a comparison is made to the highest variable
If the element is greater than the highest value, that value is
then the assigned to the highest variable
The lowest
Same process, but checks if the element is less than the
lowest value
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-15
8.3 Processing the Contents of an Array
Copying an array can be done using loops
For index = 0 to SIZE 1
Set secondArray[index] = firstArray[index]
End For
Passing an Array as an Argument
Usually must pass the array and the size
The module call
getTotal(numbers, SIZE)
The module header
Function Integer getTotal (Integer array[], Integer arraySize)
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-16
8.4 Parallel Arrays
By using the same subscript, you can establish a
relationship between data stored in two or
more arrays
Figure 8-14 The names
and addresses arrays
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-17
8.5 Two-Dimensional Arrays
A two-dimensional array is like several identical
arrays put together
Suppose a teacher has six students who take five
tests
Figure 8-17 Two-dimensional
array with six rows and five
columns
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-18
8.5 Two-Dimensional Arrays
Two size variables are required when declaring
Constant Integer ROWS = 3
Constant Integer COLS = 4
Declare Integer values[ROWS][COLS]
Accessing is done with two loops, and both subscripts
For row = 0 To ROWS -1
For col = 0 To COLS 1
Display Enter a number.
Input values[row][col]
End For
End For
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-19
8.6 Arrays of Three or More Dimensions
Arrays can also be three or more dimensions
Declare Real seats[3][5][8]
Figure 8-22 A three-dimensional array
Copyright 2010 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
8-20