43
Programming Fundamentals I (COSC-1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 06/27/22 COSC-1336, Lecture 8 1

Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Embed Size (px)

Citation preview

Page 1: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Programming Fundamentals I (COSC-1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook)Stefan Andrei

04/20/23 COSC-1336, Lecture 8 1

Page 2: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Overview of Previous Lecture To describe why arrays are necessary in programming

(§6.1). To declare array reference variables and create arrays

(§§6.2.1-6.2.2). To initialize the values in an array (§6.2.3). To access array elements using indexed variables (§6.2.4). To declare, create, and initialize an array using an array

initializer (§6.2.5). To program common array operations (displaying arrays,

summing all elements, finding min and max elements, random shuffling, shifting elements) (§6.2.6).

To simplify programming using the for-each loops (§6.2.7).

04/20/23 COSC-1336, Lecture 8 2

Page 3: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Overview of Previous Lecture (cont) To apply arrays in the LottoNumbers and DeckOfCards

problems (§§6.3-6.4). To copy contents from one array to another (§6.5). To develop and invoke methods with array arguments and

return value (§6.6–6.7). To define a method with variable-length argument list (§6.8). To search elements using the linear (§6.9.1) or binary

(§6.9.2) search algorithm. To sort an array using the selection sort (§6.10.1) To sort an array using the insertion sort algorithm (§6.10.2). To use the methods in the Arrays class (§6.11).

04/20/23 COSC-1336, Lecture 8 3

Page 4: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Motivation of the current lecture Thus far, you have used one-dimensional arrays to model linear collections of elements. You can use a two-dimensional array to represent a matrix or a table. For example, the following table that describes the distances between the cities can be represented using a two-dimensional array.

04/20/23 COSC-1336, Lecture 8 4

Page 5: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Table with distances between the cities

04/20/23 COSC-1336, Lecture 8

Chicago

Boston

New York

Atlanta

Miami

Dallas

Houston

Distance Table (in miles)

Chicago Boston New York Atlanta Miami Dallas Houston

0 983 787 714 1375 967 1087

983 0 214 1102 1763 1723 1842

787 214 0 888 1549 1548 1627

714 1102 888 0 661 781 810

1375 1763 1549 661 0 1426 1187

967 1723 1548 781 1426 0 239

1087 1842 1627 810 1187 239 0

1723 1548 781 1426 0 239

5

Page 6: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Overview of This Lecture To give examples of representing data using two-

dimensional arrays (§7.1). To declare variables for two-dimensional arrays,

create arrays, and access array elements in a two-dimensional array using row and column indexes (§7.2).

To program common operations for two-dimensional arrays (displaying arrays, summing all elements, finding min and max elements, and random shuffling) (§7.3).

To pass two-dimensional arrays to methods (§7.4).

04/20/23 COSC-1336, Lecture 8 6

Page 7: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Overview of This Lecture (cont.) To write a program for grading multiple-choice

questions using two-dimensional arrays (§7.5). To solve the closest-pair problem using two-

dimensional arrays (§7.6). To check a Sudoku solution using two-dimensional

arrays (§7.7). To use multidimensional arrays (§7.8).

04/20/23 COSC-1336, Lecture 8 7

Page 8: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Declare/Create Two-dimensional Arrays// Declare array ref var

dataType[][] refVar;

// Create array and assign its reference to variable

refVar = new dataType[10][10];

// Combine declaration and creation in one statement

dataType[][] refVar = new dataType[10][10];

// Alternative syntax

dataType refVar[][] = new dataType[10][10];

04/20/23 COSC-1336, Lecture 8 8

Page 9: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Declaring Variables of Two-dimensional Arrays and Creating Two-dimensional Arrays int[][] matrix = new int[10][10];

orint matrix[][] = new int[10][10];matrix[0][0] = 3;

for (int i = 0; i < matrix.length; i++) for (int j = 0; j < matrix[i].length; j++) matrix[i][j] = (int)(Math.random() * 1000);

double[][] x;

04/20/23 COSC-1336, Lecture 8 9

Page 10: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Two-dimensional Array Illustration

0 1 2 3 4

0

7

0 1 2 3 4

1 2 3 4

0 1 2 3 4 matrix[2][1] = 7;

matrix = new int[5][5];

3

7

0 1 2

0 1 2

int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} };

1

2

3

4

5

6

8

9

10

11

12

array.length=?

array[0].length=?

matrix.length =?

matrix[0].length=?

04/20/23 COSC-1336, Lecture 8 10

Page 11: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Declaring, Creating, and Initializing Using Shorthand Notations You can also use an array initializer to declare, create and initialize a two-dimensional array.

For example,

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

array[0][0] = 1; array[0][1] = 2; array[0][2] = 3;

