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

Similar documents
Chapter 7 Multidimensional Arrays

Chapter 8 Multi-Dimensional Arrays

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

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

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

Chapter 8 Multidimensional Arrays

15. Multidimensional Arrays

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

CS115 Principles of Computer Science

Arrays. Eng. Mohammed Abdualal

Object Oriented Programming. Java-Lecture 6 - Arrays

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

Lecture #8-10 Arrays

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

Spring 2010 Java Programming

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

Arrays and Lists CSC 121 Fall 2015 Howard Rosenthal

Two-Dimensional Arrays

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

CS1150 Principles of Computer Science Arrays

Arrays and Lists CSC 121 Fall 2014 Howard Rosenthal

Fundamentals of Programming Data Types & Methods

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

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

Array. Array Declaration:

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

Arrays and Lists CSC 121 Fall 2016 Howard Rosenthal

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

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

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

Chapter 9 Introduction to Arrays. Fundamentals of Java

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

CS Computers & Programming I Review_01 Dr. H. Assadipour

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

Introduction to Algorithms and Data Structures

CS141 Programming Assignment #10

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

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

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

Arrays. Chapter 7 Part 3 Multi-Dimensional Arrays

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

1. What is the difference between a compiler and an interpreter? Also, discuss Java s method.

Supplementary Test 1

Exam 1. Programming I (CPCS 202) Instructor: M. G. Abbas Malik. Total Marks: 45 Obtained Marks:

CS1150 Principles of Computer Science Arrays

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

H212 Introduction to Software Systems Honors

Web-CAT submission URL: CAT.woa/wa/assignments/eclipse

LAB 12: ARRAYS (ONE DIMINSION)

Example: Computing prime numbers

Programming with Java

ITERATION WEEK 4: EXMAPLES IN CLASS

Two Dimensional Arrays

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

Declaring and ini,alizing 2D arrays

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

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

CAT.woa/wa/assignments/eclipse

Arrays and Lists Review CSC 123 Fall 2018 Howard Rosenthal

Controls Structure for Repetition

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

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

Chapter 7 Single-Dimensional Arrays

Give one example where you might wish to use a three dimensional array

1 Short Answer (10 Points Each)

Exam 2. Programming I (CPCS 202) Instructor: M. G. Abbas Malik. Total Marks: 40 Obtained Marks:

Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Spring 2016 Howard Rosenthal

System.out.printf("Please, enter the value of the base : \n"); base =input.nextint();

Learning objec-ves. Declaring and ini-alizing 2D arrays. Prin-ng 2D arrays. Using 2D arrays Decomposi-on of a solu-on into objects and methods

Object Oriented Programming. Java-Lecture 1

COMP 250: Java Programming I. Carlos G. Oliver, Jérôme Waldispühl January 17-18, 2018 Slides adapted from M. Blanchette

Over and Over Again GEEN163

Question: Total Points: Score:

AL GHURAIR UNIVERSITY College of Computing. Objectives: Examples: Text-printing program. CSC 209 JAVA I

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

COSC 236 Section 101 Computer Science 1 -- Prof. Michael A. Soderstrand

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

CONTENTS: Compilation Data and Expressions COMP 202. More on Chapter 2

Arrays. CS Feb 2008

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

Last Class. While loops Infinite loops Loop counters Iterations

1 Short Answer (10 Points Each)

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

Lecture 5: Methods CS2301

CS111: PROGRAMMING LANGUAGE II

Java Programming: Program Design Including Data Structures. Chapter Objectives

Handout 4 Conditionals. Boolean Expressions.

(A) 99 (B) 100 (C) 101 (D) 100 initial integers plus any additional integers required during program execution

Midterm Examination (MTA)

(A) 99 (B) 100 (C) 101 (D) 100 initial integers plus any additional integers required during program execution

Example: Monte Carlo Simulation 1

CS141 Programming Assignment #6

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

Introduction to Computer Programming

Computer Science & Engineering 150A Problem Solving Using Computers

Module 7: Arrays (Single Dimensional)

Question: Total Points: Score:

CSE 1223: Introduction to Computer Programming in Java Chapter 6 Arrays

St. Edmund Preparatory High School Brooklyn, NY

Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Fall 2016 Howard Rosenthal

Transcription:

1

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. 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

To give examples of representing data using twodimensional 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 two-dimensional arrays ( 7.5). To use multidimensional arrays ( 7.8). 3

// 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

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

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

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

int[][] x = new int[3][4]; x x[0] x[0][0] x[0][1] x[0][2] x[0][3] x[0].length is 4 x[1] x[1][0] x[1][1] x[1][2] x[1][3] 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

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

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 = matrix.length { is 5 {1, 2, 3, 4, 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 {2, 3, 4, 5, {3, 4, 5, {4, 5, {5 ; 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 10

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) 11

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

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(); 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]; 13

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

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

import 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: "); for (int i = 0; i < m.length; i++) for (int j = 0; j < m[i].length; j++) m[i][j] = input.nextint(); // Display result 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; 16

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 multiplechoice 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 17

public class GradeExam { /** Main method */ public static void main(string args[]) { // Students' answers to the questions char[][] answers = { {'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 to the questions char[] keys = {'D', 'B', 'D', 'C', 'C', 'D', 'A', 'E', 'A', 'D'; // Grade all answers for (int i = 0; i < answers.length; i++) { // Grade one student int correctcount = 0; for (int j = 0; j < answers[i].length; j++) { if (answers[i][j] == keys[j]) correctcount++; System.out.println("Student " + i + "'s correct count is " + correctcount); 18

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