CSC 107 – Programming For Science. Today’s Goal Become familiar with simple arrays Declaring...
-
Upload
letitia-oliver -
Category
Documents
-
view
217 -
download
2
Transcript of CSC 107 – Programming For Science. Today’s Goal Become familiar with simple arrays Declaring...
LECTURE 20: ARRAYS
CSC 107 – Programming For Science
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
Could Have Spent Time
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, & size needed 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, & size needed 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, & size needed for array
declarationint planetsWeight[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 list 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 provideddouble taxrate[LEVELS] ={0.15, 0.25, 0.3};
int vector[100]={0}; // all 100 entries set to 0
int eger[]={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 as 1
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 as 1 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 (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 (int 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: const int BORED_NOW = 10;long loserArray[BORED_NOW];loserArray[0] = 1;for (int i=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 (int i=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 Midterm
You can use on this midterm: Your textbook & notes Printout of slides IF has notes on that day's
slides At the same time, you may NOT use:
Computer, calculator, cell phone, or similar Copies of daily activities and/or solutions Friends, Romans, countrymen or their ears
To be certain rules are followed, when test ends Hand in all printed material you had with
you
How to Prepare for Midterm
DO DON'T
Make cheat sheets for the test
Converting to & from decimal
Add post-its to important pages
Review what parts of C++ do
Assume notes replace studying
Memorize Drink case of 40s before
test Use post-its as clothing
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? Midterm on Tuesday
Test will be open-book, open-note, but closed activity
Programming Assignment #2 now on Angel This is a larger assignment; start it now!