200 likes | 312 Views
In this lecture, you'll become familiar with arrays in programming. We will cover how to declare array variables, assign data to them, and use these values in your programs. You'll learn about the relationship between arrays and loops, how to access and manipulate array entries, and best practices for declaring and initializing arrays in a clear and organized manner. By the end, you will understand how arrays can effectively manage multiple values in your programming projects.
E N D
CSC 107 – Programming For Science Lecture 20: Arrays
Today’s Goal • Become familiar with simple arrays • Declaring an array variable • Assigning data to array entries • Using values stored in an array • Know connection between arrays and loops
Variables • Variable name location to store data • Only for humans; 0x7E8A2410 harder to remember • Assignments update memory location with new value • Memory location updated by assignment ONLY • When variable is used in program… • …uses current value at that memory location • Variable can store only one value • Often want multiple values, like adjusting for interest
Adjusting For Interest • First call, computed result for every year • Then all but last year computed in second call • Third time we called function, computed all but last 3 … and so on… • Only adjusted for 1 year last time we called function • Interest rate, amount, and results were constant • Unless save in variables, we have to recompute • Using variables required knowing years when coding
Can Make Stronger, Bigger • Arrays are variables that can hold many items • Creates range of locations in which to store data • Locations are numbered sequentially from 0 • Array entries like variables in their own right • To be able to use them, must declare array (& entries) • Value unknown until assigned in the program • But not a true variable, entries depend on array • Access only via array using the entry's index
Declaring Array Variables • Like all variables, must declare before use • Type, name, & sizeneeded for array declaration • Still variables, so names follow usual rules • Variable is array of the type, so use any legal type • Each of the array's entries hold value of that type • Size must be integer since ½ a value hard to use
Declaring Array Variables • Like all variables, must declare before use • Type, name, & sizeneeded for array declaration • Still variables, so names follow usual rules • Variable is array of the type, so use any legal type • Each of the array's entries hold value of that type • Size must be integer since ½ a value hard to use
Declaring Array Size • When declaring array, best use constant for size • Changing is easy if larger size needed later • Have simple way to find array's size during program • Explain reasoning for size using good constant name • Type, name, & sizeneeded for array declaration intplanetsWeight[NOT_PLUTO];float armada[MAX_SHIPS];double annualIncomes[MAX_LIFETIME];char responses[17];long timeToWait[35];
Initializing an Array • Can set initial values when declaring array • Will need to specify value for every entry in array • Initialize all entries to same value, if desired • Or the value of each entry specified separately • Additional way of specifying size also provided double taxrate[LEVELS] ={0.15, 0.25, 0.3};intvector[100]={0}; // all 100 entries set to 0integer[]={5,0,-5};// eger's size will be 3
Legal Array Entries • Access array's entries indexed from 0 to size-1 • 0, 1, 2,3, 4 legal if size of 5 used to declare array • Array created with size of 8:0, 1, 2,3, 4, 5, 6, 7 legal • 0 only legal index if size declared as1
Legal Array Entries • Access array's entries indexed from 0 to size-1 • 0, 1, 2,3, 4 legal if size of 5 used to declare array • Array created with size of 8:0, 1, 2,3, 4, 5, 6, 7 legal • 0 only legal index if size declared as1 • Stupidity defense legal, if array declared with size 0
Guns (& C++) Don't Kill • C++ make arrays easy, but mistakes easy also • Code can access any index within an array • No problems compiling, as long as index an int • Includes indices like -1 or 1029374729192 that stupid • To find size, could try using sizeof(array variable) • Entry outside array bounds accessed by program • Program may crash with “Segmentation Fault” • Other variable's value used and updated • Program may be able to complete normally
Using An Array • Each array entry behaves like variable • Accessed via array variable is only difference • To use or assign entry, specify index inside brackets • Example code snippet computing powers of 2: long loserArray[10];loserArray[0] = 1;for (long i=0; i < sizeof(loserArray);i++){loserArray[i] = loserArray[i-1] * 2;cout << loserArray[i] << endl;}
Using An Array • Each array entry behaves like variable • Accessed via array variable is only difference • To use or assign entry, specify index inside brackets • Example code snippet computing powers of 2: long loserArray[10];loserArray[0] = 1;for (longi=0; i < sizeof(loserArray);i++){loserArray[i] = loserArray[i-1] * 2;cout << loserArray[i] << endl;}
Using An Array • Each array entry behaves like variable • Accessed via array variable is only difference • To use or assign entry, specify index inside brackets • Example code snippet computing powers of 2: long loserArray[10];loserArray[0] = 1;for (inti=0; i < sizeof(loserArray); i++){loserArray[i] = loserArray[i-1] * 2;cout << loserArray[i] << endl;}
Using An Array • Each array entry behaves like variable • Accessed via array variable is only difference • To use or assign entry, specify index inside brackets • Example code snippet computing powers of 2: const int BORED_NOW = 10;long loserArray[BORED_NOW];loserArray[0] = 1;for (inti=0; i < BORED_NOW; i++){loserArray[i] = loserArray[i-1] * 2;cout << loserArray[i] << endl;}
Let's Trace This Code int main() {const int BORED_NOW = 4;long loserArray[BORED_NOW];loserArray[0] = 1;for (inti=1; i < BORED_NOW; i++){loserArray[i] = loserArray[i-1] * 2;cout << loserArray[i] << endl;}cout << "Sorry its stupid!" << endl;return 0; }
Your Turn • Get into your groups and try this assignment
For Next Lecture • Read about arrays in Section 10.5 • How can we pass arrays as parameters? • Can values be changed in the array no matter what? • Why couldn't they be consistent about params? • Weekly Assignment #7 out & due Wednesday • Avoid the rush by start working on it now • Programming Assignment #2 now on Angel • This is a larger assignment; start it now!