Topic 4 Arrays CS1B Introduction to Programming in C Chapter 8 in the shrinkwrap Chapter 9 in Malik CS1B Saddleback College Why do we need Arrays int main What do we do if we have to store more than 1 piece of information of the same type int item0 item1 item2 int sum We declare different variables cout Enter 3 integers cin item0 item1 item2 sum item0 item1 item2 cout The sum of the numbers sum endl cout the numbers in reverse order are cout item2 item1 item0 endl return 0 2 of 34 Topic 4 ch 8 Arrays CS1B Saddleback College What are arrays A collection of data of the same type A special group of variables Arrays can hold many pieces of data all have the same data type and name but different values Aggregate data type Means grouping Used for lists of like items Test scores temperatures names etc Avoids declaring multiple simple variables Can manipulate list as one entity 3 of 34 Topic 4 ch 8 Arrays CS1B Saddleback College Simple Composite data types Simple Data Types Data types that store only one piece of information What we have been using thus far Int float double char long Structured Composite Data types Each data item is a collection of other data items 4 of 34 Topic 4 ch 8 Arrays CS1B Saddleback College Declaring an Array Syntax dataType arrayName number of elements Declaring an array allocates the memory for the array Example int score 5 declares an array of 5 integers named score The number of elements can be a literal e g 5 int score 5 Or a named constant const int NUMBER OF TESTS 5 int score NUMBER OF TESTS 5 of 34 Topic 4 ch 8 Arrays CS1B Saddleback College Elements and Indexes Each individual item in an array is called an element Each element has an index value associated with it An index is a number which indicates which value we are referring to Example Index score 0 the first element in our array The first element is ALWAYS zero So if we have 5 elements our index values would be 0 1 2 3 4 or score 0 score 1 score 2 score 3 score 4 Note The brackets specify the size in the declaration and the subscript or index anywhere else 6 of 34 Topic 4 ch 8 Arrays CS1B Saddleback College Memory and Arrays 4 bytes int score 5 First element always has an index of 0 7 of 34 score 0 score 1 score 2 score 3 score 4 score 5 0 1 2 3 4 are in bounds all other values are out of bounds score 5 will not produce a compile time error It will produce a run time error Topic 4 ch 8 Arrays CS1B Saddleback College Indexes An index can be anything that evaluates to an integer A literal e g score 5 A variable or a constant e g score i An expression e g score 2 i j 8 of 34 Topic 4 ch 8 Arrays CS1B Saddleback College Initializing Arrays Simple variables can be initialized at declaration int price 0 0 is initial value of after declaration This is not considered good style do not do this in this class please or equivalently in the code int price price 0 Arrays can be initialized at declaration as well int item 3 2 12 1 or equivalently in the code int item 3 item 0 2 item 1 12 item 2 1 5 99 9 of 34 Topic 4 ch 8 Arrays CS1B Saddleback College Initializing Arrays 2 If you have more elements than values in the list then the extras at the end default to zero int item 5 2 12 1 int item 5 2 12 1 0 0 This is not recommended This is okay You can also initialize all the elements to 0 using this method int item 5 0 This is okay If you have more values than elements specified then you will get a compiler error int item 5 2 12 1 2 9 5 compiler error If you don t specify the number of elements it will default to the number of values in the list int item 2 12 1 2 9 5 children will default to 6 elements 10 of 34 This is not recommended Topic 4 ch 8 Arrays CS1B Saddleback College Initializing using a FOR loop include iostream int main float gpa 5 an array holding 5 grade point averages INP OUT load the array from the keyboard for int i 0 i 5 i This loop initializes the array cout Enter the gpa for student i 1 cin gpa i output the contents of the array cout n nStudent Grade Point Averages n for int i 0 i 5 i This loop outputs the array cout nGPA for student i 1 gpa i return 0 11 NOTE For Loops are very useful when you need to access every element in an array of 34 Topic 4 ch 8 Arrays CS1B Saddleback College Do a desk check with Inputs 5 10 15 Example int item 3 int sum item 0 1 2 index sum ind sum 0 for int i 0 i 3 i cout Enter an integer Output cin item i sum sum item i cout The sum of the numbers sum endl cout The numbers in reverse are for int i 2 i 1 i cout item i 12 of 34 What if we want to have 10 items What changes will we have to make CS1B Saddleback College Defining a Constant as Array Size Always use defined named constant for array size Example const int AR SIZE 5 int score AR SIZE Note that it must be declared as an integer NOTE Can t do this with a variable Improves readability The number of elements must be known at compile time Improves versatility Improves maintainability 13 Using a constant is considered a best practice of 36 Topic 4 ch 8 Arrays CS1B Saddleback College const int AR SIZE 10 int item AR SIZE Instead of all those changes we can use a constant and just change the constant int sum sum 0 for int i 0 i AR SIZE i Works well if they have to enter 10 items cout Enter an integer cin item i sum sum item i cout The sum of the numbers sum endl cout The numbers in reverse order are for int i AR SIZE 1 ind 1 ind Note that this is AR SIZE 1 cout item i 14 of 34 Topic 4 ch 8 Arrays CS1B Saddleback College Initializing using while loops Need to check for out of bounds as well as user controlled LCV int i int intInput i 0 load the array from the keyboard cout Enter the item enter 1 when done Initialize Both LCVs cin intInput while intInput 1 i AR SIZE item i intInput Need to cout Enter the item enter 1 when done make sure we don t cin item i Go out of i bounds What if we want to read in from a …
View Full Document