C++ Programming From Problem Analysis to Program Design 7th Edition Malik Solutions Manual - Free Download Available To Read All Chapters
C++ Programming From Problem Analysis to Program Design 7th Edition Malik Solutions Manual - Free Download Available To Read All Chapters
com
https://testbankfan.com/product/c-programming-from-problem-
analysis-to-program-design-7th-edition-malik-solutions-
manual/
OR CLICK BUTTON
DOWLOAD NOW
https://testbankfan.com/product/c-programming-from-problem-analysis-
to-program-design-7th-edition-malik-test-bank/
testbankfan.com
https://testbankfan.com/product/c-programming-from-problem-analysis-
to-program-design-6th-edition-malik-solutions-manual/
testbankfan.com
https://testbankfan.com/product/c-programming-from-problem-analysis-
to-program-design-8th-edition-malik-solutions-manual/
testbankfan.com
https://testbankfan.com/product/marketing-canadian-10th-edition-crane-
solutions-manual/
testbankfan.com
Experiencing the Lifespan 4th Edition Belsky Test Bank
https://testbankfan.com/product/experiencing-the-lifespan-4th-edition-
belsky-test-bank/
testbankfan.com
https://testbankfan.com/product/investment-analysis-and-portfolio-
management-canadian-1st-edition-reilly-test-bank/
testbankfan.com
https://testbankfan.com/product/seeleys-anatomy-and-physiology-10th-
edition-vanputte-test-bank/
testbankfan.com
https://testbankfan.com/product/foundations-of-social-policy-social-
justice-in-human-perspective-6th-edition-barusch-test-bank/
testbankfan.com
https://testbankfan.com/product/strategic-management-concepts-and-
cases-1st-edition-ali-solutions-manual/
testbankfan.com
Physical Chemistry Quantum Chemistry and Molecular
Interactions 1st Edition Andrew Cooksy Solutions Manual
https://testbankfan.com/product/physical-chemistry-quantum-chemistry-
and-molecular-interactions-1st-edition-andrew-cooksy-solutions-manual/
testbankfan.com
C++ Programming: From Problem Analysis to Program Design, Seventh 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
• Objectives
• Teaching Tips
• Quick Quizzes
• Additional Projects
• Additional Resources
• Key Terms
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh 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
the limitations of arrays. Students will examine character arrays and learn how to
process them using string functions. Finally, this chapter examines more complex array
types, including parallel and multidimensional arrays.
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 into—and output data from—a 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.
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh 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.
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-
Teaching
purpose storage container. Point out that they will learn about more complex data
Tip
types later in the text – such as containers that hold generic data types or
complex data types with multiple variables and operations.
1. Discuss the syntax involved in accessing array components. Review the use of the array
subscripting operator with the code snippets in this section.
2. Explain how to process an array using a for loop. Step through Example 8-3 to
illustrate how a for loop can be used to perform the operations described above.
Discuss some common coding errors that can result in an out of bounds array
Teaching
index. Stress that it is the programmer’s responsibility to verify that a program is
Tip
not attempting to access an array outside of its limits.
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8-4
1. Describe the syntax involved with initializing an array during its 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.
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.
1. Explain that C++ arrays are passed by reference only. Illustrate how this is
accomplished using Example 8-5.
2. Mention the usefulness of passing an additional parameter that specifies how many
elements a function should process.
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.
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
Teaching
there are any disadvantages to this approach. For example, how would they
Tip
handle a situation in which they would like an array to be modifiable in the
calling function but not in the called function?
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8-5
1. Explain that the base address of an array is the address of the first element. Using
Figure 8-7, discuss how arrays are stored in memory.
2. Explain how the base address is used when passing arrays as parameters.
Students may find that the details of manipulating memory are complicated. Note
Teaching that C and C++ programmers are more accustomed to manipulating memory than
Tip programmers in some other programming languages, particularly with respect to
arrays.
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.
Ask students why they think C++ does not allow functions to return a value of
Teaching
the type array. Relate this requirement to the requirement of passing arrays as
Tip
reference parameters.
1. Explain that C++ allows any integral type to be used as an array index. Therefore,
although the int type is most often associated with array indices, the enum type can
also be used effectively with array indices. Demonstrate with an example from this
section.
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.
Discuss the advantages of using a named constant for sizing an array. Stress that
Teaching
changing the size of an array is much easier and less error-prone when only one
Tip
value needs to be modified at the beginning of the program.
Quick Quiz 1
1. Define an array.
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8-6
Answer: An array is a collection of fixed number components all of the same data type.
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.
1. Explain that C++11 allows auto declaration, which allows you to declare and initialize a
variable without specifying its type.
2. Define a C++ C-string. Explain the similarities and differences between a character
array and a C-string. In particular, note the use of the null character to terminate C-
strings.
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8-7
Spend some additional time discussing the differences and similarities between
C-strings and character arrays. Students may wonder why C-strings are necessary
Teaching
at all. Explain that the C-string was originally a part of the C programming
Tip
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
using Example 8-10.
1. Emphasize that although aggregate functions are not allowed on most C-string
operations (just as with the array type), the exception to this rule is input/output
operations.
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.
Teaching Note that the get function is overloaded to provide aggregate input operations
Tip for C-strings.
String Output
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.
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.
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8-8
Note that the use of c_str function is required to convert strings into a null-
Teaching terminated form. This is because the open function is compatible with C-strings,
Tip 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.
Answer: an array whose components are of type char
4. True or False: C++ does not allow any aggregate operations on C-strings.
Answer: False
Parallel Arrays
1. Define parallel arrays and describe situations in which parallel arrays are useful.
Illustrate with the code snippet in this section.
2. Discuss the syntax for declaring a two-dimensional array, and use Figure 8-13 to
demonstrate this.
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8-9
1. Give some examples of how to access elements in a two-dimensional array. Use Figure
8-14 to illustrate.
2. Use the example presented in the book along with Figure 8-15 to illustrate this.
Teaching Note that the enum type for indices in a two-dimensional array may be different
Tip for rows and columns.
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.
Verify that your students understand array processing using nested loops because
Teaching
the operations that are discussed in the following sections all rely on this
Tip
processing algorithm.
Initialization
1. Explain how to initialize specific rows of an array, as well as how to initialize an entire
array.
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.
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8-10
Sum by Row
1. Describe how to use nested loops to find the sum of the components in each row of a
two-dimensional array.
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.
1. Use the code snippets in this section to discuss how to determine the largest element in
each row and column.
1. Discuss how a two-dimensional array is stored in memory using row order form.
Emphasize why the second dimension of an array must have a size value when
Teaching
passing the array as a parameter. Ask your students if they think there are any
Tip
advantages to specifying the first dimension as well.
Arrays of Strings
1. Explain how using an array to store strings has many useful applications.
2. Note that strings can be stored in arrays either as a string type or as a character array.
1. Using Figures 8-19 and 8-20, explain how a two-dimensional array of strings can be
created using character arrays.
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8-11
Teaching Ask your students if they prefer using arrays of strings or arrays of character
Tip arrays. What are the advantages and disadvantages of each?
Multidimensional Arrays
1. Define n-dimensional arrays. Discuss the general syntax for declaring an array of n
dimensions.
3. Encourage students to walk through the Programming Examples at the end of this
chapter with a partner to consolidate their understanding of arrays.
Quick Quiz 3
1. Define a two-dimensional array.
Answer: A collection of a fixed number of components arranged in rows and columns,
wherein all components are of the same type.
3. You can output the contents of a two-dimensional array by using ____ loops.
Answer: nested
4. When storing a two-dimensional array in computer memory, C++ uses the ____ form.
Answer: row order
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
biotechnology applications.
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh 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-
dimensional array, or with parallel arrays. The user inputs the name and date
information in a menu-driven function. The data is displayed in a tabular format at the
end of the program execution.
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
that the user specifies during program execution. The data can be stored in a one-
dimensional array with enumeration type indices, a two-dimensional array, or a parallel
array. The data is displayed in a tabular format at the end of the program execution.
Additional Resources
1. Arrays:
www.cplusplus.com
3. C Strings:
www.cprogramming.com
Key Terms
Aggregate operation: any operation on an array that manipulates the entire array as a
single unit
Array: a collection of a fixed number of elements (called components) in which all of
the elements must be of the same data type
Array index in bounds: the index is in bounds if it is >= 0 and <= ARRAY_SIZE –
1
Array index out of bounds: the index is out of bounds if it is < 0 or >
ARRAY_SIZE – 1
Array subscripting operator [ ]: used to access the array element at the position
number contained within the square brackets
Base address: the memory address of the first component in an array
Character array: an array whose components are of the type char
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
© 2015 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.
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8-13
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
element; continues until the item is found or there are no more elements
Simple data type: signifies that a variable can store only one value at a time
Structured data type: each data item is a collection of other data items
Two-dimensional array: a collection of a fixed number of components arranged in
rows and columns (that is, in two dimensions), wherein all components are of the same
type
© 2015 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.
Random documents with unrelated
content Scribd suggests to you:
*** END OF THE PROJECT GUTENBERG EBOOK DON BALASCO KEY
WESTISTÄ: NYKYAJAN KERTOMUS KUUBASTA ***
Updated editions will replace the previous one—the old editions will
be renamed.
1.D. The copyright laws of the place where you are located also
govern what you can do with this work. Copyright laws in most
countries are in a constant state of change. If you are outside the
United States, check the laws of your country in addition to the
terms of this agreement before downloading, copying, displaying,
performing, distributing or creating derivative works based on this
work or any other Project Gutenberg™ work. The Foundation makes
no representations concerning the copyright status of any work in
any country other than the United States.
1.E.6. You may convert to and distribute this work in any binary,
compressed, marked up, nonproprietary or proprietary form,
including any word processing or hypertext form. However, if you
provide access to or distribute copies of a Project Gutenberg™ work
in a format other than “Plain Vanilla ASCII” or other format used in
the official version posted on the official Project Gutenberg™ website
(www.gutenberg.org), you must, at no additional cost, fee or
expense to the user, provide a copy, a means of exporting a copy, or
a means of obtaining a copy upon request, of the work in its original
“Plain Vanilla ASCII” or other form. Any alternate format must
include the full Project Gutenberg™ License as specified in
paragraph 1.E.1.
• You pay a royalty fee of 20% of the gross profits you derive
from the use of Project Gutenberg™ works calculated using the
method you already use to calculate your applicable taxes. The
fee is owed to the owner of the Project Gutenberg™ trademark,
but he has agreed to donate royalties under this paragraph to
the Project Gutenberg Literary Archive Foundation. Royalty
payments must be paid within 60 days following each date on
which you prepare (or are legally required to prepare) your
periodic tax returns. Royalty payments should be clearly marked
as such and sent to the Project Gutenberg Literary Archive
Foundation at the address specified in Section 4, “Information
about donations to the Project Gutenberg Literary Archive
Foundation.”
• You comply with all other terms of this agreement for free
distribution of Project Gutenberg™ works.
1.F.
1.F.4. Except for the limited right of replacement or refund set forth
in paragraph 1.F.3, this work is provided to you ‘AS-IS’, WITH NO
OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR ANY PURPOSE.
Please check the Project Gutenberg web pages for current donation
methods and addresses. Donations are accepted in a number of
other ways including checks, online payments and credit card
donations. To donate, please visit: www.gutenberg.org/donate.
Most people start at our website which has the main PG search
facility: www.gutenberg.org.
testbankfan.com