
Chapter 5 ABSOLUTE C++ Arrays WALTER SAVITCH SECOND EDITION PEARSON Copyright2006 Pearson Addison-Wesley All rights reserved
Chapter 5 Arrays

Learning Objectives Introduction to Arrays Declaring and referencing arrays ◆For-loops and arrays ◆Arrays in memory ◆Arrays in Functions Arrays as function arguments,return values Programming with Arrays Partially Filled Arrays,searching,sorting Multidimensional Arrays Copyright 2006 Pearson Addison-Wesley.All rights reserved. 5-2
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 5-2 Learning Objectives ¨ Introduction to Arrays ¨ Declaring and referencing arrays ¨ For-loops and arrays ¨ Arrays in memory ¨ Arrays in Functions ¨ Arrays as function arguments, return values ¨ Programming with Arrays ¨ Partially Filled Arrays, searching, sorting ¨ Multidimensional Arrays

Introduction to Arrays ◆Array definition: A collection of data of same type First "aggregate"data type ◆Means"grouping" int,float,double,char are simple data types Used for lists of like items Test scores,temperatures,names,etc. Avoids declaring multiple simple variables Can manipulate "list"as one entity Copyright006 Pearson Addison-Wesley.All rights reserved. 5-3
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 5-3 Introduction to Arrays ¨ Array definition: ¨ A collection of data of same type ¨ First "aggregate" data type ¨ Means "grouping" ¨ int, float, double, char are simple data types ¨ Used for lists of like items ¨ Test scores, temperatures, names, etc. ¨ Avoids declaring multiple simple variables ¨ Can manipulate "list" as one entity

Declaring Arrays ◆ Declare the array allocates memory int score[5]; Declares array of 5 integers named "score" Similar to declaring five variables: int score[0],score[1],score[2],score[3],score[4] Individual parts called many things: Indexed or subscripted variables "Elements"of the array Value in brackets called index or subscript Numbered from 0 to size-1 Copyright 2006 Pearson Addison-Wesley.All rights reserved. 5-4
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 5-4 Declaring Arrays ¨ Declare the array allocates memory int score[5]; ¨ Declares array of 5 integers named "score" ¨ Similar to declaring five variables: int score[0], score[1], score[2], score[3], score[4] ¨ Individual parts called many things: ¨ Indexed or subscripted variables ¨ "Elements" of the array ¨ Value in brackets called index or subscript ¨ Numbered from 0 to size - 1

Accessing Arrays Access using index/subscript ◆cout<<score[3]; Note two uses of brackets: In declaration,specifies SIZE of array Anywhere else,specifies a subscript Size,subscript need not be literal int score[MAX SCORES]; ◆score[n+1]=99; If n is 2,identical to:score[3] Copyright006 Pearson Addison-Wesley.All rights reserved. 5-5
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 5-5 Accessing Arrays ¨ Access using index/subscript ¨ cout << score[3]; ¨ Note two uses of brackets: ¨ In declaration, specifies SIZE of array ¨ Anywhere else, specifies a subscript ¨ Size, subscript need not be literal ¨ int score[MAX_SCORES]; ¨ score[n+1] = 99; ¨ If n is 2, identical to: score[3]

Array Usage Powerful storage mechanism Can issue command like: "Do this to ith indexed variable" where i is computed by program "Display all elements of array score" "Fill elements of array score from user input" "Find highest value in array score" "Find lowest value in array score" Copyright 2006 Pearson Addison-Wesley.All rights reserved. 5-6
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 5-6 Array Usage ¨ Powerful storage mechanism ¨ Can issue command like: ¨ "Do this to i th indexed variable" where i is computed by program ¨ "Display all elements of array score" ¨ "Fill elements of array score from user input" ¨ "Find highest value in array score" ¨ "Find lowest value in array score

Array Program Example: Display 5.1 Program Using an Array(1 of 2) Display 5.1 Program Using an Array 1 //Reads in five scores and shows how much each 2 //score differs from the highest score. 3 #include 4 using namespace std; int main() 6 7 int i,score[5],max; cout score[0]; max =score[0]; 11 for (i =1;iscore[i]; 14 if (score[i]max) 15 max score[i]; 16 //max is the largest of the values score[0],.,score[i]. 17 Copyright006 Pearson Addison-Wesley.All rights reserved. 5-7
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 5-7 Array Program Example: Display 5.1 Program Using an Array (1 of 2)

Array Program Example: Display 5.1 Program Using an Array(2 of 2) 1 cout <"The highest score is "<max <endl 19 <"The scores and their\n" <<"differences from the highest are:\n"; 21 for(i=0;i<5;i+) 2 cout <score[i]<<off by 23 <<(max-score[i])<<endl; 24 return 0; 25 SAMPLE DIALOGUE Enter 5 scores: 592106 The highest score is 10 The scores and their differences from the highest are: 5 off by 5 9 off by 1 2 off by 8 10 off by 0 6 off by 4 Copyright 2006 Pearson Addison-Wesley.All rights reserved. 5-8
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 5-8 Array Program Example: Display 5.1 Program Using an Array (2 of 2)

for-loops with Arrays Natural counting loop Naturally works well "counting thru"elements of an array ◆Example: for (idx 0;idx<5;idx++) { cout <score[idx]<"off by <max-score[idx]<endl; } Loop control variable (idx)counts from 0-5 Copyright 2006 Pearson Addison-Wesley.All rights reserved. 5-9
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 5-9 for-loops with Arrays ¨ Natural counting loop ¨ Naturally works well "counting thru" elements of an array ¨ Example: for (idx = 0; idx<5; idx++) { cout << score[idx] << "off by " << max – score[idx] << endl; } ¨ Loop control variable (idx) counts from 0 – 5

Major Array Pitfall ◆Array indexes always start with zero! Zero is "first"number to computer scientists C++will "let"you go beyond range Unpredictable results ◆Compiler will not detect these errors! Up to programmer to "stay in range" Copyright 2006 Pearson Addison-Wesley.All rights reserved. 5-10
Copyright © 2006 Pearson Addison-Wesley. All rights reserved. 5-10 Major Array Pitfall ¨ Array indexes always start with zero! ¨ Zero is "first" number to computer scientists ¨ C++ will "let" you go beyond range ¨Unpredictable results ¨Compiler will not detect these errors! ¨ Up to programmer to "stay in range