array[1][0] = 4; array[1][1] = 5; array[1][2] = 6;

array[2][0] = 7; array[2][1] = 8; array[2][2] = 9;

array[3][0] = 10; array[3][1] = 11; array[3][2] = 12;

int[][] array = {

{1, 2, 3},

{4, 5, 6},

{7, 8, 9},

{10, 11, 12}

};

Same as

04/20/23 COSC-1336, Lecture 8 11

Page 12: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Lengths of Two-dimensional Arrays

x

x[0]

x[1]

x[2]

x[0][0] x[0][1] x[0][2] x[0][3] x[1][0] x[1][1] x[1][2] x[1][3] x[2][0] x[2][1] x[2][2] x[2][3]

x.length is 3

x[0].length is 4

x[1].length is 4

x[2].length is 4

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

04/20/23 COSC-1336, Lecture 8 12

Page 13: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Lengths of Two-dimensional Arrays (cont.)int[][] array = {

{1, 2, 3},

{4, 5, 6},

{7, 8, 9},

{10, 11, 12}

};

array.length

array[0].length

array[1].length

array[2].length

array[3].length

array[4].length = ?

04/20/23 COSC-1336, Lecture 8 13

Page 14: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Ragged Arrays

Each row in a two-dimensional array is itself an array. So, the rows can have different lengths. Such an array

is known as a ragged array. For example: int[][] matrix = {

{1, 2, 3, 4, 5},

{2, 3, 4, 5},

{3, 4, 5},

{4, 5},

{5}

};

matrix.length is matrix[0].length is matrix[1].length is matrix[2].length is matrix[3].length is matrix[4].length is

04/20/23 COSC-1336, Lecture 8 14

Page 15: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Ragged Arrays (cont.)

1 2 3 4 5

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

1 2 3 4 1 2 3 1 2 1 2

04/20/23 COSC-1336, Lecture 8 15

Page 16: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Processing Two-Dimensional ArraysSee the examples in the text.

1. (Initializing arrays with input values)

2. (Printing arrays)

3. (Summing all elements)

4. (Summing all elements by column)

5. (Which row has the largest sum)

6. (Finding the smallest index of the largest element)

7. (Random shuffling)

04/20/23 COSC-1336, Lecture 8 16

Page 17: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Initializing arrays with input valuesjava.util.Scanner input = new Scanner(System.in);System.out.println("Enter " + matrix.length + " rows and " + matrix[0].length + " columns: ");for (int row = 0; row < matrix.length; row++) { for (int column = 0; column < matrix[row].length; column++) { matrix[row][column] = input.nextInt(); }}

04/20/23 COSC-1336, Lecture 8 17

Page 18: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Initializing arrays with random valuesfor (int row = 0; row < matrix.length; row++) { for (int column = 0; column < matrix[row].length; column++) { matrix[row][column] = (int)(Math.random() * 100); }}

04/20/23 COSC-1336, Lecture 8 18

Page 19: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Printing arrays

for (int row = 0; row < matrix.length; row++) { for (int column = 0; column < matrix[row].length; column++) { System.out.print(matrix[row][column] + " "); } System.out.println();}

04/20/23 COSC-1336, Lecture 8 19

Page 20: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Summing all elements

int total = 0;for (int row = 0; row < matrix.length; row++) { for (int column = 0; column < matrix[row].length; column++) { total += matrix[row][column]; }}

04/20/23 COSC-1336, Lecture 8 20

Page 21: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Summing elements by column

for (int column = 0; column < matrix[0].length; column++){ int total = 0; for (int row = 0; row < matrix.length; row++) total += matrix[row][column]; System.out.println("Sum for column " + column + " is " + total);}

04/20/23 COSC-1336, Lecture 8 21

