1 Arrays. 2 Background Programmer often need the ability to represent a group of values as a list...

Preview:

DESCRIPTION

3 Array variable definition styles  Without initialization Type of values in list Name of list Brackets indicate array variable being defined ElementType [ ] id; int [] a; int a[];

Citation preview

1

Arrays

2

Background Programmer often need the ability to represent a group of

values as a list List may be one-dimensional or multidimensional

Java provides arrays and the collection classes The Vector class is an example of a collection class

Consider arrays first

3

Array variable definition styles Without initialization

Type ofvalues in

list

Name oflist

Bracketsindicate arrayvariable being

defined

ElementType [ ] id;

int [] a;int a[];

4

Array variable definition styles With initialization

ElementType[ ] id = new ElementType [n];

Nonnegative integer expression specifying thenumber of elements in the array

Reference to a new array of nelements

5

Example Definitions

char[] c;int[] value = new int[10];

Causes Array object variable c is un-initialized Array object variable v references a new ten element list

of integers Each of the integers is default initialized to 0

value 0 0 0 0 0

-c

6

Basic terminology List is composed of elements

Elements in a list have a common name

The list as a whole is referenced through the common name

List elements are of the same type — the base type

Elements of a list are referenced by subscripting (indexing) the common name

7

Java array features Subscripts are denoted as expressions within brackets: [ ] Base (element) type can be any type Size of array can be specified at run time

This is different that pure C! (for the most part, at least) Index type is integer and the index range must be 0 ... n-1

Where n is the number of elements Automatic bounds checking

Ensures any reference to an array element is valid Data field length specifies the number of elements in the list Array is an object

Has features common to all other objects

8

Considerint[] v = new int[10];int i = 7;int j = 2;int k = 4;v[0] = 1;v[i] = 5;v[j] = v[i] + 3;v[j+1] = v[i] + v[0];v[v[j]] = 12;System.out.println(v[2]);v[k] = stdin.nextInt();

v 00 0 00 0 00 00

v[2]v[0] v[1] v[5]v[3] v[4] v[7]v[6] v[9]v[8]

int[] v = new int[10];int i = 7;int j = 2;int k = 4;v[0] = 1;v[i] = 5;v[j] = v[i] + 3;v[j+1] = v[i] + v[0];v[v[j]] = 12;System.out.println(v[2]);v[k] = stdin.nextInt();

v 01 0 00 0 00 00

v[2]v[0] v[1] v[5]v[3] v[4] v[7]v[6] v[9]v[8]

int[] v = new int[10];int i = 7;int j = 2;int k = 4;v[0] = 1;v[i] = 5;v[j] = v[i] + 3;v[j+1] = v[i] + v[0];v[v[j]] = 12;System.out.println(v[2]);v[k] = stdin.nextInt();

v 01 0 00 0 50 00

v[2]v[0] v[1] v[5]v[3] v[4] v[7]v[6] v[9]v[8]

int[] v = new int[10];int i = 7;int j = 2;int k = 4;v[0] = 1;v[i] = 5;v[j] = v[i] + 3;v[j+1] = v[i] + v[0];v[v[j]] = 12;System.out.println(v[2]);v[k] = stdin.nextInt();

v 81 0 00 0 50 00

v[2]v[0] v[1] v[5]v[3] v[4] v[7]v[6] v[9]v[8]

int[] v = new int[10];int i = 7;int j = 2;int k = 4;v[0] = 1;v[i] = 5;v[j] = v[i] + 3;v[j+1] = v[i] + v[0];v[v[j]] = 12;System.out.println(v[2]);v[k] = stdin.nextInt();

v 81 0 06 0 50 00

v[2]v[0] v[1] v[5]v[3] v[4] v[7]v[6] v[9]v[8]

int[] v = new int[10];int i = 7;int j = 2;int k = 4;v[0] = 1;v[i] = 5;v[j] = v[i] + 3;v[j+1] = v[i] + v[0];v[v[j]] = 12;System.out.println(v[2]);v[k] = stdin.nextInt();

v 81 0 06 0 50 012

v[2]v[0] v[1] v[5]v[3] v[4] v[7]v[6] v[9]v[8]

int[] v = new int[10];int i = 7;int j = 2;int k = 4;v[0] = 1;v[i] = 5;v[j] = v[i] + 3;v[j+1] = v[i] + v[0];v[v[j]] = 12;System.out.println(v[2]);v[k] = stdin.nextInt();

v 81 0 06 0 50 012

