16
Multiple-Subscripted Array • What it is • How to use it • How to declare it • How to initialize it

Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

  • View
    232

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Multiple-Subscripted Array

• What it is

• How to use it

• How to declare it

• How to initialize it

Page 2: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Multiple-Subscripted Arrays

• Use more than one subscript (can have up to 12)

• Double-subscripted array (2 subscripts)

Page 3: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Double-subscripted array

• good for representing tables in memory

• one subscript is the row

• second subscript is the column

Page 4: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Double-subscripted array

a double-subscripted array with 3 rows and 4 columns 3 by 4 array

row 0

row 1

row 2

column 0

column 1

column 2

column 3

a[0][0] a[0][1] a[0][2] a[0][3]

a[1][0]

a[2][0]

a[1][1] a[1][2] a[1][3]

a[2][1] a[2][2] a[2][3]

array name = arow subscript

column subscript

Page 5: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Referencing elements in a double-subscripted array

To set the element in row 2 and column 3 to the value 4 use:

a [2] [3] = 4;

name of the arrayrow subscript

column subscript

Page 6: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Declaring a 3 by 4 array

int a [3] [4];

must tell compiler name, size (2 sizes) and type

all elements of the array must be the same type

any data type is fine (int, float, char, etc.)

Page 7: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Declaring a double-subscripted array

Must use constants to declare row and column sizes.

int a [3] [4];

char letters [2] [26];

#define ROW 3#define COLUMN 4int a [ROW] [COLUMN];

const int row = 3; const int column = 4; int a [row] column];

Page 8: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Initializing a double-subscripted array

const int row = 3; const int column = 4; int a [row] [column];

for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { a [i][j] = 0; }}

Page 9: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Initializing a double-subscripted array with declaration

const int row = 3; const int column = 4; int a[row] [column] = {{1,2,3,4}, {1,2,3,4}, {1,2,3,4}};

2 3 41

1

1

2

2

3

3

4

4

Page 10: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Initializing a double-subscripted array with declaration

const int row = 3; const int column = 4; int a[row] [column] = {{1,2,3}, {1,2}, {1,2,3,4}};

2 3 01

1

1

2

2

0

3

0

4

Page 11: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Setting entire array to 0

const int row = 3; const int column = 4; int a [row] [column] = {0};

0 0 00

0

0

0

0

0

0

0

0

Page 12: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

ExercisesAnswer the following questions regarding an array called table that is a double-subscripted array with 2 rows and 3 columns.

1) Define constant variables numRows and numCols to be used to declare the array.

2) Declare the array to be an integer array.

3) Use a for loop to initialize each element of the array to be the sum of it’s subscripts

4) Write a code segment to print the array as a table.

Page 13: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

How double-subscripted arrays are stored in memory

2 3 41

5

9

6

10

7

11

8

12

123456789

101112

table

table

Page 14: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

passing double-subscripted array to a function

Must tell function size of second subscript so it can find the beginning of each row in memory.

void PrintTable (int table [ ] [4], int numRows, int numCols) {

for (int i = 0; i < numRows; i++) {

for (int j = 0; j < numCols; j++) { cout << setw(4) << table [i] [j]; } cout << endl;}

}

Page 15: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

passing double-subscripted array to a function

• passed as reference parameter

• Use const to prevent function changing the array.

void PrintTable (const int table [ ] [4], int numRows, int numCols);

Page 16: Multiple-Subscripted Array What it is How to use it How to declare it How to initialize it

Exercises

Write a main program as follows:Use the results of the last set of exercises to declare an array of type integers with 2 rows and 3 columns and initialize each element to the sum of it’s subscripts. Call the PrintTable function to print the array.

Create a function called PrintTable to print each element of the array in tabular form.