Programming Languages Chapter 8 Programming From Problem Analysis Program Design Eighth Edition Arrays And Strings

subject Type Homework Help
subject Pages 9
subject Words 3716
subject Authors D. S. Malik

Unlock document.

This document is partially blurred.
Unlock all pages and 1 million more documents.
Get Access
page-pf1
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-1
Chapter 8
Arrays and Strings
A Guide to this Instructor’s Manual:
We have designed this Instructor’s Manual to supplement and enhance your teaching
experience through classroom activities and a cohesive chapter summary.
This document is organized chronologically, using the same headings that you see in the
textbook. Under the headings, you will find lecture notes that summarize the section, Teacher
Tips, Classroom Activities, and Lab Activities. Pay special attention to teaching tips and
activities geared towards quizzing your students and enhancing their critical thinking skills.
In addition to this Instructor’s Manual, our Instructor’s Resources also contain PowerPoint
Presentations, Test Banks, and other supplements to aid in your teaching experience.
At a Glance
Instructor’s Manual Table of Contents
Overview
Objectives
Teaching Tips
Quick Quizzes
Class Discussion Topics
Additional Projects
Additional Resources
Key Terms
page-pf2
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-2
Lecture Notes
Overview
The next few chapters will introduce and focus on structured data types. Chapter 8
discusses the array data type in detail. Students will become familiar with declaring and
manipulating arrays, as well as using arrays as parameters. They will also learn about
Objectives
In this chapter, the student will:
Learn the reasons for arrays
Explore how to declare and manipulate data into arrays
Understand the meaning of ‘‘array index out of bounds’’
Learn how to declare and initialize arrays
Become familiar with the restrictions on array processing
Discover how to pass an array as a parameter to a function
Learn how to search an array
Learn how to sort an array
Become aware of auto declarations
Learn about range-based for loops
Learn about C-strings
Examine the use of string functions to process C-strings
Discover how to input data intoand output data froma C-string
Learn about parallel arrays
Discover how to manipulate data in a two-dimensional array
Learn about multidimensional arrays
Teaching Tips
Introduction
1. Review the concept of a simple data type, and introduce the concept of a structured data
type.
2. Describe the need for an array when processing items that are the same data type and
represent the same conceptual item.
page-pf3
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-3
Arrays
1. Define the array data type and describe its uses. In particular, discuss the syntax of one-
dimensional arrays. Illustrate with Example 8-1.
Teaching
Tip
Introduce your students to arrays by emphasizing that an array can only store
elements that are all of the same data type; in other words, they are not an all-
purpose storage container. Point out that they will learn about more complex data
types later in the text such as containers that hold generic data types or
complex data types with multiple variables and operations.
Accessing Array Components
1. Discuss the syntax involved in accessing array components. Review the use of the array
subscripting operator with the code snippets in this section.
Teaching
Tip
Students might be confused when looking at code that performs arithmetic
operations on elements that are accessed by the array subscripting operator. Note
that students have already had experience with the array subscripting operator
when they manipulated characters in a string. Stress that the operations that are
allowed on the values stored in an array can also be performed when accessing
the element with the array subscripting operator.
Processing One-Dimensional Arrays
2. Explain how to process an array using a for loop. Step through Example 8-3 to
Array Index Out of Bounds
1. Explain the consequences of using an array index that is out of bounds.
Teaching
Tip
Discuss some common coding errors that can result in an out of bounds array
index. Stress that it is the programmer’s responsibility to verify that a program is
not attempting to access an array outside of its limits.
page-pf4
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-4
Array Initialization During Declaration
1. Describe the syntax involved with initializing an array during its declaration.
Partial Initialization of Arrays During Declaration
1. Explain how to partially initialize an array. Note that the non-initialized elements are
initialized to a default value; for example, elements of data type int are initialized to
zero.
Teaching
Tip
Discuss situations where it might be useful to partially initialize arrays, e.g.,
when you have some information available before execution time that will be
necessary for proper processing.
Some Restrictions on Array Processing
1. Emphasize that C++ does not allow aggregate operations on arrays. Explain that
therefore, arrays must be processed one element at a time, which is usually done with a
loop.
Arrays as Parameters to Functions
1. Explain that C++ arrays are passed by reference only. Illustrate how this is
accomplished using Example 8-5.
Constant Arrays as Formal Parameters
1. Discuss the use of constant arrays as parameters when the contents of the array should
not be modified. Use Example 8-6 to illustrate parameter passing using both non-
constant and constant arrays.
Teaching
Tip
Explain in more detail why C++ only allows arrays to be passed as reference
parameters. Discuss issues such as memory management. Ask your students if
there are any disadvantages to this approach. For example, how would they
handle a situation in which they would like an array to be modifiable in the
calling function but not in the called function?
page-pf5
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-5
Base Address of an Array and Array in Computer Memory
2. Explain how the base address is used when passing arrays as parameters.
Teaching
Tip
Students may find that the details of manipulating memory are complicated. Note
that C and C++ programmers are more accustomed to manipulating memory than
programmers in some other programming languages, particularly with respect to
arrays.
Functions Cannot Return a Value of the Type Array
1. Note that functions cannot return a value of the type array. Illustrate how arrays are
processed in a function while being returned using Example 8-7.
Teaching
Tip
Ask students why they think C++ does not allow functions to return a value of
the type array. Relate this requirement to the requirement of passing arrays as
reference parameters.
Integral Data Type and Array Indices
1. Explain that C++ allows any integral type to be used as an array index. Therefore,
Other Ways to Declare Arrays
1. Discuss the use of a constant value to declare the size of an array. Also, describe how a
typedef statement can be used to declare an array.
Teaching
Tip
Discuss the advantages of using a named constant for sizing an array. Stress that
changing the size of an array is much easier and less error-prone when only one
value needs to be modified at the beginning of the program.
page-pf6
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-6
Quick Quiz 1
1. Define an array.
2. The ____________________ value specifies the position of an element of a component
in an array.
3. True or False: In C++, the array index starts at 1.
4. Define an aggregate operation as it relates to arrays.
Searching an Array for a Specific Item
1. Introduce the sequential (or linear) search algorithm using the example in Figure 8-8.
Review the seqSearch() function on page 545 and in Example 8-8.
Sorting
1. Introduce the selection sort algorithm. Use Figures 8-9 through 8-11 to illustrate this
algorithm. Review the code in Example 8-9.
Auto Declaration and Range-Based for Loops
1. Explain that C++11 allows auto declaration, which allows you to declare and initialize a
variable without specifying its type.
C-strings (Character Arrays)
1. Define a character array.
2. Define a C++ C-string. Explain the similarities and differences between a character
page-pf7
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-7
Teaching
Tip
Spend some additional time discussing the differences and similarities between
C-strings and character arrays. Students may wonder why C-strings are necessary
at all. Explain that the C-string was originally a part of the C programming
language. Also, reiterate that the string data type is provided in the C++
library, but that it is not part of the language.
String Comparison
1. Explain how C-strings are compared. Demonstrate how the strcmp function works
Reading and Writing Strings
1. Emphasize that although aggregate functions are not allowed on most C-string
String Input
1. Provide an example of how to input a C-string into a variable. Then discuss how to
input a C-string with blanks using the get function.
String Output
1. Briefly illustrate how to output C-strings using an output stream variable.
Specifying Input/Output Files at Execution Time
1. Discuss how a program can allow a user to specify an input or output file at execution
time. Note the syntax involved in using a character array to retrieve the filename.
string Type and Input/Output Files
1. Review the differences between strings and C-strings and explain how to convert a
string into a C-string using the c_str method.
Teaching
Tip
Note that the get function is overloaded to provide aggregate input operations
for C-strings.
page-pf8
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-8
Teaching
Tip
Note that the use of c_str function is required to convert strings into a null-
terminated form. This is because the open function is compatible with C-strings,
not with the programmer-defined string type. Mention that this is an example
of maintaining compatibility with the C language and older C++ compilers.
Quick Quiz 2
1. Define a character array.
2. How is the null character represented in C++?
3. The header file ____________________ provides functions for manipulating C-strings.
4. True or False: C++ does not allow any aggregate operations on C-strings.
Parallel Arrays
1. Define parallel arrays and describe situations in which parallel arrays are useful.
Illustrate with the code snippet in this section.
Two- and Multidimensional Arrays
8-12 to illustrate.
2. Discuss the syntax for declaring a two-dimensional array, and use Figure 8-13 to
demonstrate this.
Teaching
Tip
Provide some more examples of how a two-dimensional array resembles a table.
Point out one difference: all of the elements in both the rows and columns must
be of the same data type in a two-dimensional array. This is not a requirement in
conventional tables.
page-pf9
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-9
Accessing Array Components
Two-Dimensional Array Initialization During Declaration
1. Explain the syntax involved in initializing a two-dimensional array during declaration.
Two-Dimensional Arrays and Enumeration Types
1. Explain how to use enumeration types as indices in a two-dimensional array. Discuss
situations in which this might be useful, using Figures 8-16 and 8-17.
Teaching
Tip
Note that the enum type for indices in a two-dimensional array may be different
for rows and columns.
2. Explain how to process a two-dimensional array using nested loops.
3. Define row and column processing. Use the code snippets in this section to illustrate
two-dimensional array processing of an entire array, a row of an array, and a column of
an array.
Teaching
Tip
Verify that your students understand array processing using nested loops because
the operations that are discussed in the following sections all rely on this
processing algorithm.
Initialization
1. Explain how to initialize specific rows of an array, as well as how to initialize an entire
array.
Print
1. Describe how to use a nested loop to print out the components of an array.
Input
1. Explain how to input data into specific components of an array and into an entire array.
page-pfa
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-10
Sum by Row
Sum by Column
1. Describe how to use nested loops to find the sum of the components in each column of
a two-dimensional array.
Largest Element in Each Row and Each Column
Passing Two-Dimensional Arrays as Parameters to Functions
1. Discuss how a two-dimensional array is stored in memory using row order form.
2. Explain how to pass two-dimensional arrays as parameters using Example 8-11.
Teaching
Tip
Emphasize why the second dimension of an array must have a size value when
passing the array as a parameter. Ask your students if they think there are any
advantages to specifying the first dimension as well.
Arrays of Strings
1. Explain how using an array to store strings has many useful applications.
Arrays of Strings and the string Type
Arrays of Strings and C-Strings (Character Arrays)
2. Describe the operations available for an array of character arrays.
page-pfb
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-11
Teaching
Tip
Ask your students if they prefer using arrays of strings or arrays of character
arrays. What are the advantages and disadvantages of each?
Another Way to Declare a Two-Dimensional Array
1. Explain how to declare a two-dimensional array with the typedef statement.
Multidimensional Arrays
2. Describe how to process n-dimensional arrays with nested loops.
Quick Quiz 3
1. Define a two-dimensional array.
2. True or False: To access a component of a two-dimensional array, you need a pair of
indices.
3. You can output the contents of a two-dimensional array by using ____ loops.
4. When storing a two-dimensional array in computer memory, C++ uses the ____ form.
Class Discussion Topics
1. What are some possible reasons for not permitting aggregate processing on arrays in
C++?
2. What are some ways to prevent out of bounds errors when reading input into C-strings?
3. Discuss some useful applications for n-dimensional arrays, such as graphical 3-D or
page-pfc
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-12
Additional Projects
1. Ask your students to write a program that keeps track of important birthdays. They may
implement it with a one-dimensional array with enumeration type indices, with a two-
2. Ask your students to write a program that lists European, Middle-Eastern, or Asian
countries and their capitals. The program retrieves this information from an input file
Additional Resources
2. Introduction to C++ Arrays:
3. C Strings:
Key Terms
Aggregate operation: any operation on an array that manipulates the entire array as a
single unit
Column processing: processing of a particular column of a two-dimensional array
Dynamic arrays: arrays that are created during program execution using pointers
Finding the sum and average of an array: code that finds the sum and average of the
values in the array
page-pfd
C++ Programming: From Problem Analysis to Program Design, Eighth Edition 8-13
© 2018 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part, except for use as permitted in a
license distributed with a certain product or service or otherwise on a password-protected website for classroom use.
Index: any expression whose value is a nonnegative integer and which is used for
accessing an array component
Initializing: the process of using a loop to initialize every component of the array
n-dimensional array: a collection of a fixed number of components arranged in n
dimensions (n >= 1)
One-dimensional array: an array in which the components are arranged in a list form
Parallel arrays: two (or more) arrays with corresponding components holding related
information
Row order form: refers to the manner in which a two-dimensional array is stored; the
first row is stored first, followed by the second row, followed by the third row, and so
on
Row processing: processing of a particular row of a two-dimensional array
Selection sort: a search method in which the array is searched for the smallest value,
which is swapped with the value at the top of the array; then repeated for the next
smallest value, and so on
Sequential or linear search: searches an array sequentially starting with the first

Trusted by Thousands of
Students

Here are what students say about us.

Copyright ©2022 All rights reserved. | CoursePaper is not sponsored or endorsed by any college or university.