Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
10 views

Introduction To C - C++Programming Lesson 4

Uploaded by

xukunzh11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

Introduction To C - C++Programming Lesson 4

Uploaded by

xukunzh11
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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