v[2]v[0] v[1] v[5]v[3] v[4] v[7]v[6] v[9]v[8]

8 is displayed

int[] v = new int[10];int i = 7;int j = 2;int k = 4;v[0] = 1;v[i] = 5;v[j] = v[i] + 3;v[j+1] = v[i] + v[0];v[v[j]] = 12;System.out.println(v[2]);v[k] = stdin.nextInt();

v 81 0 06 3 50 012

v[2]v[0] v[1] v[5]v[3] v[4] v[7]v[6] v[9]v[8]

Suppose 3 is extracted

int[] v = new int[10];int i = 7;int j = 2;int k = 4;v[0] = 1;v[i] = 5;v[j] = v[i] + 3;v[j+1] = v[i] + v[0];v[v[j]] = 12;System.out.println(v[2]);v[k] = stdin.nextInt();

9

Consider Segment

int[] b = new int[100];b[-1] = 0;b[100] = 0;

Causes Array variable to reference a new list of 100 integers

Each element is initialized to 0 Two exceptions to be thrown

-1 is not a valid index – too small 100 is not a valid index – too large

IndexOutOfBoundsException

1010

Today’s demotivatorsToday’s demotivators

11

ConsiderPoint[] p = new Point[3];p[0] = new Point(0, 0);p[1] = new Point(1, 1);p[2] = new Point(2, 2);p[0].setX(1);p[1].setY(p[2].getY());Point vertex = new Point(4,4);p[1] = p[0];p[2] = vertex;

p

p[0] p[1] p[2]

null null null

Point: (0, 0)

p

p[0] p[1]

Point: (1, 1) Point: (2, 2)

p[2]

Point: (1, 0)

p

p[0] p[1]

Point: (1, 1) Point: (2, 2)

p[2]

Point: (1, 0)

p

p[0] p[1]

Point: (1, 2) Point: (2, 2)

p[2]

Point: (1, 0)

p

p[0] p[1]

Point: (1, 2) Point: (2, 2)

p[2]

vertex

Point: (4, 4)

Point: (1, 0)

p

p[0] p[1]

Point: (2, 2)

p[2]

vertex

Point: (4, 4)

Point: (1, 0)

p

p[0] p[1] p[2]

vertex

Point: (4, 4)

Point[] p = new Point[3];p[0] = new Point(0, 0);p[1] = new Point(1, 1);p[2] = new Point(2, 2);p[0].setX(1);p[1].setY(p[2].getY());Point vertex = new Point(4,4);p[1] = p[0];p[2] = vertex;

12

Explicit initialization Syntax

ElementType[] id = { exp0 , exp1 , ... expn-1 };

id references an array of n elements. id[0] hasvalue exp0, id[1] has value exp1, and so on.

Each expi is an expression thatevaluates to type ElementType

13

Explicit initialization Example

String[] puppy = { “pika“, “arlo“, “schuyler", “nikki" };

int[] unit = { 1 };

Equivalent toString[] puppy = new String[4];puppy[0] = “pika"; puppy[1] = “arlo";puppy[2] = “schuyler"; puppy[3] = “nikki";

int[] unit = new int[1];unit[0] = 1;

14

Array members Member length

Size of the arrayfor (int i = 0; i < puppy.length; ++i) {

System.out.println(puppy[i]);}

15

Array members Member clone()

Produces a shallow copyPoint[] u = { new Point(0, 0), new Point(1, 1)};Point[] v = u.clone();

v[1] = new Point(4, 30);

Point: (0, 0) Point: (1, 1)

u

u[0] u[1]

Point: (0, 0)

v

v[0] v[1]

Point: (1, 1)

u

u[0] u[1]

Point: (0, 0)

v

v[0] v[1]

Point: (1, 1)

u

u[0] u[1]

Point: (4, 30)

Point[] u = { new Point(0, 0), new Point(1, 1)};Point[] v = u.clone();

v[1] = new Point(4, 30);

16

Making a deep copy Example

Point[] w = new Point[u.length];for (int i = 0; i < u.length; ++i) {

w[i] = (Point) u[i].clone();}

17

Making a deep copy

Point: (0, 0)

w

w[0] w[1]

Point: (2, 1) Point: (2, 2)

w[2]

u

u[0] u[1] u[2]

Point: (0, 0) Point: (2, 1) Point: (2, 2)

19

Review of last time Creating an array:

int[] foo = new int[10];

Accessing an array:foo[3] = 7;System.out.print (foo[1]);

Creating an array:String[] bar = new String[10];

