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

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

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

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

Chapter 7: Single-Dimensional Arrays. Declaring Array Variables. Creating Arrays. Declaring and Creating in One Step.

CS1150 Principles of Computer Science Arrays

Chapter 7 Single-Dimensional Arrays

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

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

Module 7: Arrays (Single Dimensional)

Java-Array. This tutorial introduces how to declare array variables, create arrays, and process arrays using indexed variables.

14. Array Basics. Java. Summer 2008 Instructor: Dr. Masoud Yaghini

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

CS115 Principles of Computer Science

Arrays. Eng. Mohammed Abdualal

Chapter 6 Single-dimensional Arrays

Tutorial 11. Exercise 1: CSC111 Computer Programming I. A. Write a code snippet to define the following arrays:

Object Oriented Programming. Java-Lecture 6 - Arrays

Java Programming. MSc Induction Tutorials Stefan Stafrace PhD Student Department of Computing

Chapter 8 Multidimensional Arrays

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

CS2401 QUIZ 5 February 26, questions / 20 points / 20 minutes NAME:..

Chapter 8 Multi-Dimensional Arrays

Computer Programming, I. Laboratory Manual. Final Exam Solution

Introduction to Java & Fundamental Data Types

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

LAB 13: ARRAYS (ONE DIMINSION)

Chapter 7 Multidimensional Arrays

CS1150 Principles of Computer Science Loops (Part II)

Computer programming Code exercises [1D Array]

Basic computer skills such as using Windows, Internet Explorer, and Microsoft Word. Chapter 1 Introduction to Computers, Programs, and Java

Lecture #8-10 Arrays

Object-oriented programming. and data-structures CS/ENGRD 2110 SUMMER 2018

1. Which of the following is the correct expression of character 4? a. 4 b. "4" c. '\0004' d. '4'

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

Problems with simple variables

Java Coding 3. Over & over again!

Lecture 6 Sorting and Searching

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

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

Review. Primitive Data Types & Variables. String Mathematical operators: + - * / % Comparison: < > <= >= == int, long float, double boolean char

Programming with Java

Chapter 12: Arrays Think Java: How to Think Like a Computer Scientist by Allen B. Downey

SCALA ARRAYS. Following picture represents array mylist. Here, mylist holds ten double values and the indices are from 0 to 9.

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

Computer Programming, I. Laboratory Manual. Experiment #2. Elementary Programming

12/1/2016. Sorting. Savitch Chapter 7.4. Why sort. Easier to search (binary search) Sorting used as a step in many algorithms

Tutorial # 4. Q1. Evaluate the logical (Boolean) expression in the following exercise

CS 171: Introduction to Computer Science II. Arrays. Li Xiong

PROGRAMMING FUNDAMENTALS

1 Short Answer (10 Points Each)

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

Chapter 2. Elementary Programming

Opening Problem. Find the sum of integers from 1 to 10, from 20 to 30, and from 35 to 45, respectively.

Declaring Array Variable

CSC 307 DATA STRUCTURES AND ALGORITHM ANALYSIS IN C++ SPRING 2011

Opening Problem. Find the sum of integers from 1 to 10, from 20 to 30, and from 35 to 45, respectively.

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

Lecture 5: Methods CS2301

Introduction to Computer Science Unit 2. Notes

