0% found this document useful (0 votes)
4 views

Introduction To C - C++Programming Lesson 4

Uploaded by

xukunzh11
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Introduction To C - C++Programming Lesson 4

Uploaded by

xukunzh11
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 39

Lesson 4

Arrays
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: Program Design Including Data


2
Structures, Seventh Edition
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: Program Design Including Data


3
Structures, Seventh Edition
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: Program Design Including Data


4
Structures, Seventh Edition
Accessing Array Components (cont’d.)

C++ Programming: Program Design Including Data


5
Structures, Seventh Edition
Accessing Array Components (cont’d.)

C++ Programming: Program Design Including Data


6
Structures, Seventh Edition
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: Program Design Including Data


7
Structures, Seventh Edition
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: Program Design Including Data


8
Structures, Seventh Edition
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: Program Design Including Data


9
Structures, Seventh Edition
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: Program Design Including Data


10
Structures, Seventh Edition
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: Program Design Including Data


11
Structures, Seventh Edition
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: Program Design Including Data


12
Structures, Seventh Edition
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: Program Design Including Data


13
Structures, Seventh Edition
Constant Arrays
as Formal Parameters
• 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: Program Design Including Data


14
Structures, 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: Program Design Including Data


15
Structures, Seventh Edition
Functions Cannot Return a Value of the Type
Array
• C++ does not allow functions to return a value of type array

C++ Programming: Program Design Including Data


16
Structures, 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: Program Design Including Data


17
Structures, Seventh Edition
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: Program Design Including Data


18
Structures, Seventh Edition
Selection Sort (cont’d.)

C++ Programming: Program Design Including Data


19
Structures, Seventh Edition
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: Program Design Including Data


20
Structures, Seventh Edition
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: Program Design Including Data


21
Structures, Seventh Edition
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: Program Design Including Data


22
Structures, Seventh Edition
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: Program Design Including Data


23
Structures, Seventh Edition
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: Program Design Including Data


24
Structures, Seventh Edition
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: Program Design Including Data


25
Structures, Seventh Edition
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: Program Design Including Data


26
Structures, Seventh Edition
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: Program Design Including Data


27
Structures, Seventh Edition
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: Program Design Including Data


28
Structures, Seventh Edition
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: Program Design Including Data


29
Structures, Seventh Edition
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: Program Design Including Data


30
Structures, Seventh Edition
Accessing Array Components (cont’d.)

C++ Programming: Program Design Including Data


31
Structures, Seventh Edition
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: Program Design Including Data


32
Structures, 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: Program Design Including Data


33
Structures, Seventh Edition
Initialization
• Examples:
• To initialize row number 4 (fifth row) to 0:

• To initialize the entire matrix to 0:

C++ Programming: Program Design Including Data


34
Structures, Seventh Edition
Print
• Use a nested loop to output the components of a two dimensional
array:

C++ Programming: Program Design Including Data


35
Structures, Seventh Edition
Input
• Examples:
• To input into row number 4 (fifth row):

• To input data into each component of matrix:

C++ Programming: Program Design Including Data


36
Structures, Seventh Edition
Sum by Row
• Example:
• To find the sum of row number 4:

C++ Programming: Program Design Including Data


37
Structures, Seventh Edition
Sum by Column
• Example:
• To find the sum of each individual column:

C++ Programming: Program Design Including Data


38
Structures, Seventh Edition
Largest Element in Each Row
and Each Column
• Example:
– To find the largest element in each row:

C++ Programming: Program Design Including Data


39
Structures, Seventh Edition

You might also like