Chapter 7 Multidimensional Arrays

Similar documents
Chapter 7 Multidimensional Arrays. Liang, Introduction to Java Programming, Tenth Edition, (c) 2013 Pearson Education, Inc. All rights reserved.

Multidimensional Arrays. CSE 114, Computer Science 1 Stony Brook University

Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved

Chapter 8 Multi-Dimensional Arrays

15. Multidimensional Arrays

Introduction. Data in a table or a matrix can be represented using a two-dimensional array. For example:

Computer Programming, I. Laboratory Manual. Experiment #9. Multi-Dimensional Arrays

Chapter 8 Multidimensional Arrays

CS115 Principles of Computer Science

Arrays. Eng. Mohammed Abdualal

Two-Dimensional Arrays

Object Oriented Programming. Java-Lecture 6 - Arrays

Lecture #8-10 Arrays

Chapter 9 Introduction to Arrays. Fundamentals of Java

final int CHICAGO = 0; final int BOSTON = 1; final int MIAMI = 4;

Arrays: Higher Dimensional Arrays. CS0007: Introduction to Computer Programming

Chapter 6. Arrays. Java Actually: A Comprehensive Primer in Programming

Arrays. Introduction to OOP with Java. Lecture 06: Introduction to OOP with Java - AKF Sep AbuKhleiF - 1

LAB 12: ARRAYS (ONE DIMINSION)

Spring 2010 Java Programming

Chapter 6 Arrays. Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved.

Arrays. Chapter 7 Part 3 Multi-Dimensional Arrays

Chapter 6 Arrays, Part D 2d Arrays and the Arrays Class

CS1150 Principles of Computer Science Arrays

Chapter 6 Single-Dimensional Arrays. Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved.

Arrays and Lists CSC 121 Fall 2015 Howard Rosenthal

Two Dimensional Arrays

CS1150 Principles of Computer Science Arrays

An array is a collection of data that holds fixed number of values of same type. It is also known as a set. An array is a data type.

CS5000: Foundations of Programming. Mingon Kang, PhD Computer Science, Kennesaw State University

Arrays and Lists CSC 121 Fall 2014 Howard Rosenthal

Lecture 2 Arrays, Searching and Sorting (Arrays, multi-dimensional Arrays)

Java Arrays. What could go wrong here? Motivation. Array Definition 9/28/18. Mohammad Ghafari

Last Class. More on loops break continue A bit on arrays

How to declare an array in C?

Arrays and Lists CSC 121 Fall 2016 Howard Rosenthal

Chapter 7 Single-Dimensional Arrays

Q1 Q2 Q3 Q4 Q5 Total 1 * 7 1 * 5 20 * * Final marks Marks First Question

Java Programming: Program Design Including Data Structures. Chapter Objectives

CS 112 Introduction to Computing II. Wayne Snyder Computer Science Department Boston University

Arrays. CS Feb 2008

Supplement: Case Study: Sudoku. For Introduction to Java Programming By Y. Daniel Liang

Quadratic: the time that it takes to sort an array is proportional to the. square of the number of elements.

Introduction to Algorithms and Data Structures

Arrays (Deitel chapter 7)

Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved

CS Computers & Programming I Review_01 Dr. H. Assadipour

Programming with Java

Mid Term Exam 1. Programming I (CPCS 202) Instructor: M. G. Abbas Malik Date: Sunday November 3, 2013 Total Marks: 50 Obtained Marks:

Arrays Chapter 6 Chapter 6 1

BITG 1113: Array (Part 1) LECTURE 8

CSCI Problem Solving, Programming and Computers Spring, 2016 Assignment 2 {Inheritance, Interfaces, Arrays}

Chapter 8 Arrays and Strings. Objectives. Objectives (cont d.) Introduction. Arrays 12/23/2016. In this chapter, you will:

ECE 122. Engineering Problem Solving with Java

ECE 122. Engineering Problem Solving with Java

Section 004 Spring CS 170 Exam 1. Name (print): Instructions:

Opening Problem EXAMPLE. 1. Read one hundred numbers, 2. compute their average, and 3. find out how many numbers are above the average.

Arrays and functions Multidimensional arrays Sorting and algorithm efficiency

WORKING WITH PIVOT TABLES

H212 Introduction to Software Systems Honors

Module 7: Arrays (Single Dimensional)

Fundamentals of Programming Data Types & Methods

Last Class. Introduction to arrays Array indices Initializer lists Making an array when you don't know how many values are in it

M105: Introduction to Programming with Java Midterm Examination (MTA) Makeup Spring 2013 / 2014

1 Short Answer (10 Points Each)

Lesson 9: Introduction To Arrays (Updated for Java 1.5 Modifications by Mr. Dave Clausen)

Exam 2. CSC 121 MW Class. Lecturer: Howard Rosenthal. April 26, 2017

Exam 2. CSC 121 MW Class. Lecturer: Howard Rosenthal. April 25, 2016

CSCI Problem Solving, Programming and Computers Spring, 2016 Assignment 2 {Inheritance, Interfaces, Arrays}

Example: Computing prime numbers

Over and Over Again GEEN163

Arrays. Storing Multiple Values

CSE 20. SAMPLE FINAL Version A Time: 180 minutes. The following precedence table is provided for your use:

Arrays and Lists Review CSC 123 Fall 2018 Howard Rosenthal