Accessing an array:bar[3] = “qux”;System.out.println (bar[1]);

20

How Java represents arrays Consider

int[] a = { 1, 2, 3, 4, 5 };

a 1 2 3 4 5+ …

Array

- length = 5- data = 1 2 3 4 5

21

More about how Java represents Arrays Consider

int[] a;int[] b = null;int[] c = new int[5];int[] d = { 1, 2, 3,

4, 5 };a = c;d = c;

1 2 3 4 5

0 0 0 0 0

a -

b null

c

d

int[] a;int[] b = null;int[] c = new int[5];int[] d = { 1, 2, 3, 4, 5 };a = c;d = c;

22

System.out.println("Enter search value (number): ");int key = stdin.nextInt();

int i;for (i = 0; i < data.length; ++i) {

if (key == data[i]) {break;}

}

if (i != data.length) {System.out.println(key + " is the " + i+ "-th element");

}else {

System.out.println(key + " is not in the list");}

++i

System.out.println("Enter search value (number): ");int key = stdin.nextInt();

int i;

if (key == data[i]) {break;

if (i != data.length) {System.out.println(key + " is the " + i

+ "-th element");}

i < data.length i = 0

Searching for a value

data 54 9

20 1

key 5

i -

data 54 9

20 1

key 5

i 0

data 54 9

20 1

key 5

i 0

data 54 9

20 1

key 5

i 0

data 54 9

20 1

key 5

i 1

data 54 9

20 1

key 5

i 1

data 54 9

20 1

key 5

i 1

data 54 9

20 1

key 5

i 2

data 54 9

20 1

key 5

i 2

data 54 9

20 1

key 5

i 2

data 54 9

20 1

key 5

i 2

data 54 9

20 1

key 5

i 2

23

Searching for the minimum value Segment

int minimumSoFar = sample[0];for (int i = 1; i < sample.length; ++i) {

if (sample[i] < minimumSoFar) {minimumSoFar = sample[i];

}}

24

ArrayTools.java – outline

public class ArrayTools { // class constant private static final int MAX_LIST_SIZE = 1000; // sequentialSearch(): examine unsorted list for key public static int sequentialSearch[] data, int key) { ... // putList (): prints list to screen public static void putList(int[] data) { ... // getList(): extract and return up to MAX_LIST_SIZE values public static int[] getList() throws IOException { ... // reverse(): reverses the order of the element values public static void reverse(int[] list) { ... // binarySearch(): examine sorted list for a key public static int binarySearch(char[] data, char key) { ...}

25

ArrayTools.java method putList()public static void putList(int[] data) {

for (int i = 0; i < data.length; ++i) {System.out.println(data[i]);

}}

Considerint[] score = { 6, 9, 82, 11, 29, 85, 11, 28, 91 };putList(score);

26

ArrayTools.java method getList()public static int[] getList() {

Scanner stdin = new Scanner (System.in);int[] buffer = new int[MAX_LIST_SIZE];int listSize = 0;for (int i = 0; (i < MAX_LIST_SIZE) && stdin.hasNext(); ++i) {

buffer[i] = stdin.nextInt();++listSize;

}int[] data = new int[listSize];for (int i = 0; i < listSize; ++i) {

data[i] = buffer[i];}return data;

}

27

ArrayTools.java method reverse()public static void reverse(int[] data) {

int[] clone = data.clone();for ( int i = 0; i < clone.length; ++i ) {

data[i] = clone[clone.length-1-i];}

}

Considerint[] foo = { 1, 2, 3, 4, 5 };reverse (foo);putList (foo);

28

Demo.javapublic class Demo {

// main(): application entry point public static void main(String[] args) {

System.out.println("");System.out.println("Enter list of integers:");int[] numbers = ArrayTools.getList();System.out.println("");System.out.println("Your list");ArrayTools.putList(numbers);ArrayTools.reverse(numbers);System.out.println("");System.out.println("Your list in reverse");ArrayTools.putList(numbers);System.out.println();

}}

30

ArrayTools.java method sequentialSearch()public static int sequentialSearch(int[] data, int key) {

for (int i = 0; i < data.length; ++i) {if (data[i] == key) {return i;}}

return -1;}

Considerint[] score = { 6, 9, 82, 11, 29, 85, 11, 28, 91 };int i1 = sequentialSearch(score, 11);int i2 = sequentialSearch(score, 30);

data 826 9 8511 29 2911 91

20 1 53 4 76 8

key 11

3131

Yale vs. HarvardYale vs. Harvard

Web references: http://www.harvardsucks.org/, Web references: http://www.harvardsucks.org/, http://www.yaledailynews.com/article.asp?AID=27506http://www.yaledailynews.com/article.asp?AID=27506

32

Sorting Problem

Arranging elements so that they are ordered according to some desired scheme Standard is non-decreasing order

Why don't we say increasing order?

Major tasks Comparisons of elements Updates or element movement

33

Selection sorting Algorithm basis

On iteration i, a selection sorting method: Finds the element containing the ith smallest value of

its list v and exchanges that element with v[i]

Example – iteration 0 Swaps smallest element with v[0] This results in smallest element being in the correct place

for a sorted result

v ‘E'‘Q' 'W' 'Y''R' 'T' 'I''U' 'P''O'

20 1 53 4 76 98

34

Selection sorting Algorithm basis

On iteration i, a selection sorting method: Finds the element containing the ith smallest value of

its list v and exchanges that element with v[i]

Example – iteration 0 Swaps smallest element with v[0] This results in smallest element being in the correct place

for a sorted result

v ‘E'‘Q' 'W' 'Y''R' 'T' 'I''U' 'P''O'

20 1 53 4 76 98

35

Selection sorting Algorithm basis

On iteration i, a selection sorting method: Finds the element containing the ith smallest value of

its list v and exchanges that element with v[i]

Example – iteration 0 Swaps smallest element with v[0] This results in smallest element being in the correct place

for a sorted result

v 'Q''E' 'W' 'Y''R' 'T' 'I''U' 'P''O'

20 1 53 4 76 98

36

Selection sorting Algorithm basis

On iteration i, a selection sorting method: Finds the element containing the ith smallest value of

its list v and exchanges that element with v[i]

Example – iteration 1 Swaps second smallest element with v[1] This results in second smallest element being in the

correct place for a sorted result

v 'Q''E' 'W' 'Y''R' 'T' 'I''U' 'P''O'

20 1 53 4 76 98

37

Selection sorting Algorithm basis

On iteration i, a selection sorting method: Finds the element containing the ith smallest value of

its list v and exchanges that element with v[i]

Example – iteration 1 Swaps second smallest element with v[1] This results in second smallest element being in the

correct place for a sorted result

v 'Q''E' 'I' 'Y''R' 'T' 'W''U' 'P''O'

20 1 53 4 76 98

38

ArrayTools.java selection sortingpublic static void selectionSort(int[] v) {

for (int i = 0; i < v.length-1; ++i) {

// find the location of the ith smallest elementint spot = i;for (int j = i+1; j < v.length; ++j) { if (v[j] < v[spot]) { // is current location ok? // update spot to index of smaller element

spot = j; }}

// spot is now correct, so swap elementsint rmbr = v[i];v[i] = v[spot];v[spot] = rmbr;

}}

