COP3502 Programming Fundamentals for CIS Majors 1
description
Transcript of COP3502 Programming Fundamentals for CIS Majors 1
![Page 1: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/1.jpg)
COP3502 Programming Fundamentals for CIS Majors 1
Instructor: Parisa Rashidi
![Page 2: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/2.jpg)
Chapter 6 Array
Single dimensional array Search & sort
Last Week
![Page 3: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/3.jpg)
Chapter 7 Multi-dimensional arrays
DeclareCreateAccess
Problem solving using two dimensional arraySudoku…
Objectives
![Page 4: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/4.jpg)
Multi-Dimensional Arrays
![Page 5: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/5.jpg)
We want to store the distances between 20 different cities. How?
Motivation
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
![Page 6: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/6.jpg)
We want to store the position on a checkers’ board. How?
Motivation
![Page 7: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/7.jpg)
Declaring and creating 2-dimensional array
Example
2D Array
// Declare array refVar of type dataTypedataType[][] refVar;
// Create arrayrefVar = new dataType[size1][size2];
// Declare array double[][] myTable;
// Create arraymyTable = new double[10][10];
![Page 8: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/8.jpg)
Declaring and creating 2-dimensional array
2D Array
// Combine declaration and creation in one // single statementdouble[][] myTable = new double[10][10];
// Alternative syntaxdouble myTable[][] = new double[10][10];
![Page 9: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/9.jpg)
2-dimensional array illustration Declaring and creating an array
2D Array
0 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 0
0 1 2 3 4
01234
int[][] matrix = new int[5][5]
![Page 10: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/10.jpg)
We want to store the position on a checkers’ board.
2D Array
final int BLANK = 0; // location empty final int WHITE = 1; // white piece final int RED = 2; // blue pieceint[][] checkerBoard= new int[8][8]
![Page 11: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/11.jpg)
We want to store the position on a chess board.
2D Array
String[] pieces = {“king”, “queen”, “rook”, “knight”, “bishop”, “pawn”}; int[][] chessBoard= new int[8][8]
![Page 12: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/12.jpg)
2-dimensional array illustration Accessing elements
2D Array
0 0 0 0 00 0 0 0 00 7 0 0 00 0 0 0 00 0 0 0 0
0 1 2 3 4
01234
matrix[2][1] =7;
![Page 13: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/13.jpg)
Internally, java stores a 2D array as “an array of arrays”
2D Array
int [][] nums = new int[5][4];
nums
![Page 14: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/14.jpg)
What is nums.length? 5
What is nums[0].length? 4
2D Array
int [][] nums = new int[5][4];
nums
![Page 15: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/15.jpg)
2-dimensional array illustration Initialization
2D Array
1 2 310 3 010 7 80
0 1 2
012
int[][] matrix2 = { {1, 2, 3}, {10, 3, 0}, {10, 7, 80}};
matrix2
1 2 3
10 3 0
10 7 80
![Page 16: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/16.jpg)
Rows might have different lengths
Ragged Array
int[][] matrix = { {1, 2, 3, 4, 5}, {2, 3, 4, 5}, {3, 4, 5}, {4, 5}, {5}};
matrix
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
![Page 17: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/17.jpg)
Loops and 2D arrays
Loops & 2D Array
for (int row = 0; row < matrix.length; row++) { for (int column = 0; column < matrix[row].length; column+
+) { // use matrix[row][column] }}
1 2 310 3 010 7 80
![Page 18: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/18.jpg)
Initializing 2D array with input values
Loops & 2D Array
java.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(); }}
![Page 19: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/19.jpg)
Initializing 2D arrays with random values
Loops & 2D Array
for (int row = 0; row < matrix.length; row++) { for (int column = 0; column < matrix[row].length;
column++) { matrix[row][column] = (int)(Math.random() * 100); }}
![Page 20: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/20.jpg)
Printing 2D arrays
Loops & 2D Array
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();}
![Page 21: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/21.jpg)
Summing all elements of a 2D array
Loops & 2D Array
int total = 0;for (int row = 0; row < matrix.length; row++) { for (int column = 0; column <
matrix[row].length; column++) { total += matrix[row][column]; }}
![Page 22: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/22.jpg)
Summing elements of a 2D array by each column
Loops & 2D Array
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);}
![Page 23: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/23.jpg)
Random shuffling of a 2D array
Loops & 2D Array
for (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; }}
![Page 24: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/24.jpg)
Passing 2D array to a method
Program
PassTwoDimensionalArray Run
![Page 25: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/25.jpg)
Write a program that grades multiple-choice test.
Program
A B A C C D E E A D D B A B C A E E A D E D D A C B E E A D C B A E D C E E A D A B D C C D E E A D B B E C C D E E A D B B A C C D E E A D E B E C C D E E A D
0 1 2 3 4 5 6 7 8 9
Student 0 Student 1 Student 2 Student 3 Student 4 Student 5 Student 6 Student 7
Students’ Answers to the Questions:
D B D C C D A E A D
0 1 2 3 4 5 6 7 8 9
Key
Key to the Questions: GradeExam
Run
![Page 26: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/26.jpg)
Finding two points nearest to each other
Program
FindNearestPoints Run
(1, 1)
(-1, -1)
(-1, 3)
(2, 0.5)
(3, 3)
(4, 2)
(2, -1)
(4, -0.5)
-1 3 -1 -1 1 1 2 0.5 2 -1 3 3 4 2 4 -0.5
x y 0 1 2 3 4 5 6 7
![Page 27: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/27.jpg)
SudokuEvery column contains the numbers 1
to 9Every row contains the numbers 1 to 9Every 3×3 box contains the numbers
1 to 9
Program
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
![Page 28: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/28.jpg)
Write a program to checking a Sudoku solution
Program
RunCheckSudokuSolution
![Page 29: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/29.jpg)
In Java, you can create n-dimensional arrays for any integer n. Generalization of 2D case Example
Multi-dimensional array
double[][][] scores = new double[10][5][2];
![Page 30: COP3502 Programming Fundamentals for CIS Majors 1](https://reader035.fdocuments.net/reader035/viewer/2022062521/56816395550346895dd48ed3/html5/thumbnails/30.jpg)
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.
Program
TotalScore