SlideShare a Scribd company logo
1 of 57
Chapter 8 
Arrays and Strings
Objectives 
• In this chapter, you 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 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 2
Objectives (cont’d.) 
– 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 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 3
Objectives (cont’d.) 
– 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 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 4
Introduction 
• Simple data type: variables of these types can 
store only one value at a time 
• Structured data type: a data type in which 
each data item is a collection of other data 
items 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 5
Arrays 
• Array: a collection of a fixed number of 
components, all of the same data type 
• One-dimensional array: components are 
arranged in a list form 
• Syntax for declaring a one-dimensional array: 
• intExp: any constant expression that 
evaluates to a positive integer 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 6
Accessing Array Components 
• General syntax: 
• indexExp: called the index 
– An expression with a nonnegative integer value 
• Value of the index is the position of the item 
in the array 
• []: array subscripting operator 
– Array index always starts at 0 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 7
Accessing Array Components (cont’d.) 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8
Accessing Array Components (cont’d.) 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 9
Processing One-Dimensional Arrays 
• Basic operations on a one-dimensional array: 
– Initializing 
– Inputting data 
– Outputting data stored in an array 
– Finding the largest and/or smallest element 
• Each operation requires ability to step 
through elements of the array 
– Easily accomplished by a loop 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 10
Processing One-Dimensional Arrays 
(cont’d.) 
• Given the declaration: 
int list[100]; //array of size 100 
int i; 
• Use a for loop to access array elements: 
for (i = 0; i < 100; i++) //Line 1 
cin >> list[i]; //Line 2 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 11
Array Index Out of Bounds 
• Index of an array is in bounds if the index is 
>=0 and <= ARRAY_SIZE-1 
– Otherwise, the index is out of bounds 
• In C++, there is no guard against indices that 
are out of bounds 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 12
Array Initialization During Declaration 
• Arrays can be initialized during declaration 
– Values are placed between curly braces 
– Size determined by the number of initial values in 
the braces 
• Example: 
double sales[] = {12.25, 32.50, 16.90, 
23, 45.68}; 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 13
Partial Initialization of Arrays During 
Declaration 
• The statement: 
int list[10] = {0}; 
–Declares an array of 10 components and initializes 
all of them to zero 
• The statement: 
int list[10] = {8, 5, 12}; 
–Declares an array of 10 components and initializes 
list[0] to 8, list[1] to 5, list[2] to 12 
–All other components are initialized to 0 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 14
Some Restrictions on Array 
Processing 
• Aggregate operation: any operation that 
manipulates the entire array as a single unit 
– Not allowed on arrays in C++ 
• Example: 
• Solution: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 15
Arrays as Parameters to Functions 
• Arrays are passed by reference only 
• Do not use symbol & when declaring an array 
as a formal parameter 
• Size of the array is usually omitted 
– If provided, it is ignored by the compiler 
• Example: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 16
Constant Arrays 
as Formal Parameters 
17 
• Can prevent a function from changing the 
actual parameter when passed by reference 
– Use const in the declaration of the formal 
parameter 
• Example: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Base Address of an Array and Array in 
Computer Memory 
• Base address of an array: address (memory 
location) of the first array component 
• Example: 
– If list is a one-dimensional array, its base 
address is the address of list[0] 
• When an array is passed as a parameter, the 
base address of the actual array is passed to 
the formal parameter 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 18
Functions Cannot Return a Value of 
the Type Array 
• C++ does not allow functions to return a value 
of type array 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 19
Integral Data Type 
and Array Indices 
• C++ allows any integral type to be used as an 
array index 
– Improves code readability 
• Example: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 20
Other Ways to Declare Arrays 
21 
• Examples: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Searching an Array 
for a Specific Item 
• Sequential search (or linear search): 
– Searching a list for a given item, starting from the 
first array element 
– Compare each element in the array with value 
being searched for 
– Continue the search until item is found or no 
more data is left in the list 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 22
Sorting 
• Selection sort: rearrange the list by selecting 
an element and moving it to its proper 
position 
• Steps: 
– Find the smallest element in the unsorted portion 
of the list 
– Move it to the top of the unsorted portion by 
swapping with the element currently there 
– Start again with the rest of the list 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 23
Selection Sort (cont’d.) 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 24
Auto Declaration and Range-Based 
For Loops 
• C++11 allows auto declaration of variables 
– Data type does not need to be specified 
auto num = 15; // num is assumed int 
• Range-based for loop 
sum = 0; 
for (double num : list) // For each num 
sum = sum + num; // in list 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 25
C-Strings (Character Arrays) 
• Character array: an array whose components 
are of type char 
• C-strings are null-terminated ('0‘) 
character arrays 
• Example: 
– 'A' is the character A 
– "A" is the C-string A 
– "A" represents two characters, 'A' and '0‘ 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 26
C-Strings (Character Arrays) (cont’d.) 
• Example: 
char name[16]; 
• Since C-strings are null terminated and name 
has 16 components, the largest string it can 
store has 15 characters 
• If you store a string whose length is less than 
the array size, the last components are 
unused 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 27
C-Strings (Character Arrays) (cont’d.) 
• Size of an array can be omitted if the array is 
initialized during declaration 
• Example: 
char name[] = "John"; 
– Declares an array of length 5 and stores the C-string 
"John" in it 
• Useful string manipulation functions 
– strcpy, strcmp, and strlen 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 28
String Comparison 
• C-strings are compared character by character 
using the collating sequence of the system 
– Use the function strcmp 
• If using the ASCII character set: 
– "Air" < "Boat" 
– "Air" < "An" 
– "Bill" < "Billy" 
– "Hello" < "hello" 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 29
Reading and Writing Strings 
• Most rules for arrays also apply to C-strings 
(which are character arrays) 
• Aggregate operations, such as assignment and 
comparison, are not allowed on arrays 
• C++ does allow aggregate operations for the 
input and output of C-strings 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 30
String Input 
• Example: 
cin >> name; 
– Stores the next input C-string into name 
• To read strings with blanks, use get function: 
cin.get(str, m+1); 
– Stores the next m characters into str but the 
newline character is not stored in str 
– If input string has fewer than m characters, reading 
stops at the newline character 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 31
String Output 
• Example: 
cout << name; 
– Outputs the content of name on the screen 
– << continues to write the contents of name until it 
finds the null character 
– If name does not contain the null character, then 
strange output may occur 
• << continues to output data from memory adjacent to 
name until a '0' is found 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 32
Specifying Input/Output Files at 
Execution Time 
• User can specify the name of an input and/or 
output file at execution time: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 33
string Type 
and Input/Output Files 
• Argument to the open function must be a 
null-terminated string (a C-string) 
– If using a string variable for the name of an I/O 
file, the value must first be converted to a C-string 
before calling open 
– Use the c_str function to convert 
• Syntax: 
strVar.c_str() 
– Where strVar is a variable of type string 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 34
Parallel Arrays 
• Two (or more) arrays are called parallel if their 
corresponding components hold related 
information 
• Example: 
int studentId[50]; 
char courseGrade[50]; 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 35
Two- and Multidimensional 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: 
– intExp1 and intExp2 are expressions with 
positive integer values specifying the number of 
rows and columns in the array 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 36
Accessing Array Components 
• Accessing components in a two-dimensional 
array: 
– Where indexExp1 and indexExp2 are 
expressions with positive integer values, and 
specify the row and column position 
• Example: 
sales[5][3] = 25.75; 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 37
Accessing Array Components (cont’d.) 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 38
Two-Dimensional Array Initialization 
During Declaration 
• Two-dimensional arrays can be 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, unspecified elements are set 
to 0 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 39
Two-Dimensional Arrays and 
Enumeration Types 
40 
• Enumeration types can be used for array 
indices: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Processing Two-Dimensional Arrays 
• Ways to process a two-dimensional array: 
– Process entire array 
– Row processing: process a single row at a time 
– Column processing: process a single column at a 
time 
• 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 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 41
Initialization 
• Examples: 
– To initialize row number 4 (fifth row) to 0: 
– To initialize the entire matrix to 0: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 42
Print 
• Use a nested loop to output the components 
of a two dimensional array: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 43
Input 
• Examples: 
– To input into row number 4 (fifth row): 
– To input data into each component of matrix: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 44
Sum by Row 
• Example: 
– To find the sum of row number 4: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 45
Sum by Column 
• Example: 
– To find the sum of each individual column: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 46
Largest Element in Each Row 
and Each Column 
47 
• Example: 
– To find the largest element in each row: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition
Passing Two-Dimensional Arrays as 
Parameters to Functions 
• Two-dimensional arrays are passed by 
reference as parameters to a function 
– Base address is passed to formal parameter 
• Two-dimensional arrays are stored in row 
order 
• When declaring a two-dimensional array as a 
formal parameter, can omit size of first 
dimension, but not the second 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 48
Arrays of Strings 
• Strings in C++ can be manipulated using either 
the data type string or character arrays (C-strings) 
• On some compilers, the data type string 
may not be available in Standard C++ (i.e., 
non-ANSI/ISO Standard C++) 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 49
Arrays of Strings 
and the string Type 
• To declare an array of 100 components of 
type string: 
string list[100]; 
• Basic operations, such as assignment, 
comparison, and input/output, can be 
performed on values of the string type 
• The data in list can be processed just like 
any one-dimensional array 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 50
Arrays of Strings and C-Strings 
(Character Arrays) 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 51
Another Way to Declare 
a Two-Dimensional Array 
• Can use typedef to define a two-dimensional 
array data type: 
• To declare an array of 20 rows and 10 
columns: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 52
Multidimensional Arrays 
• n-dimensional array: collection of a fixed 
number of elements arranged in n dimensions 
(n >= 1) 
• Declaration syntax: 
• To access a component: 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 53
Summary 
• 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 
– Must always be less than the size of the array 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 54
Summary (cont’d.) 
• The base address of an array is the address of 
the first array component 
• When passing an array as an actual 
parameter, use only its name 
– Passed by reference only 
• A function cannot return an array type value 
• C++11 allows auto declaration of variables 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 55
Summary (cont’d.) 
• In C++, C-strings are null terminated and are 
stored in character arrays 
• Commonly used C-string manipulation 
functions include: 
– strcpy, strcmp, and strlen 
• Parallel arrays hold related information 
• In a two-dimensional array, the elements are 
arranged in a table form 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 56
Summary (cont’d.) 
• To access an element of a two-dimensional 
array, you need a pair of indices: 
– One for row position, one for 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 
C++ Programming: From Problem Analysis to Program Design, Seventh Edition 57

More Related Content

What's hot

9781285852744 ppt ch11
9781285852744 ppt ch119781285852744 ppt ch11
9781285852744 ppt ch11Terry Yoast
 
9781285852744 ppt ch09
9781285852744 ppt ch099781285852744 ppt ch09
9781285852744 ppt ch09Terry Yoast
 
9781285852744 ppt ch15
9781285852744 ppt ch159781285852744 ppt ch15
9781285852744 ppt ch15Terry Yoast
 
9781285852744 ppt ch02
9781285852744 ppt ch029781285852744 ppt ch02
9781285852744 ppt ch02Terry Yoast
 
9781285852744 ppt ch14
9781285852744 ppt ch149781285852744 ppt ch14
9781285852744 ppt ch14Terry Yoast
 
9781111530532 ppt ch02
9781111530532 ppt ch029781111530532 ppt ch02
9781111530532 ppt ch02Terry Yoast
 
07 control+structures
07 control+structures07 control+structures
07 control+structuresbaran19901990
 
Lex tool manual
Lex tool manualLex tool manual
Lex tool manualSami Said
 
Practical Malware Analysis: Ch 6: Recognizing C Code Constructs in Assembly
Practical Malware Analysis: Ch 6: Recognizing C Code Constructs in AssemblyPractical Malware Analysis: Ch 6: Recognizing C Code Constructs in Assembly
Practical Malware Analysis: Ch 6: Recognizing C Code Constructs in AssemblySam Bowne
 
9781439035665 ppt ch05
9781439035665 ppt ch059781439035665 ppt ch05
9781439035665 ppt ch05Terry Yoast
 
Chapter 2 Basics of MATLAB
Chapter 2 Basics of MATLABChapter 2 Basics of MATLAB
Chapter 2 Basics of MATLABPranoti Doke
 
Lab view introduction-threehour
Lab view introduction-threehourLab view introduction-threehour
Lab view introduction-threehoure-LabVIEW
 
TMPA-2017: Vellvm - Verifying the LLVM
TMPA-2017: Vellvm - Verifying the LLVMTMPA-2017: Vellvm - Verifying the LLVM
TMPA-2017: Vellvm - Verifying the LLVMIosif Itkin
 

What's hot (18)

9781285852744 ppt ch11
9781285852744 ppt ch119781285852744 ppt ch11
9781285852744 ppt ch11
 
9781285852744 ppt ch09
9781285852744 ppt ch099781285852744 ppt ch09
9781285852744 ppt ch09
 
9781285852744 ppt ch15
9781285852744 ppt ch159781285852744 ppt ch15
9781285852744 ppt ch15
 
9781285852744 ppt ch02
9781285852744 ppt ch029781285852744 ppt ch02
9781285852744 ppt ch02
 
9781285852744 ppt ch14
9781285852744 ppt ch149781285852744 ppt ch14
9781285852744 ppt ch14
 
Lesson 13 object and class
Lesson 13 object and classLesson 13 object and class
Lesson 13 object and class
 
9781111530532 ppt ch02
9781111530532 ppt ch029781111530532 ppt ch02
9781111530532 ppt ch02
 
Rseminarp
RseminarpRseminarp
Rseminarp
 
Lex & yacc
Lex & yaccLex & yacc
Lex & yacc
 
Yacc
YaccYacc
Yacc
 
java8
java8java8
java8
 
07 control+structures
07 control+structures07 control+structures
07 control+structures
 
Lex tool manual
Lex tool manualLex tool manual
Lex tool manual
 
Practical Malware Analysis: Ch 6: Recognizing C Code Constructs in Assembly
Practical Malware Analysis: Ch 6: Recognizing C Code Constructs in AssemblyPractical Malware Analysis: Ch 6: Recognizing C Code Constructs in Assembly
Practical Malware Analysis: Ch 6: Recognizing C Code Constructs in Assembly
 
9781439035665 ppt ch05
9781439035665 ppt ch059781439035665 ppt ch05
9781439035665 ppt ch05
 
Chapter 2 Basics of MATLAB
Chapter 2 Basics of MATLABChapter 2 Basics of MATLAB
Chapter 2 Basics of MATLAB
 
Lab view introduction-threehour
Lab view introduction-threehourLab view introduction-threehour
Lab view introduction-threehour
 
TMPA-2017: Vellvm - Verifying the LLVM
TMPA-2017: Vellvm - Verifying the LLVMTMPA-2017: Vellvm - Verifying the LLVM
TMPA-2017: Vellvm - Verifying the LLVM
 

Similar to 9781285852744 ppt ch08

9781423902096_PPT_ch09.ppt
9781423902096_PPT_ch09.ppt9781423902096_PPT_ch09.ppt
9781423902096_PPT_ch09.pptLokeshK66
 
9781423902096_PPT_ch08.ppt
9781423902096_PPT_ch08.ppt9781423902096_PPT_ch08.ppt
9781423902096_PPT_ch08.pptLokeshK66
 
Computer Programming
Computer ProgrammingComputer Programming
Computer ProgrammingBurhan Fakhar
 
Csc1100 lecture09 ch07_pt2
Csc1100 lecture09 ch07_pt2Csc1100 lecture09 ch07_pt2
Csc1100 lecture09 ch07_pt2IIUM
 
(2) collections algorithms
(2) collections algorithms(2) collections algorithms
(2) collections algorithmsNico Ludwig
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming LanguageAhmad Idrees
 
Review chapter 1 2-3
Review chapter 1 2-3Review chapter 1 2-3
Review chapter 1 2-3ahmed22dg
 
R programming slides
R  programming slidesR  programming slides
R programming slidesPankaj Saini
 
Object oriented programming 8 basics of c++ programming
Object oriented programming 8 basics of c++ programmingObject oriented programming 8 basics of c++ programming
Object oriented programming 8 basics of c++ programmingVaibhav Khanna
 
Arrays_and_Strings_in_C_Programming.pptx
Arrays_and_Strings_in_C_Programming.pptxArrays_and_Strings_in_C_Programming.pptx
Arrays_and_Strings_in_C_Programming.pptxsamreenghauri786
 
Python-for-Data-Analysis.pptx
Python-for-Data-Analysis.pptxPython-for-Data-Analysis.pptx
Python-for-Data-Analysis.pptxSandeep Singh
 
Python for Data Analysis.pdf
Python for Data Analysis.pdfPython for Data Analysis.pdf
Python for Data Analysis.pdfJulioRecaldeLara1
 
Python-for-Data-Analysis.pptx
Python-for-Data-Analysis.pptxPython-for-Data-Analysis.pptx
Python-for-Data-Analysis.pptxtangadhurai
 

Similar to 9781285852744 ppt ch08 (20)

9781423902096_PPT_ch09.ppt
9781423902096_PPT_ch09.ppt9781423902096_PPT_ch09.ppt
9781423902096_PPT_ch09.ppt
 
ch9.ppt
ch9.pptch9.ppt
ch9.ppt
 
9781423902096_PPT_ch08.ppt
9781423902096_PPT_ch08.ppt9781423902096_PPT_ch08.ppt
9781423902096_PPT_ch08.ppt
 
4.ArraysInC.pdf
4.ArraysInC.pdf4.ArraysInC.pdf
4.ArraysInC.pdf
 
C++.ppt
C++.pptC++.ppt
C++.ppt
 
Computer Programming
Computer ProgrammingComputer Programming
Computer Programming
 
Csc1100 lecture09 ch07_pt2
Csc1100 lecture09 ch07_pt2Csc1100 lecture09 ch07_pt2
Csc1100 lecture09 ch07_pt2
 
(2) collections algorithms
(2) collections algorithms(2) collections algorithms
(2) collections algorithms
 
Arrays in C++
Arrays in C++Arrays in C++
Arrays in C++
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming Language
 
Lecture 9.pptx
Lecture 9.pptxLecture 9.pptx
Lecture 9.pptx
 
Review chapter 1 2-3
Review chapter 1 2-3Review chapter 1 2-3
Review chapter 1 2-3
 
R programming slides
R  programming slidesR  programming slides
R programming slides
 
arrays.pptx
arrays.pptxarrays.pptx
arrays.pptx
 
Object oriented programming 8 basics of c++ programming
Object oriented programming 8 basics of c++ programmingObject oriented programming 8 basics of c++ programming
Object oriented programming 8 basics of c++ programming
 
Python for data analysis
Python for data analysisPython for data analysis
Python for data analysis
 
Arrays_and_Strings_in_C_Programming.pptx
Arrays_and_Strings_in_C_Programming.pptxArrays_and_Strings_in_C_Programming.pptx
Arrays_and_Strings_in_C_Programming.pptx
 
Python-for-Data-Analysis.pptx
Python-for-Data-Analysis.pptxPython-for-Data-Analysis.pptx
Python-for-Data-Analysis.pptx
 
Python for Data Analysis.pdf
Python for Data Analysis.pdfPython for Data Analysis.pdf
Python for Data Analysis.pdf
 
Python-for-Data-Analysis.pptx
Python-for-Data-Analysis.pptxPython-for-Data-Analysis.pptx
Python-for-Data-Analysis.pptx
 

More from Terry Yoast

9781305078444 ppt ch12
9781305078444 ppt ch129781305078444 ppt ch12
9781305078444 ppt ch12Terry Yoast
 
9781305078444 ppt ch11
9781305078444 ppt ch119781305078444 ppt ch11
9781305078444 ppt ch11Terry Yoast
 
9781305078444 ppt ch10
9781305078444 ppt ch109781305078444 ppt ch10
9781305078444 ppt ch10Terry Yoast
 
9781305078444 ppt ch09
9781305078444 ppt ch099781305078444 ppt ch09
9781305078444 ppt ch09Terry Yoast
 
9781305078444 ppt ch08
9781305078444 ppt ch089781305078444 ppt ch08
9781305078444 ppt ch08Terry Yoast
 
9781305078444 ppt ch07
9781305078444 ppt ch079781305078444 ppt ch07
9781305078444 ppt ch07Terry Yoast
 
9781305078444 ppt ch06
9781305078444 ppt ch069781305078444 ppt ch06
9781305078444 ppt ch06Terry Yoast
 
9781305078444 ppt ch05
9781305078444 ppt ch059781305078444 ppt ch05
9781305078444 ppt ch05Terry Yoast
 
9781305078444 ppt ch04
9781305078444 ppt ch049781305078444 ppt ch04
9781305078444 ppt ch04Terry Yoast
 
9781305078444 ppt ch03
9781305078444 ppt ch039781305078444 ppt ch03
9781305078444 ppt ch03Terry Yoast
 
9781305078444 ppt ch02
9781305078444 ppt ch029781305078444 ppt ch02
9781305078444 ppt ch02Terry Yoast
 
9781305078444 ppt ch01
9781305078444 ppt ch019781305078444 ppt ch01
9781305078444 ppt ch01Terry Yoast
 
9781337102087 ppt ch13
9781337102087 ppt ch139781337102087 ppt ch13
9781337102087 ppt ch13Terry Yoast
 
9781337102087 ppt ch18
9781337102087 ppt ch189781337102087 ppt ch18
9781337102087 ppt ch18Terry Yoast
 
9781337102087 ppt ch17
9781337102087 ppt ch179781337102087 ppt ch17
9781337102087 ppt ch17Terry Yoast
 
9781337102087 ppt ch16
9781337102087 ppt ch169781337102087 ppt ch16
9781337102087 ppt ch16Terry Yoast
 
9781337102087 ppt ch15
9781337102087 ppt ch159781337102087 ppt ch15
9781337102087 ppt ch15Terry Yoast
 
9781337102087 ppt ch14
9781337102087 ppt ch149781337102087 ppt ch14
9781337102087 ppt ch14Terry Yoast
 
9781337102087 ppt ch12
9781337102087 ppt ch129781337102087 ppt ch12
9781337102087 ppt ch12Terry Yoast
 
9781337102087 ppt ch11
9781337102087 ppt ch119781337102087 ppt ch11
9781337102087 ppt ch11Terry Yoast
 

More from Terry Yoast (20)

9781305078444 ppt ch12
9781305078444 ppt ch129781305078444 ppt ch12
9781305078444 ppt ch12
 
9781305078444 ppt ch11
9781305078444 ppt ch119781305078444 ppt ch11
9781305078444 ppt ch11
 
9781305078444 ppt ch10
9781305078444 ppt ch109781305078444 ppt ch10
9781305078444 ppt ch10
 
9781305078444 ppt ch09
9781305078444 ppt ch099781305078444 ppt ch09
9781305078444 ppt ch09
 
9781305078444 ppt ch08
9781305078444 ppt ch089781305078444 ppt ch08
9781305078444 ppt ch08
 
9781305078444 ppt ch07
9781305078444 ppt ch079781305078444 ppt ch07
9781305078444 ppt ch07
 
9781305078444 ppt ch06
9781305078444 ppt ch069781305078444 ppt ch06
9781305078444 ppt ch06
 
9781305078444 ppt ch05
9781305078444 ppt ch059781305078444 ppt ch05
9781305078444 ppt ch05
 
9781305078444 ppt ch04
9781305078444 ppt ch049781305078444 ppt ch04
9781305078444 ppt ch04
 
9781305078444 ppt ch03
9781305078444 ppt ch039781305078444 ppt ch03
9781305078444 ppt ch03
 
9781305078444 ppt ch02
9781305078444 ppt ch029781305078444 ppt ch02
9781305078444 ppt ch02
 
9781305078444 ppt ch01
9781305078444 ppt ch019781305078444 ppt ch01
9781305078444 ppt ch01
 
9781337102087 ppt ch13
9781337102087 ppt ch139781337102087 ppt ch13
9781337102087 ppt ch13
 
9781337102087 ppt ch18
9781337102087 ppt ch189781337102087 ppt ch18
9781337102087 ppt ch18
 
9781337102087 ppt ch17
9781337102087 ppt ch179781337102087 ppt ch17
9781337102087 ppt ch17
 
9781337102087 ppt ch16
9781337102087 ppt ch169781337102087 ppt ch16
9781337102087 ppt ch16
 
9781337102087 ppt ch15
9781337102087 ppt ch159781337102087 ppt ch15
9781337102087 ppt ch15
 
9781337102087 ppt ch14
9781337102087 ppt ch149781337102087 ppt ch14
9781337102087 ppt ch14
 
9781337102087 ppt ch12
9781337102087 ppt ch129781337102087 ppt ch12
9781337102087 ppt ch12
 
9781337102087 ppt ch11
9781337102087 ppt ch119781337102087 ppt ch11
9781337102087 ppt ch11
 

Recently uploaded

DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...JhezDiaz1
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Jisc
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxUnboundStockton
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxabhijeetpadhi001
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Celine George
 
Capitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitolTechU
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Celine George
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxRaymartEstabillo3
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfMr Bounab Samir
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPCeline George
 

Recently uploaded (20)

DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
ENGLISH 7_Q4_LESSON 2_ Employing a Variety of Strategies for Effective Interp...
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...Procuring digital preservation CAN be quick and painless with our new dynamic...
Procuring digital preservation CAN be quick and painless with our new dynamic...
 
Blooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docxBlooming Together_ Growing a Community Garden Worksheet.docx
Blooming Together_ Growing a Community Garden Worksheet.docx
 
MICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptxMICROBIOLOGY biochemical test detailed.pptx
MICROBIOLOGY biochemical test detailed.pptx
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17Computed Fields and api Depends in the Odoo 17
Computed Fields and api Depends in the Odoo 17
 
Capitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptxCapitol Tech U Doctoral Presentation - April 2024.pptx
Capitol Tech U Doctoral Presentation - April 2024.pptx
 
Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17Difference Between Search & Browse Methods in Odoo 17
Difference Between Search & Browse Methods in Odoo 17
 
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptxEPANDING THE CONTENT OF AN OUTLINE using notes.pptx
EPANDING THE CONTENT OF AN OUTLINE using notes.pptx
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)ESSENTIAL of (CS/IT/IS) class 06 (database)
ESSENTIAL of (CS/IT/IS) class 06 (database)
 