Choose 3 of the 1 st 4 questions (#'s 1 through 4) to complete. Each question is worth 12 points.

C212 Early Evaluation Exam Mon Feb Name: Please provide brief (common sense) justifications with your answers below.

CS111: PROGRAMMING LANGUAGE II

Outline. Parts 1 to 3 introduce and sketch out the ideas of OOP. Part 5 deals with these ideas in closer detail.

b. Suppose you enter input from the console, when you run the program. What is the output?

Arrays: An array is a data structure that stores a sequence of values of the same type. The data type can be any of Java s primitive types:

Tutorials. Inf1-OP. Learning Outcomes for this week. A Foundation for Programming. Conditionals and Loops 1

CSEN 102 Introduction to Computer Science

Fundamentals of Programming Data Types & Methods

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

CEN 414 Java Programming

Preview from Notesale.co.uk Page 9 of 108

CONDITIONAL EXECUTION

CS 113 MIDTERM EXAM 2 SPRING 2013

CS313D: ADVANCED PROGRAMMING LANGUAGE

Functions. Arash Rafiey. September 26, 2017

Controls Structure for Repetition

Expressions & Flow Control

Loops. CSE 114, Computer Science 1 Stony Brook University

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

Getting started with Java

To define methods, invoke methods, and pass arguments to a method ( ). To develop reusable code that is modular, easy-toread, easy-to-debug,

Announcements. PS 3 is due Thursday, 10/6. Midterm Exam 1: 10/14 (Fri), 9:00am-10:53am

Introduction to Software Development (ISD) Week 3

It is a constructor and is called using the new statement, for example, MyStuff m = new MyStuff();

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

Trace call recsum(x, 3)

COMPUTER APPLICATIONS

Object oriented programming. Instructor: Masoud Asghari Web page: Ch: 3

Overview. Arrays and their properties Creating arrays Accessing array elements Modifying array elements Loops and arrays. Initialization Searching

Jump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.

CSE 201 JAVA PROGRAMMING I. Copyright 2016 by Smart Coding School

Full file at

Arrays and Lists Review CSC 123 Fall 2018 Howard Rosenthal

JVM (java) compiler. A Java program is either a library of static methods (functions) or a data type definition

Java Classes: Math, Integer A C S L E C T U R E 8

SORTING. How? Binary Search gives log(n) performance.


JAVA WRAPPER CLASSES

Java How to Program, 10/e. Copyright by Pearson Education, Inc. All Rights Reserved.

Transcription:

Chapter 6 Arrays 1

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

Solution AnalyzeNumbers Run Run with prepared input 3

Objectives 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). 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). 4

Introducing Arrays Array is a data structure that represents a collection of the same types of data. double[] mylist = new double[10]; mylist reference mylist[0] 5.6 mylist[1] 4.5 Array reference variable mylist[2] mylist[3] 3.3 13.2 Array element at index 5 mylist[4] mylist[5] mylist[6] 4 34.33 34 Element value mylist[7] 45.45 mylist[8] mylist[9] 99.993 11123 5

Declaring Array Variables datatype[] arrayrefvar; Example: double[] mylist; datatype arrayrefvar[]; // This style is allowed, but not preferred Example: double mylist[]; 6

Creating Arrays arrayrefvar = new datatype[arraysize]; Example: mylist = new double[10]; mylist[0] references the first element in the array. mylist[9] references the last element in the array. 7

Declaring and Creating in One Step datatype[] arrayrefvar = new datatype[arraysize]; double[] mylist = new double[10]; datatype arrayrefvar[] = new datatype[arraysize]; double mylist[] = new double[10]; 8

The Length of an Array Once an array is created, its size is fixed. It cannot be changed. You can find its size using arrayrefvar.length For example, mylist.length returns 10 9

Default Values When an array is created, its elements are assigned the default value of 0 for the numeric primitive data types, '\u0000' for char types, and false for boolean types. 10

Indexed Variables The array elements are accessed through the index. The array indices are 0-based, i.e., it starts from 0 to arrayrefvar.length-1. In the example in Figure 6.1, mylist holds ten double values and the indices are from 0 to 9. Each element in the array is represented using the following syntax, known as an indexed variable: arrayrefvar[index]; 11

Using Indexed Variables After an array is created, an indexed variable can be used in the same way as a regular variable. For example, the following code adds the value in mylist[0] and mylist[1] to mylist[2]. mylist[2] = mylist[0] + mylist[1]; 12