39

Iteration i// find the location of the ith smallest element int spot = i;for (int j = i+1; j < v.length; ++j) {

if (v[j] < v[spot]) // is spot ok?// update spot with index of smaller elementspot = j;

}

// spot is now correct, swap elements v[spot] and v[i]

40

Quick surveyQuick survey How are we doing with arrays?How are we doing with arrays?a)a) Very wellVery wellb)b) With some review, I’ll be goodWith some review, I’ll be goodc)c) Not reallyNot reallyd)d) Not at allNot at all

4141

Privacy policyPrivacy policy From time to time, in order to improve Google Gulp's From time to time, in order to improve Google Gulp's

usefulness for our users, Google Gulp will send usefulness for our users, Google Gulp will send packets of data related to your usage of this product packets of data related to your usage of this product from a wireless transmitter embedded in the base of from a wireless transmitter embedded in the base of your Google Gulp bottle to the GulpPlex™, a heavily your Google Gulp bottle to the GulpPlex™, a heavily guarded, massively parallel server farm whose guarded, massively parallel server farm whose location is known only to Eric Schmidt, who carries location is known only to Eric Schmidt, who carries its GPS coordinates on a 64-bit-encrypted smart card its GPS coordinates on a 64-bit-encrypted smart card locked in a stainless-steel briefcase handcuffed to locked in a stainless-steel briefcase handcuffed to his right wrist. No personally identifiable information his right wrist. No personally identifiable information of any kind related to your consumption of Google of any kind related to your consumption of Google Gulp or any other current or future Google Foods Gulp or any other current or future Google Foods product will ever be given, sold, bartered, auctioned product will ever be given, sold, bartered, auctioned off, tossed into a late-night poker pot, or otherwise off, tossed into a late-night poker pot, or otherwise transferred in any way to any untrustworthy third transferred in any way to any untrustworthy third party, ever, we swear. See our Privacy Policy.party, ever, we swear. See our Privacy Policy.

