CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam...

15
CS 161 Intro to CS I Begin Mulit-Dimensional Arrays 1

Transcript of CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam...

Page 1: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

CS 161Intro to CS I

Begin Mulit-Dimensional Arrays

1

Page 2: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Odds and Ends…

• Last day to demo Assignment #4

• Exam Wednesday

• Study Sessions

– Sunday, 4-5pm KEC 1001

– Monday, 6-7:30pm KEC 1001

– Tuesday, 5:30-7pm WNGR 149

2

Page 3: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Static vs. Dynamic 2‐D arrays…

3

0 32 64

96 128

array[0][0] array[0][1] array[0][2]

array[1][0] array[1][1] array[1][2]

0 32 64

1056

array[0][0] array[0][1] array[0][2]

array[1][0] array[1][1] array[1][2]array[1]

array[0]

array

array[1]

array[0]

array0

0

0

0

5000

96

96

Page 4: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Demo…

4

Page 5: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Create Jagged Arrays

int *array[2];

array[0] = new int[3];

array[1] = new int[2];

5

0 32 64

1056

array[0][0] array[0][1] array[0][2]

array[1][0] array[1][1]array[1]

array[0]

array5000

Page 6: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Demo…

6

Page 7: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

How does freeing memory work?int *r[5], **s;

for(int i=0; i < 5; i++)r[i]=new int[5];

for(int i=0; i < 5; i++)delete [] r[i];

r=NULL;

s=new int*[5];for(int i=0; i < 5; i++)

s[i]=new int[5];for(int i=0; i < 5; i++)

delete [] s[i];delete [] s;s=NULL;

7

Page 8: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Demo…

8

Page 9: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Passing a 2-D Array (Dynamic)

int main() {

int **array;

pass_2darray(array);

}

void pass_2darray(int *a[]) {

cout << “Array at zero: ” << a[0][0] << endl;

}

OR

void pass_2darray(int **a) {

cout << “Array at zero: ” << a[0][0] << endl;

}

9

Page 10: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Passing a 2-D Array (Dynamic)

int main() {

int *array[2];

pass_2darray(array);

}

void pass_2darray(int *a[]) {

cout << “Array at zero: ” << a[0][0] << endl;

}

OR

void pass_2darray(int **a) {

cout << “Array at zero: ” << a[0][0] << endl;

}

10

Page 11: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Demo…

11

Page 12: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Create 2-D Array in Functions

}12

int main() {

int **array;

array = create_2darray(rows, cols);

}

int **create_2darray(int r, int c) {

int **a;

a = new int*[r];

for(int i=0; i<r; i++)

a[i] = new int[c];

return a;

Page 13: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Create 2-D Array in Functions

13

int main() {

int **array;

create_2darray(array, rows, cols);

}

void create_2darray(int **&a, int r, int c) {

a = new int[r];

for(int i=0; i<r; i++)

a[i] = new int[c];

}

Page 14: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Create 2-D Array in Functions

}

14

int main() {

int **array;

create_2darray(&array, rows, cols);

}

void create_2darray(int ***a, int r, int c) {

*a = new int*[r];

for(int i=0; i<r; i++)

(*a)[i] = new int[c];

Page 15: CS 161 Intro to CS I - Semantic Scholar...Odds and Ends… •Last day to demo Assignment #4 •Exam Wednesday •Study Sessions –Sunday, 4-5pm KEC 1001 –Monday, 6-7:30pm KEC 1001

Command-line Arguments

15