Page 22: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Random shufflingfor (int i = 0; i < matrix.length; i++) { for (int j = 0; j < matrix[i].length; j++) { int i1 = (int)(Math.random() * matrix.length); int j1 = (int)(Math.random() * matrix[i].length); // Swap matrix[i][j] with matrix[i1][j1] int temp = matrix[i][j]; matrix[i][j] = matrix[i1][j1]; matrix[i1][j1] = temp; }}

04/20/23 COSC-1336, Lecture 8 22

Page 23: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Passing Tow-Dimensional Arrays to Methodsimport java.util.Scanner;

public class PassTwoDimensionalArray {

public static void main(String[] args) {

// Create a Scanner

Scanner input = new Scanner(System.in);

// Enter array values

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

System.out.println("Enter " + m.length + " rows and " + m[0].length + " columns: ");

// . . . The rest is on next slide

}

04/20/23 COSC-1336, Lecture 8 23

Page 24: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

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

for (int j = 0; j < m[i].length; j++)

m[i][j] = input.nextInt();

System.out.println("\nSum of all elements is " + sum(m));

}

public static int sum(int[][] m) {

int total = 0;

for (int row = 0; row < m.length; row++) {

for (int column = 0; column < m[row].length; column++) {

total += m[row][column]; }

}

return total;

}

04/20/23 COSC-1336, Lecture 8 24

Page 25: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

What is Sudoku?

5 3 7

6 1 9 5

9 8 6

8 6 3

4 8 3 1

7 2 6

6

4 1 9 5

8 7 9

04/20/23 COSC-1336, Lecture 8 25

Page 26: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Every row contains the numbers 1 to 9

5 3 7

6 1 9 5

9 8 6

8 6 3

4 8 3 1

7 2 6

6

4 1 9 5

8 7 9

5 3 4 6 7 8 9 1 2

6 7 2 1 9 5 3 4 8

1 9 8 3 4 2 5 6 7

8 5 9 7 6 1 4 2 3

4 2 6 8 5 3 7 9 1

7 1 3 9 2 4 8 5 6

9 6 1 5 3 7 2 8 4

2 8 7 4 1 9 6 3 5

3 4 5 2 8 6 1 7 9

04/20/23 COSC-1336, Lecture 8 26

Page 27: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Every column contains numbers 1 to 9

5 3 7

6 1 9 5

9 8 6

8 6 3

4 8 3 1

7 2 6

6

4 1 9 5

8 7 9

5 3 4 6 7 8 9 1 2

6 7 2 1 9 5 3 4 8

1 9 8 3 4 2 5 6 7

8 5 9 7 6 1 4 2 3

4 2 6 8 5 3 7 9 1

7 1 3 9 2 4 8 5 6

9 6 1 5 3 7 2 8 4

2 8 7 4 1 9 6 3 5

3 4 5 2 8 6 1 7 9

04/20/23 COSC-1336, Lecture 8 27

Page 28: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Every 3×3 box contains numbers 1 to 9

5 3 7

6 1 9 5

9 8 6

8 6 3

4 8 3 1

7 2 6

6

4 1 9 5

8 7 9

5 3 4 6 7 8 9 1 2

6 7 2 1 9 5 3 4 8

1 9 8 3 4 2 5 6 7

8 5 9 7 6 1 4 2 3

4 2 6 8 5 3 7 9 1

7 1 3 9 2 4 8 5 6

9 6 1 5 3 7 2 8 4

2 8 7 4 1 9 6 3 5

3 4 5 2 8 6 1 7 9

04/20/23 COSC-1336, Lecture 8 28

Page 29: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Checking Whether a Solution Is Correct

5 3 7

6 1 9 5

9 8 6

8 6 3

4 8 3 1

7 2 6

6

4 1 9 5

8 7 9

5 3 4 6 7 8 9 1 2

6 7 2 1 9 5 3 4 8

1 9 8 3 4 2 5 6 7

8 5 9 7 6 1 4 2 3

4 2 6 8 5 3 7 9 1

7 1 3 9 2 4 8 5 6

9 6 1 5 3 7 2 8 4

2 8 7 4 1 9 6 3 5

3 4 5 2 8 6 1 7 9

04/20/23 COSC-1336, Lecture 8 29

Page 30: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

CheckSudokuSolution.javaimport java.util.Scanner;

public class CheckSudokuSolution {

public static void main(String[] args) {

int[][] grid = readASolution();

System.out.println(isValid(grid) ? "Valid solution" : "Invalid solution");

}

public static int[][] readASolution() {

Scanner input = new Scanner(System.in); System.out.println("Enter a Sudoku puzzle solution:");

int[][] grid = new int[9][9];

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

for (int j = 0; j < 9; j++)

grid[i][j] = input.nextInt();

return grid;

}

04/20/23 COSC-1336, Lecture 8 30

Page 31: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

isValid() method with a parameter/** Check whether a solution is valid */

public static boolean isValid(int[][] grid) {

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

for (int j = 0; j < 9; j++)

if (grid[i][j] < 1 || grid[i][j] > 9 || !isValid(i, j, grid)) return false;

return true; // The fixed cells are valid

}

04/20/23 COSC-1336, Lecture 8 31

Page 32: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

isValid() method with 3 parameters/** Check whether grid[i][j] is valid in the grid */

public static boolean isValid(int i, int j, int[][] grid) {

// Check whether grid[i][j] is valid at the i's row

for (int column = 0; column < 9; column++)

if (column != j && grid[i][column] == grid[i][j])

return false;

// Check whether grid[i][j] is valid at the j's column

for (int row = 0; row < 9; row++)

if (row != i && grid[row][j] == grid[i][j])

return false;

// the rest of isValid() method is on next slide

04/20/23 COSC-1336, Lecture 8 32

Page 33: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

isValid() method with 3 parameters (cont.)

// Check whether grid[i][j] is valid in the 3 by 3 box

for (int row = (i / 3) * 3; row < (i / 3) * 3 + 3; row++)

for (int col = (j / 3) * 3; col < (j / 3) * 3 + 3; col++)

if (row!= i && col != j && grid[row][col] == grid[i][j])

return false;

return true;

// The current value at grid[i][j] is valid

}

}

04/20/23 COSC-1336, Lecture 8 33

Page 34: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Multidimensional Arrays Occasionally, you will need to represent n-dimensional data structures. In Java, you can create n-dimensional arrays for any integer n. The way to declare two-dimensional array variables and create two-dimensional arrays can be generalized to declare n-dimensional array variables and create n-dimensional arrays for n >= 3. For example, the following syntax declares a three-dimensional array variable scores, creates an array, and assigns its reference to scores.

 double[][][] scores = new double[10][5][2];

04/20/23 COSC-1336, Lecture 8 34

Page 35: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Problem: Calculating Total Scores Objective: write a program that calculates the total score for

students in a class. Suppose the scores are stored in a three-dimensional array

named scores. The first index in scores refers to a student, the second

refers to an exam, and the third refers to the part of the exam. Suppose there are 7 students, 5 exams, and each exam has

two parts--the multiple-choice part and the programming part. So, scores[i][j][0] represents the score on the multiple-

choice part for the i’s student on the j’s exam. Your program displays the total score for each student.

04/20/23 COSC-1336, Lecture 8 35

Page 36: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

TotalScore.java

public class TotalScore { /** Main method */

public static void main(String args[]) {

double[][][] scores = {

{{7.5, 20.5}, {9.0, 22.5}, {15, 33.5}, {13, 21.5}, {15, 2.5}}, {{4.5, 21.5}, {9.0, 22.5}, {15, 34.5}, {12, 20.5}, {14, 9.5}},

{{6.5, 30.5}, {9.4, 10.5}, {11, 33.5}, {11, 23.5}, {10, 2.5}},

{{6.5, 23.5}, {9.4, 32.5}, {13, 34.5}, {11, 20.5}, {16, 7.5}},

{{8.5, 26.5}, {9.4, 52.5}, {13, 36.5}, {13, 24.5}, {16, 2.5}},

{{9.5, 20.5}, {9.4, 42.5}, {13, 31.5}, {12, 20.5}, {16, 6.5}},

{{1.5, 29.5}, {6.4, 22.5}, {14, 30.5}, {10, 30.5}, {16, 6.0}}

};

04/20/23 COSC-1336, Lecture 8 36

Page 37: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

TotalScore.java (cont)

// Calculate and display total score for each student

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

double totalScore = 0;

for (int j = 0; j < scores[i].length; j++)

for (int k = 0; k < scores[i][j].length; k++)

totalScore += scores[i][j][k];

System.out.println("Student " + i +

"'s score is " + totalScore);

}

}

}

04/20/23 COSC-1336, Lecture 8 37

Page 38: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Running TotalScore.java

04/20/23 COSC-1336, Lecture 8 38

Page 39: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Summary To give examples of representing data using two-

dimensional arrays (§7.1). To declare variables for two-dimensional arrays,

create arrays, and access array elements in a two-dimensional array using row and column indexes (§7.2).

To program common operations for two-dimensional arrays (displaying arrays, summing all elements, finding min and max elements, and random shuffling) (§7.3).

To pass two-dimensional arrays to methods (§7.4).

04/20/23 COSC-1336, Lecture 8 39

Page 40: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Summary (cont.) To write a program for grading multiple-choice

questions using two-dimensional arrays (§7.5). To solve the closest-pair problem using two-

dimensional arrays (§7.6). To check a Sudoku solution using two-dimensional

arrays (§7.7). To use multidimensional arrays (§7.8).

04/20/23 COSC-1336, Lecture 8 40

Page 41: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Reading suggestions

From [Liang: Introduction to Java programming: Eight Edition, 2011 Pearson Education, 0132130807]

Chapter 7 (Multidimensional Arrays)

04/20/23 COSC-1336, Lecture 8 41

Page 42: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Coming up next

From [Liang: Introduction to Java programming: Eight Edition, 2011 Pearson Education, 0132130807] Chapter 8 (Objects and Classes)

04/20/23 COSC-1336, Lecture 8 42

Page 43: Programming Fundamentals I (COSC- 1336), Lecture 8 (prepared after Chapter 7 of Liang’s 2011 textbook) Stefan Andrei 10/20/2015 COSC-1336, Lecture 8 1

Thank you for your attention!

Questions?

04/20/23 COSC-1336, Lecture 8 43