26
LECTURE 19: MULTI-DIMENSIONAL ARRAYS CSC 107 – Programming For Science

CSC 107 – Programming For Science. Today’s Goal Get familiar with multi-dimensional arrays Creating variables for multi-dimensional array Multi-dimensional

Embed Size (px)

Citation preview

Page 1: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

LECTURE 19: MULTI-DIMENSIONAL ARRAYS

CSC 107 – Programming For Science

Page 2: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Today’s Goal

Get familiar with multi-dimensional arrays Creating variables for multi-dimensional

array Multi-dimensional array entry assignments Using values stored in the entries in these

array

Page 3: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Problem with Variables

Normal variable has single value at any time Can do better & hold list of values in an array

Only 1 value per entry, however, & size is fixed But this is very limiting in most situations

Bar codes are boring pictures

Must evaluate bridge stresses in multiple dimensions

Cannot do this with what we have so far

Page 4: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-dimensional Arrays

Multiple dimensions refine how data viewed 1-d array is a row of data

Page 5: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-dimensional Arrays

Multiple dimensions refine how data viewed 1-d array is a row of data

Create an entire table of entries with 2-d array

Page 6: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-dimensional Arrays

Multiple dimensions refine how data viewed 1-d array is a row of data

Create an entire table of entries with 2-d array

3-d array creates box of entries

Page 7: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-dimensional Arrays

Each entry still holds one piece of data Column used in 1-d array to access

column Access entries in 2-d array with row &

column 17 indices needed for entry in 17-dimension

array Using an entry still depends on array

variable Values are independent of all other entries Its all about the values: only work with

single entry

Page 8: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Declaring Arrays Variables

Like all variables, must declare before use

Type, name, & size of each dimension needed Each of the array's entries hold value of

that type Size must be integer since ½ a value hard

to useint prettyPicture[256][32];float armada[MAX_SHIPS][MAX_DECKS];double taxesOwed[MAX_EARN][10];char names[17][MAX_NAME_SIZE];long number[1][1];

Page 9: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Working With Arrays

0 is start of columns, rows, (& everything else) Within table, all rows have same number of

columns Identical rows & columns in 3-d array on z-

dimension Still cannot find size of array on any

dimension Even finding number of rows or columns

impossible Still no warning exceeding bounds of

array But restricts code to use entry or array

variable Entire row or column cannot be used in any

way

Page 10: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Initializing an Array

Declare array variable and set initial values

All entries must have initial value specified Starts with open brace… … open brace & values for row’s entries… …finally add a closing brace to end row… …closing brace to end the initializationdouble switch[2][2] ={{0,1},{2.2,3.2}};char epoch[3][1] = {{‘A’},{‘B’},{‘C’}};int dozer[1][1] = {{1}};

Page 11: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Using An Array

Each entry used like variable as normal But only can entry via array variable Use brackets for each dimension to identify

the entry Multidimensional arrays ♥ for loops,

tooint picture[20][10];for (int i = 0; i < 20; i++) { for (int j = 0; j < 10; j++) { picture[i][j] = (i * 10) + j; }}

Page 12: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 13: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 14: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 15: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 16: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 17: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 18: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 19: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 20: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 21: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 22: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Multi-Dim. Array Example

float bridgeStress[100][100];int times[100];

bridgeStress[0,4] = 3.5;times[45] = 2;bridgeStress(23)(12) = pow(12, 2);times[12] = times[45] * 4;bridgeStress[2] += times[12];times[99] = bridgeStress[0][34] + 34;bridgeStress[3][12] = times[-2];bridgeStress[2][0] = 0;bridgeStress[2][0] += 45;bridgeStress[3][2] = pow(2,bridgeStress[2][0]);

Page 23: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Passing an Array

Entry like any variable & can pass to function Value of the entry cannot change in

function Entry's current value received by the

functionfabs(values[8][4]);cos(momentum[4][1]);

Pass entire array as argument for a function As before, parameter must be array of

same type Must specify number of columns in the

parameter

Page 24: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Working With 2d Parameters

int determinant(int a[][2]) { return (a[0][0]*a[1][1])–(a[1][0]*a[0][1]);}

\int main(void) { int bookExample[2][2]; bookExample[0][0] = 1; bookExample[0][1] = 3; bookExample[1][0] = -1; bookExample[1][1] = 5; int det = determinant(bookExample); cout << det;}

Page 25: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

Your Turn

Get into your groups and try this assignment

Page 26: CSC 107 – Programming For Science. Today’s Goal  Get familiar with multi-dimensional arrays  Creating variables for multi-dimensional array  Multi-dimensional

For Next Lecture

Working with files in Section 11.1 – 11.7 How can we read files and use the data it

contains? Avoid printing to the screen by saving data

in files? What do the files look like? Can anyone

read them? Angel also has Weekly Assignment #10

due Tues.

Programming Assignment #2 due tomorrow