9953330565 Low Rate Call Girls In Rohini Delhi NCR
9953330565 Low Rate Call Girls In Rohini  Delhi NCR9953330565 Low Rate Call Girls In Rohini  Delhi NCR
9953330565 Low Rate Call Girls In Rohini Delhi NCR
 
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdfLike-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
Like-prefer-love -hate+verb+ing & silent letters & citizenship text.pdf
 
What is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERPWhat is Model Inheritance in Odoo 17 ERP
What is Model Inheritance in Odoo 17 ERP
 

9781285852744 ppt ch08

  • 1. Chapter 8 Arrays and Strings
  • 2. Objectives • In this chapter, you 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 C++ Programming: From Problem Analysis to Program Design, Seventh Edition 2
  • 3. Objectives (cont’d.) – 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 C++ Programming: From Problem Analysis to Program Design, Seventh Edition 3
  • 4. Objectives (cont’d.) – 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 C++ Programming: From Problem Analysis to Program Design, Seventh Edition 4
  • 5. Introduction • Simple data type: variables of these types can store only one value at a time • Structured data type: a data type in which each data item is a collection of other data items C++ Programming: From Problem Analysis to Program Design, Seventh Edition 5
  • 6. Arrays • Array: a collection of a fixed number of components, all of the same data type • One-dimensional array: components are arranged in a list form • Syntax for declaring a one-dimensional array: • intExp: any constant expression that evaluates to a positive integer C++ Programming: From Problem Analysis to Program Design, Seventh Edition 6
  • 7. Accessing Array Components • General syntax: • indexExp: called the index – An expression with a nonnegative integer value • Value of the index is the position of the item in the array • []: array subscripting operator – Array index always starts at 0 C++ Programming: From Problem Analysis to Program Design, Seventh Edition 7
  • 8. Accessing Array Components (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition 8
  • 9. Accessing Array Components (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition 9
  • 10. Processing One-Dimensional Arrays • Basic operations on a one-dimensional array: – Initializing – Inputting data – Outputting data stored in an array – Finding the largest and/or smallest element • Each operation requires ability to step through elements of the array – Easily accomplished by a loop C++ Programming: From Problem Analysis to Program Design, Seventh Edition 10
  • 11. Processing One-Dimensional Arrays (cont’d.) • Given the declaration: int list[100]; //array of size 100 int i; • Use a for loop to access array elements: for (i = 0; i < 100; i++) //Line 1 cin >> list[i]; //Line 2 C++ Programming: From Problem Analysis to Program Design, Seventh Edition 11
  • 12. Array Index Out of Bounds • Index of an array is in bounds if the index is >=0 and <= ARRAY_SIZE-1 – Otherwise, the index is out of bounds • In C++, there is no guard against indices that are out of bounds C++ Programming: From Problem Analysis to Program Design, Seventh Edition 12
  • 13. Array Initialization During Declaration • Arrays can be initialized during declaration – Values are placed between curly braces – Size determined by the number of initial values in the braces • Example: double sales[] = {12.25, 32.50, 16.90, 23, 45.68}; C++ Programming: From Problem Analysis to Program Design, Seventh Edition 13
  • 14. Partial Initialization of Arrays During Declaration • The statement: int list[10] = {0}; –Declares an array of 10 components and initializes all of them to zero • The statement: int list[10] = {8, 5, 12}; –Declares an array of 10 components and initializes list[0] to 8, list[1] to 5, list[2] to 12 –All other components are initialized to 0 C++ Programming: From Problem Analysis to Program Design, Seventh Edition 14
  • 15. Some Restrictions on Array Processing • Aggregate operation: any operation that manipulates the entire array as a single unit – Not allowed on arrays in C++ • Example: • Solution: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 15
  • 16. Arrays as Parameters to Functions • Arrays are passed by reference only • Do not use symbol & when declaring an array as a formal parameter • Size of the array is usually omitted – If provided, it is ignored by the compiler • Example: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 16
  • 17. Constant Arrays as Formal Parameters 17 • Can prevent a function from changing the actual parameter when passed by reference – Use const in the declaration of the formal parameter • Example: C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 18. Base Address of an Array and Array in Computer Memory • Base address of an array: address (memory location) of the first array component • Example: – If list is a one-dimensional array, its base address is the address of list[0] • When an array is passed as a parameter, the base address of the actual array is passed to the formal parameter C++ Programming: From Problem Analysis to Program Design, Seventh Edition 18
  • 19. Functions Cannot Return a Value of the Type Array • C++ does not allow functions to return a value of type array C++ Programming: From Problem Analysis to Program Design, Seventh Edition 19
  • 20. Integral Data Type and Array Indices • C++ allows any integral type to be used as an array index – Improves code readability • Example: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 20
  • 21. Other Ways to Declare Arrays 21 • Examples: C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 22. Searching an Array for a Specific Item • Sequential search (or linear search): – Searching a list for a given item, starting from the first array element – Compare each element in the array with value being searched for – Continue the search until item is found or no more data is left in the list C++ Programming: From Problem Analysis to Program Design, Seventh Edition 22
  • 23. Sorting • Selection sort: rearrange the list by selecting an element and moving it to its proper position • Steps: – Find the smallest element in the unsorted portion of the list – Move it to the top of the unsorted portion by swapping with the element currently there – Start again with the rest of the list C++ Programming: From Problem Analysis to Program Design, Seventh Edition 23
  • 24. Selection Sort (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition 24
  • 25. Auto Declaration and Range-Based For Loops • C++11 allows auto declaration of variables – Data type does not need to be specified auto num = 15; // num is assumed int • Range-based for loop sum = 0; for (double num : list) // For each num sum = sum + num; // in list C++ Programming: From Problem Analysis to Program Design, Seventh Edition 25
  • 26. C-Strings (Character Arrays) • Character array: an array whose components are of type char • C-strings are null-terminated ('0‘) character arrays • Example: – 'A' is the character A – "A" is the C-string A – "A" represents two characters, 'A' and '0‘ C++ Programming: From Problem Analysis to Program Design, Seventh Edition 26
  • 27. C-Strings (Character Arrays) (cont’d.) • Example: char name[16]; • Since C-strings are null terminated and name has 16 components, the largest string it can store has 15 characters • If you store a string whose length is less than the array size, the last components are unused C++ Programming: From Problem Analysis to Program Design, Seventh Edition 27
  • 28. C-Strings (Character Arrays) (cont’d.) • Size of an array can be omitted if the array is initialized during declaration • Example: char name[] = "John"; – Declares an array of length 5 and stores the C-string "John" in it • Useful string manipulation functions – strcpy, strcmp, and strlen C++ Programming: From Problem Analysis to Program Design, Seventh Edition 28
  • 29. String Comparison • C-strings are compared character by character using the collating sequence of the system – Use the function strcmp • If using the ASCII character set: – "Air" < "Boat" – "Air" < "An" – "Bill" < "Billy" – "Hello" < "hello" C++ Programming: From Problem Analysis to Program Design, Seventh Edition 29
  • 30. Reading and Writing Strings • Most rules for arrays also apply to C-strings (which are character arrays) • Aggregate operations, such as assignment and comparison, are not allowed on arrays • C++ does allow aggregate operations for the input and output of C-strings C++ Programming: From Problem Analysis to Program Design, Seventh Edition 30
  • 31. String Input • Example: cin >> name; – Stores the next input C-string into name • To read strings with blanks, use get function: cin.get(str, m+1); – Stores the next m characters into str but the newline character is not stored in str – If input string has fewer than m characters, reading stops at the newline character C++ Programming: From Problem Analysis to Program Design, Seventh Edition 31
  • 32. String Output • Example: cout << name; – Outputs the content of name on the screen – << continues to write the contents of name until it finds the null character – If name does not contain the null character, then strange output may occur • << continues to output data from memory adjacent to name until a '0' is found C++ Programming: From Problem Analysis to Program Design, Seventh Edition 32
  • 33. Specifying Input/Output Files at Execution Time • User can specify the name of an input and/or output file at execution time: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 33
  • 34. string Type and Input/Output Files • Argument to the open function must be a null-terminated string (a C-string) – If using a string variable for the name of an I/O file, the value must first be converted to a C-string before calling open – Use the c_str function to convert • Syntax: strVar.c_str() – Where strVar is a variable of type string C++ Programming: From Problem Analysis to Program Design, Seventh Edition 34
  • 35. Parallel Arrays • Two (or more) arrays are called parallel if their corresponding components hold related information • Example: int studentId[50]; char courseGrade[50]; C++ Programming: From Problem Analysis to Program Design, Seventh Edition 35
  • 36. Two- and Multidimensional 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: – intExp1 and intExp2 are expressions with positive integer values specifying the number of rows and columns in the array C++ Programming: From Problem Analysis to Program Design, Seventh Edition 36
  • 37. Accessing Array Components • Accessing components in a two-dimensional array: – Where indexExp1 and indexExp2 are expressions with positive integer values, and specify the row and column position • Example: sales[5][3] = 25.75; C++ Programming: From Problem Analysis to Program Design, Seventh Edition 37
  • 38. Accessing Array Components (cont’d.) C++ Programming: From Problem Analysis to Program Design, Seventh Edition 38
  • 39. Two-Dimensional Array Initialization During Declaration • Two-dimensional arrays can be 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, unspecified elements are set to 0 C++ Programming: From Problem Analysis to Program Design, Seventh Edition 39
  • 40. Two-Dimensional Arrays and Enumeration Types 40 • Enumeration types can be used for array indices: C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 41. Processing Two-Dimensional Arrays • Ways to process a two-dimensional array: – Process entire array – Row processing: process a single row at a time – Column processing: process a single column at a time • 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 C++ Programming: From Problem Analysis to Program Design, Seventh Edition 41
  • 42. Initialization • Examples: – To initialize row number 4 (fifth row) to 0: – To initialize the entire matrix to 0: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 42
  • 43. Print • Use a nested loop to output the components of a two dimensional array: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 43
  • 44. Input • Examples: – To input into row number 4 (fifth row): – To input data into each component of matrix: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 44
  • 45. Sum by Row • Example: – To find the sum of row number 4: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 45
  • 46. Sum by Column • Example: – To find the sum of each individual column: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 46
  • 47. Largest Element in Each Row and Each Column 47 • Example: – To find the largest element in each row: C++ Programming: From Problem Analysis to Program Design, Seventh Edition
  • 48. Passing Two-Dimensional Arrays as Parameters to Functions • Two-dimensional arrays are passed by reference as parameters to a function – Base address is passed to formal parameter • Two-dimensional arrays are stored in row order • When declaring a two-dimensional array as a formal parameter, can omit size of first dimension, but not the second C++ Programming: From Problem Analysis to Program Design, Seventh Edition 48
  • 49. Arrays of Strings • Strings in C++ can be manipulated using either the data type string or character arrays (C-strings) • On some compilers, the data type string may not be available in Standard C++ (i.e., non-ANSI/ISO Standard C++) C++ Programming: From Problem Analysis to Program Design, Seventh Edition 49
  • 50. Arrays of Strings and the string Type • To declare an array of 100 components of type string: string list[100]; • Basic operations, such as assignment, comparison, and input/output, can be performed on values of the string type • The data in list can be processed just like any one-dimensional array C++ Programming: From Problem Analysis to Program Design, Seventh Edition 50
  • 51. Arrays of Strings and C-Strings (Character Arrays) C++ Programming: From Problem Analysis to Program Design, Seventh Edition 51
  • 52. Another Way to Declare a Two-Dimensional Array • Can use typedef to define a two-dimensional array data type: • To declare an array of 20 rows and 10 columns: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 52
  • 53. Multidimensional Arrays • n-dimensional array: collection of a fixed number of elements arranged in n dimensions (n >= 1) • Declaration syntax: • To access a component: C++ Programming: From Problem Analysis to Program Design, Seventh Edition 53
  • 54. Summary • 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 – Must always be less than the size of the array C++ Programming: From Problem Analysis to Program Design, Seventh Edition 54
  • 55. Summary (cont’d.) • The base address of an array is the address of the first array component • When passing an array as an actual parameter, use only its name – Passed by reference only • A function cannot return an array type value • C++11 allows auto declaration of variables C++ Programming: From Problem Analysis to Program Design, Seventh Edition 55
  • 56. Summary (cont’d.) • In C++, C-strings are null terminated and are stored in character arrays • Commonly used C-string manipulation functions include: – strcpy, strcmp, and strlen • Parallel arrays hold related information • In a two-dimensional array, the elements are arranged in a table form C++ Programming: From Problem Analysis to Program Design, Seventh Edition 56
  • 57. Summary (cont’d.) • To access an element of a two-dimensional array, you need a pair of indices: – One for row position, one for 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 C++ Programming: From Problem Analysis to Program Design, Seventh Edition 57