Chapter 1-9, 12-13, 18, 20, 23 Review Slides. What is a Computer?

Method OverLoading printf method Arrays Declaring and Using Arrays Arrays of Objects Array as Parameters

Supplementary Test 1

EXAM Computer Science 1 Part 1

University of Cape Town ~ Department of Computer Science. Computer Science 1015F ~ 2007

Arrays. Outline 1/7/2011. Arrays. Arrays are objects that help us organize large amounts of information. Chapter 7 focuses on:

Chapter 4 Loops. Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved.

CS 201, Fall 2016 Oct 28th Exam 2. Question 1. [5 points] Consider the following static method:

CS 231 Data Structures and Algorithms Fall Arrays Lecture 07 - September 19, Prof. Zadia Codabux

C++ for Engineers and Scientists. Third Edition. Chapter 12 Pointers

Array. Array Declaration:

Announcements. PS 4 is ready, due next Thursday, 9:00pm. Midterm Exam 1: 10/14 (Fri), 9:00am-10:53am

Arrays and ArrayLists. Ananda Gunawardena

that initializes the person s name from the input string. Consider the following fragment of Java code (inside some main method):

Wentworth Institute of Technology. Engineering & Technology WIT COMP1000. Arrays

Array. Lecture 12. Based on Slides of Dr. Norazah Yusof

Computer Programming, I. Laboratory Manual. Experiment #6. Loops

New Concepts. Lab 7 Using Arrays, an Introduction

Section 003 Fall CS 170 Exam 1. Name (print): Instructions:

Arrays and Array Lists. CSE 1310 Introduction to Computers and Programming Vassilis Athitsos and Alexandra Stefan University of Texas at Arlington

while (/* array size less than 1*/){ System.out.print("Number of students is invalid. Enter" + "number of students: "); /* read array size again */

CONTENTS: Array Usage Multi-Dimensional Arrays Reference Types. COMP-202 Unit 6: Arrays

JAVA PROGRAMMING LAB. ABSTRACT In this Lab you will learn to write programs for executing statements repeatedly using a while, do while and for loop

Arrays and ArrayLists. David Greenstein Monta Vista High School

CSE 1223: Introduction to Computer Programming in Java Chapter 3 Branching

Method OverLoading printf method Arrays Declaring and Using Arrays Arrays of Objects Array as Parameters

Transcription:

Chapter 7 Multidimensional Arrays 1

Motivations You can use a two-dimensional array to represent a matrix or a table. Distance Table (in miles) Chicago Boston New York Atlanta Miami Dallas Houston 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 2

Objectives 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). To write a program for grading multiple-choice questions using twodimensional 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). 3

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]; 4

Declaring Variables of Two-dimensional Arrays and Creating Two-dimensional Arrays int[][] matrix = new int[10][10]; or int 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; 5

Two-dimensional Array Illustration 0 1 2 3 4 0 1 2 3 4 0 1 2 0 0 0 1 2 3 1 2 3 4 matrix = new int[5][5]; 1 2 3 4 7 matrix[2][1] = 7; 3 1 2 4 5 6 7 8 9 10 11 12 int[][] array = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} }; matrix.length? 5 matrix[0].length? 5 array.length? 4 array[0].length? 3 6

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 = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {10, 11, 12} }; Same as 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; 1 2 3 4 5 6 7 8 9 10 11 12 7

Lengths of Two-dimensional Arrays int[][] x = new int[3][4]; x x[0] x[1] 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[0].length is 4 x[1].length is 4 x[2] x.length is 3 x[2][0] x[2][1] x[2][2] x[2][3] x[2].length is 4 8

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 ArrayIndexOutOfBoundsException 9

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 5 matrix[0].length is 5 matrix[1].length is 4 matrix[2].length is 3 matrix[3].length is 2 matrix[4].length is 1 10

Ragged Arrays, cont. int[][] trianglearray = { {1, 2, 3, 4, 5}, {2, 3, 4, 5}, {3, 4, 5}, {4, 5}, {5} }; 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 2 11

Processing Two-Dimensional Arrays See 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) 12

Initializing arrays with input values int [][] matrix = new int[3][4]; 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(); } } 13

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

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(); 15

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]; } } 16

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); 17

Random shuffling 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; } } 18

Passing Tow-Dimensional Arrays to Methods PassTwoDimensionalArray Run 19

Problem: Grading Multiple- Choice Test Student 0 Student 1 Student 2 Student 3 Student 4 Student 5 Student 6 Student 7 Students Answers to the Questions: 0 1 2 3 4 5 6 7 8 9 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 Key Objective: write a program that grades multiple-choice test. Key to the Questions: 0 1 2 3 4 5 6 7 8 9 D B D C C D A E A D GradeExam Run 20

Problem: Finding Two Points Nearest to Each Other x y (-1, 3) (-1, -1) (1, 1) (3, 3) (4, 2) (2, 0.5) (4, -0.5) (2, -1) 0 1 2 3 4 5 6 7-1 3-1 -1 1 1 2 0.5 2-1 3 3 4 2 4-0.5 FindNearestPoints Run 21

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 22

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 23

Every column 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 24

Every 3 3 box 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 25

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 CheckSudokuSolution Run 26

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]; 27

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 threedimensional 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. TotalScore Run 28