April Fools Day JokesApril Fools Day Jokes

http://www.google.com/googlegulp/(or do a Google search for ‘gulp’)

4343

Google Maps…Google Maps…

44

Binary search Given a list, find a specific element in the list

List MUST be sorted!

Each time it iterates through, it cuts the list in half

A binary search is MUCH faster than a sequential search

45

Binary search use The ‘BS’ in BSDemo is for Binary Search, mind you

public class BSDemo {public static void main(String[] args) {int[] numbers = { 9, 3, 1, 8, 4, 6, 10, 2 };System.out.println ("The original list of numbers:");ArrayTools.putList(numbers);System.out.println();

ArrayTools.selectionSort(numbers);System.out.println ("The sorted list of numbers:");ArrayTools.putList(numbers);System.out.println();

System.out.println ("Searching for 0: " + ArrayTools.binarySearch(numbers, 0));System.out.println ("Searching for 1: " + ArrayTools.binarySearch(numbers, 1));System.out.println ("Searching for 4: " + ArrayTools.binarySearch(numbers, 4));System.out.println ("Searching for 5: " + ArrayTools.binarySearch(numbers, 5));System.out.println ("Searching for 6: " + ArrayTools.binarySearch(numbers, 6));System.out.println ("Searching for 10: " + ArrayTools.binarySearch(numbers, 10));System.out.println ("Searching for 11: " + ArrayTools.binarySearch(numbers, 11));}

}

46

Binary search use demo…

47

Binary searchpublic static int binarySearch (int[] data, int key) {

int i = 0; // left endpoint of search intervalint j = data.length-1; // right endpoint of search intervalwhile ( i < j ) { int m = (i+j)/2; if ( key > data[m] ) {i = m+1; } else {j = m; }}if ( key == data[i] ) { return i;} else { return -1;}

}

48

if ( key == data[i] ) {return i;

} else {return -1;

}

if ( key == data[i] ) {return i;

} else {return -1;

}

int i = 0;int j = data.length-1;int i = 0;int j = data.length-1;

while ( i < j ) {int m = (i+j)/2;if ( key > data[m] ) { i = m+1;} else { j = m;}

}

while ( i < j ) {int m = (i+j)/2;if ( key > data[m] ) { i = m+1;} else { j = m;}

}

Binary search, take 1

2 4 6 8 10 12 14 16 18 20

a0 a1 a2 a3 a4 a5 a6 a7 a8 a9

i jm

public static int binarySearch (int[] data, int key) {

0

key 14

945 7 76 656

returns: 6

data

49

if ( key == data[i] ) {return i;

} else {return -1;

}

if ( key == data[i] ) {return i;

} else {return -1;

}

int i = 0;int j = data.length-1;int i = 0;int j = data.length-1;

while ( i < j ) {int m = (i+j)/2;if ( key > data[m] ) { i = m+1;} else { j = m;}

}

while ( i < j ) {int m = (i+j)/2;if ( key > data[m] ) { i = m+1;} else { j = m;}

}

Binary search, take 2

2 4 6 8 10 12 14 16 18 20

a0 a1 a2 a3 a4 a5 a6 a7 a8 a9

i jm

public static int binarySearch (int[] data, int key) {

0

key 15

945 7 76

returns: -1

data

50

Binary search A somewhat alternative view of what a binary search does…

51

How long does a binary search take? Given a array of 64 elements

1st iteration cuts the array to 32 2nd iteration cuts the array to 16 3rd to 8 4th to 4 5th to 2 6th to 1

Given a array of 1024 elements 1st iteration cuts the array to 512 ... 10th iteration cuts the list to 1 element

Thus, the binary search takes log2 n iterations! Where n is the size of the array

52

Binary search vs. sequential search Assume the array has n elements

Sequential search can take (in the worst-case) n iterations to find the element

Binary search can take (in the worst case) log2 n iterations to find the element

Consider a list of 1 million elements Binary search takes about 20 iterations Sequential search takes 1,000,000 iterations

Consider a list of 1 trillion elements Binary search takes about 40 iterations Sequential search takes 1,000,000,000,000 iterations

53

Quick surveyQuick survey How are we doing with binary How are we doing with binary

searches?searches?a)a) Very wellVery wellb)b) With some review, I’ll be goodWith some review, I’ll be goodc)c) Not reallyNot reallyd)d) Not at allNot at all