Array Initializers Declaring, creating, initializing in one step: double[] mylist = {1.9, 2.9, 3.4, 3.5; This shorthand syntax must be in one statement. 13

Declaring, creating, initializing Using the Shorthand Notation double[] mylist = {1.9, 2.9, 3.4, 3.5; This shorthand notation is equivalent to the following statements: double[] mylist = new double[4]; mylist[0] = 1.9; mylist[1] = 2.9; mylist[2] = 3.4; mylist[3] = 3.5; 14

CAUTION Using the shorthand notation, you have to declare, create, and initialize the array all in one statement. Splitting it would cause a syntax error. For example, the following is wrong: double[] mylist; mylist = {1.9, 2.9, 3.4, 3.5; 15

animation Trace Program with Arrays Declare array variable values, create an array, and assign its reference to values public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the array is created 0 0 1 0 2 0 3 0 4 0 16

animation Trace Program with Arrays i becomes 1 public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the array is created 0 0 1 0 2 0 3 0 4 0 17

animation Trace Program with Arrays i (=1) is less than 5 public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the array is created 0 0 1 0 2 0 3 0 4 0 18

animation Trace Program with Arrays After this line is executed, value[1] is 1 public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the first iteration 0 0 1 1 2 0 3 0 4 0 19

animation Trace Program with Arrays After i++, i becomes 2 public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the first iteration 0 0 1 1 2 0 3 0 4 0 20

animation Trace Program with Arrays public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; i (= 2) is less than 5 After the first iteration 0 0 1 1 2 0 3 0 4 0 21

animation Trace Program with Arrays After this line is executed, values[2] is 3 (2 + 1) public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the second iteration 0 0 1 1 2 3 3 0 4 0 22

animation Trace Program with Arrays After this, i becomes 3. public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the second iteration 0 0 1 1 2 3 3 0 4 0 23

animation Trace Program with Arrays i (=3) is still less than 5. public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the second iteration 0 0 1 1 2 3 3 0 4 0 24

animation Trace Program with Arrays After this line, values[3] becomes 6 (3 + 3) public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the third iteration 0 0 1 1 2 3 3 6 4 0 25

animation Trace Program with Arrays After this, i becomes 4 public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the third iteration 0 0 1 1 2 3 3 6 4 0 26

animation Trace Program with Arrays i (=4) is still less than 5 public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the third iteration 0 0 1 1 2 3 3 6 4 0 27

animation Trace Program with Arrays After this, values[4] becomes 10 (4 + 6) public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the fourth iteration 0 0 1 1 2 3 3 6 4 10 28

animation Trace Program with Arrays After i++, i becomes 5 public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the fourth iteration 0 0 1 1 2 3 3 6 4 10 29

animation Trace Program with Arrays i ( =5) < 5 is false. Exit the loop public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; After the fourth iteration 0 0 1 1 2 3 3 6 4 10 30

animation Trace Program with Arrays After this line, values[0] is 11 (1 + 10) public class Test { public static void main(string[] args) { int[] values = new int[5]; for (int i = 1; i < 5; i++) { values[i] = i + values[i-1]; values[0] = values[1] + values[4]; 0 1 2 3 4 11 1 3 6 10 31

See the examples in the text. Processing Arrays 1. (Initializing arrays with input values) 2. (Initializing arrays with random values) 3. (Printing arrays) 4. (Summing all elements) 5. (Finding the largest element) 6. (Finding the smallest index of the largest element) 7. (Random shuffling) 8. (Shifting elements) 32

Initializing arrays with input values java.util.scanner input = new java.util.scanner(system.in); System.out.print("Enter " + mylist.length + " values: "); for (int i = 0; i < mylist.length; i++) mylist[i] = input.nextdouble(); 33

Initializing arrays with random values for (int i = 0; i < mylist.length; i++) { mylist[i] = Math.random() * 100; 34

Printing arrays for (int i = 0; i < mylist.length; i++) { System.out.print(myList[i] + " "); 35

Summing all elements double total = 0; for (int i = 0; i < mylist.length; i++) { total += mylist[i]; 36

Finding the largest element double max = mylist[0]; for (int i = 1; i < mylist.length; i++) { if (mylist[i] > max) max = mylist[i]; 37

Random shuffling for (int i = 0; i < mylist.length; i++) { // Generate an index j randomly int index = (int)(math.random() * mylist.length); // Swap mylist[i] with mylist[j] double temp = mylist[i]; mylist[i] = mylist[index]; mylist[index] = temp; i mylist [0] [1] [index] A random index... swap 38

Shifting Elements double temp = mylist[0]; // Retain the first element // Shift elements left for (int i = 1; i < mylist.length; i++) { mylist[i - 1] = mylist[i]; mylist // Move the first element to fill in the last position mylist[mylist.length - 1] = temp; 39