1 / 13

CSC 107 -

What do you get when you cross a mountain climber and a grape? ... After lecture should be familiar with multi-dimensional arrays. Creating multi-dimensional ...

oshin
Download Presentation

CSC 107 -

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. CSC 107 -Programming for Science Lecture 28: Multi-dimensional Arrays

    2. Problem of the Day What do you get when you cross a mountain climber and a grape? Nothing, you cannot cross a scalar.

    3. Today’s Goal After lecture should be familiar with multi-dimensional arrays Creating multi-dimensional array variables Assigning data inside these array Using values stored in these array

    4. Problem with Arrays Each array stores single list of values Often work in multiple dimensions Pictures are rarely 1 dimensional Bridge design means evaluating stresses in multiple dimensions Work with tables of data Not easy to do with a vector

    5. Multidimensional Arrays Variable holding arrays of arrays 1-d array is a vector 2-d array is a matrix Each location holds one piece of data Elements now accessed using row & column All locations still depend on array variable Each location’s value independent of others But cannot separate out rows or columns

    6. Declaring Multidimensional Array Must declare array variable before use Declaration includes type, name, and size in each dimension Sizes should be literal value Name follows same rules as any other variable Variable is 2-dimensional array of requested type Each location, however, holds data of that type int neo[10][30]; // 10 rows x 30 columnsfloat trinity[200][3]; // 200 rows x 3 columnsFILE* morpheus[3][1]; // 3 rows x 1 column

    7. Working With Arrays Starts numbering rows & columns at 0 Every row must have same number of columns Still cannot find array’s size No way to compute number rows or columns Still no warning if you go beyond bounds But only lets you use array variable or location

    8. Initializing an Array Can set locations’ initial values Must specify value for all locations Starts with open brace… … lists values for row’s location in braces… …ends with closing braces.double switch[2][2]={{0.0, 1.0},{2.2, 3.2}};char epoch[3][1] = {{‘A’},{‘B’},{‘C’}};int dozer[1][1] = {{1}};FILE *tank[][3] = {{NULL,NULL,NULL},{NULL,NULL,NULL}};

    9. Using An Array Each array location used like a variable But can access only through array variable Locations named via row & column Smoothing out graphical data: int i, j, picture[20][10];// ... Read in data to form picturefor (i = 1; i < 19; i++) { for (j = 1; j < 9; j++) { picture[i][j] = (picture[i-1][j] + picture[i+1][j] + picture[i][j-1] + picture[i][j+1])/4; }}

    10. Passing an Array Can pass a location like any other value Element’s value cannot change Function only gets single value fabs(values[8][4]);cos(momentum[4][1]); Can also pass entire array Parameter must also be for an array Parameter must include number of columns

    11. Working With 2d Parameters int determinant(int a[][2]) { int i,j; return (a[0][0] * a[1][1])–(a[1][0] * a[0][1]);}

    12. Your Turn Get back into groups and complete the daily activity

    13. For Next Lecture Continue on Programming Assignment #2 Study for Midterm #2 on Monday

More Related