5454

Becoming an IEEE authorBecoming an IEEE author

5555

56

Multidimensional arrays Many problems require information be organized as a two-

dimensional or multidimensional list

Examples Matrices Graphical animation Economic forecast models Map representation Time studies of population change Microprocessor design

57

Example Segment

int[][] m = new int[3][];m[0] = new int[4];m[1] = new int[4];m[2] = new int[4];

Produces

When an array is created, each

value is initialized!

mm[0] m[1] m[2]

0 0 0 0 0 0 0 0

00 0 0

m[2][0] m[2][1] m[2][2] m[2][3]

m[0][0] m[0][1] m[0][2] m[0][3] m[1][0] m[1][1] m[1][2] m[1][3]

m

58

Example Alternative

int[][] m = new int[3][4];

Produces

mm[0] m[1] m[2]

0 0 0 0 0 0 0 0

00 0 0

m[2][0] m[2][1] m[2][2] m[2][3]

m[0][0] m[0][1] m[0][2] m[0][3] m[1][0] m[1][1] m[1][2] m[1][3]

59

Multidimensional array visualization A multi-dimensional array declaration (either one):

int[][] m = new int[3][4];

How we visualize it:

0 0 0

0 0 0

0 0 0

0 0 0

0

0

0

0

0

0

0

0

0

0

0

0

or

60

Example Segment

for (int r = 0; r < m.length; ++r) {for (int c = 0; c < m[r].length; ++c) {

System.out.print("Enter a value: "); m[r][c] = stdin.nextInt();

}}

61

Example Segment

String[][] s = new String[4][];s[0] = new String[2];s[1] = new String[2];s[2] = new String[4];s[3] = new String[3];

Produces

s

s[0] s[1] s[2]

null nullnull null

null null null

s[3][0] s[3][1] s[3][2]

s[1][0] s[1][1]

s[0][0] s[0][1]

null null null null

s[2][0] s[2][1] s[2][2] s[2][3]

s[3]

62

Multidimensional array visualization Segment

String[][] s = new String[4][];s[0] = new String[2];s[1] = new String[2];s[2] = new String[4];s[3] = new String[3];

Produces

Called a “ragged” array

0 0 0

0 0 0

0

0

0

0

0

0

0

0

0

0

0

0

0

or

0

0

0

63

Example Segment

int c[][] = {{1, 2}, {3, 4}, {5, 6}, {7, 8, 9}};

Produces

c

c[0] c[1] c[2]

1 23 4

7 8 9

c[3][0] c[3][1] c[3][2]

c[1][0] c[1][1]

c[0][0] c[0][1]

5 6

c[2][0] c[2][1]

c[3]

64

Matrices A two-dimensional array is sometimes known as a matrix

because it resembles that mathematical concept

A matrix a with m rows and n columns is represented mathematically in the following manner

a1 1 a1 2 a1 n

a2 1 a2 2 a2 n

am 1 am 2 a m n

65

Matrix addition Definition C = A + B

cij = aij + bij

cij is sum of the elements in the same row and column of A and B

66

Matrix additionpublic static double[][] add(double[][] a, double[][] b) {

// determine number of rows in solutionint m = a.length;// determine number of columns in solutionint n = a[0].length;// create the array to hold the sumdouble[][] c = new double[m][n];// compute the matrix sum row by rowfor (int i = 0; i < m; ++i) {

// produce the current rowfor (int j = 0; j < n; ++j) {

c[i][j] = a[i][j] + b[i][j];}

}return c;

}

67

Quick surveyQuick survey I felt I understood the material in this I felt I understood the material in this

slide set…slide set…a)a) Very wellVery wellb)b) With some review, I’ll be goodWith some review, I’ll be goodc)c) Not reallyNot reallyd)d) Not at allNot at all

68

Quick surveyQuick survey The pace of the lecture for this The pace of the lecture for this

slide set was…slide set was…a)a) FastFastb)b) About rightAbout rightc)c) A little slowA little slowd)d) Too slowToo slow

69

Quick surveyQuick survey How interesting was the material in How interesting was the material in

this slide set? Be honest!this slide set? Be honest!a)a) Wow! That was SOOOOOOO cool!Wow! That was SOOOOOOO cool!b)b) Somewhat interestingSomewhat interestingc)c) Rather boringRather boringd)d) ZzzzzzzzzzzZzzzzzzzzzz

7070

Today’s demotivatorsToday’s demotivators

Recommended