CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: www.csc.villanova.edu/~map/1051/

Slides:



Advertisements
Similar presentations
CS110 Programming Language I Lab 10: Arrays I Computer Science Department Spring 2014.
Advertisements

Arrays. What is an array An array is used to store a collection of data It is a collection of variables of the same type.
1 (c) elsaddik CSI 1102 Introduction to Software Design Prof. Dr.-Ing. Abdulmotaleb El Saddik University of Ottawa (SITE.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Java Software Solutions Foundations of Program Design Sixth Edition by Lewis.
Arrays Clark Savage Turner, J.D., Ph.D. Copyright © 2000 by C Scheftic. All rights reserved. These notes do rely heavily.
Chapter 7 Arrays. © 2004 Pearson Addison-Wesley. All rights reserved7-2 Arrays Arrays are objects that help us organize large amounts of information Chapter.
1 Arrays b An array is an ordered list of values An array of size N is indexed from zero to N-1 scores.
1 Arrays  Arrays are objects that help us organize large amounts of information  Chapter 8 focuses on: array declaration and use passing arrays and array.
Java Types float, double long, int, short byte char boolean Objects Objects are created by : Declaring a reference and calling a constructor. Basic types.
Arrays in Java Selim Aksoy Bilkent University Department of Computer Engineering
© 2011 Pearson Education, publishing as Addison-Wesley 1 Arrays  Arrays are objects that help us organize large amounts of information  Chapter 6 focuses.
CSC 1051 M.A. Papalaskari, Villanova University Repetition CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
7. Arrays. Topics Declaring and Using Arrays Some Array Algorithms Arrays of Objects Variable Length Parameter Lists Two-Dimensional Arrays The ArrayList.
1 Dr. Seuss again: "Too Many Daves"  Did I ever tell you that Mrs. McCave Had twenty-three sons, and she named them all Dave?  Well, she did. And that.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Chapter 7 Arrays. © 2004 Pearson Addison-Wesley. All rights reserved7-2 Arrays Arrays are objects that help us organize large amounts of information Chapter.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 6: Arrays Presentation slides for Java Software Solutions for AP* Computer Science 3rd Edition.
8-1 Chapter 8: Arrays Arrays are objects that help us organize large amounts of information Today we will focuses on: –array declaration and use –bounds.
CSC 1051 – Algorithms and Data Structures I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Copyright © 2012 Pearson Education, Inc. Chapter 6 More Conditionals and Loops Java Software Solutions Foundations of Program Design Seventh Edition John.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 M.A. Papalaskari, Villanova University Conditional Statements Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University.
Chapter 7 Arrays: Part 1 of 2. © 2004 Pearson Addison-Wesley. All rights reserved7-2 Arrays Arrays are objects that help us organize large amounts of.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
***** SWTJC STEM ***** Chapter 7 cg 68 What Are Arrays? An array is a simple but powerful way to organize and store large amounts of data and information.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 M.A. Papalaskari, Villanova University CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Outline Character Strings Variables and Assignment Primitive Data Types Expressions Data Conversion Interactive Programs Graphics Applets Drawing Shapes.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 M.A. Papalaskari, Villanova University Everyday objects: Strings and Wrappers CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 M.A. Papalaskari, Villanova University Algorithms Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Algorithms and Data Structures I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 M.A. Papalaskari, Villanova University Repetition CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
1 Arrays Chapter 8. Objectives You will be able to Use arrays in your Java programs to hold a large number of data items of the same type. Initialize.
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Chapter 7 Arrays…. 7-2 Arrays An array is an ordered list of values An array of size N is indexed from.
© 2004 Pearson Addison-Wesley. All rights reserved October 5, 2007 Arrays ComS 207: Programming I (in Java) Iowa State University, FALL 2007 Instructor:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website:
Lecture 5 array declaration and instantiation array reference
Arrays of Objects October 9, 2006 ComS 207: Programming I (in Java)
ARRAYS (Extra slides) Arrays are objects that help us organize large amounts of information.
Chapter VII: Arrays.
CSC111 Quick Revision.
CSC 1051 – Data Structures and Algorithms I
CSC 1051 – Data Structures and Algorithms I
Chapter 6 More Conditionals and Loops
Chapter 7: Arrays.
Arrays We often want to organize objects or primitive data in a way that makes them easy to access and change. An array is simple but powerful way to.
CSC 1051 – Data Structures and Algorithms I
Arrays of Objects October 8, 2007 ComS 207: Programming I (in Java)
Arrays.
Repetition CSC 1051 – Data Structures and Algorithms I Course website:
Presentation transcript:

CSC 1051 – Data Structures and Algorithms I Dr. Mary-Angela Papalaskari Department of Computing Sciences Villanova University Course website: Some slides in this presentation are adapted from the slides accompanying Java Software Solutions by Lewis & Loftus CSC 1051 M.A. Papalaskari, Villanova University Introduction to Arrays

Arrays The entire array has a single name index This array holds 10 values of type double that are indexed from 0 to 9 CSC 1051 M.A. Papalaskari, Villanova University scores[2] array element scores An array is an ordered list of values:

Arrays - Declaration The entire array has a single name CSC 1051 M.A. Papalaskari, Villanova University scores element type double[] scores Declaration:

= new double[10];double[] scores Arrays - Instantiation The entire array has a single name index This array holds 10 values of type double that are indexed from 0 to 9 The size of the array is given by: scores.length = 10 CSC 1051 M.A. Papalaskari, Villanova University scores[2] array element scores element type Instantiation: Declaration:

Arrays - Initialization The entire array has a single name index This array holds 10 values of type double that are indexed from 0 to 9 The size of the array is given by: scores.length = 10 CSC 1051 M.A. Papalaskari, Villanova University scores[2] array element scores element type scores[0] = 7.9; scores[1] = 8.7; scores[2] = 9.4; scores[3] = 8.2; scores[4] = 6.7; scores[5] = 9.8; scores[6] = 8.7; scores[7] = 8.1; scores[8] = 7.4; scores[9] = 9.1; Instantiation: Declaration: = new double[10];double[] scores Initialization:

Declaring and instantiating Arrays Some more examples: int[] weights = new int[2000]; boolean[] flags; flags = new boolean[20]; char[] codes = new char[1750]; double[] prices = new double[500]; –The brackets of the array type can be associated with element type or with array name, so this alternative code is also ok: double prices[] = new double[500]; –The first format is preferable because it is more readable CSC 1051 M.A. Papalaskari, Villanova University

Using Arrays Array elements can be assigned a value, printed, or used in a calculation. Examples: System.out.println ("Top = " + scores[5]); scores[3] = 7 + Math.random(); mean = (scores[0] + scores[1])/2; scores[scores.length – 1] = 9.0; double num = scores[(int) (Math.random()*10)]; CSC 1051 M.A. Papalaskari, Villanova University scores

declare and instantiate an array named ratings that holds 5 values type int declare and instantiate an array named vowel to hold 5 values of type char, then initialize its values to the vowels ‘a’, ‘e’, ‘i’, ‘o’, ‘u’ CSC 1051 M.A. Papalaskari, Villanova University Try this: Write some Java code to create an array

What gets printed? System.out.println (scores[8] + 1); System.out.println (scores[1] + scores[2]); System.out.println (scores[1 + 2]); System.out.println(scores[scores.length – 1]); CSC 1051 M.A. Papalaskari, Villanova University scores

Show how scores values change: scores[8] = 1; scores[5] = scores[0] + 1; scores[3] = scores[1] + scores[2]); scores[scores.length – 1]) = 5.5; CSC 1051 M.A. Papalaskari, Villanova University values ?  scores score s

Processing Arrays using for-loops: 1) draw a picture of the resulting array double[] scores = new double[10]; for (int i = 0; i < 10; i++) scores[i] = 0; for (int i = 0; i < 10; i++) scores[i] = i; CSC 1051 M.A. Papalaskari, Villanova University

Processing Arrays using for-loops: 2) show output double[] scores = new double[10]; for (int i = 0; i < scores.length; i++) System.out.println(scores[i]); Output: CSC 1051 M.A. Papalaskari, Villanova University

Processing Arrays using for-loops: 3) write a for-loop to print the values in the vowel array CSC 1051 M.A. Papalaskari, Villanova University

Bounds Checking An array index must specify a valid element Example: If an array codes holds 100 values, it can be indexed from 0 to 99. If the value of count is 100, then System.out.println(codes[count]); causes an ArrayIndexOutOfBoundsException It’s common to introduce off-by-one errors when using arrays: for (int index=0; index <= 100; index++) codes[index] = index*50 + epsilon; problem CSC 1051 M.A. Papalaskari, Villanova University

Initializer Lists Alternative way to declare, instantiate, and initialize an array. For example: int[] ratings = {4, 3, 3, 1, 4, 2, 1, 0, 3, 4}; char[] grades = {'A', 'B', 'C', 'D', ’F'}; CSC 1051 M.A. Papalaskari, Villanova University NOTE: –the new operator is not used –size of array is determined by the number of items listed –can only be used in the array declaration try this with the vowel array

The “for-each” Loop A simple way of processing every array element: for (double score : scores) System.out.println (score); NOTE: Only appropriate when processing all array elements starting at index 0 It can't be used to set the array values CSC 1051 M.A. Papalaskari, Villanova University try this with the vowel array

Try this: Use the “for each” loop to scan through an array of int containing ratings (range: 0 - 4) and count up how many 4’s. CSC 1051 M.A. Papalaskari, Villanova University int[] ratings = {4, 3, 3, 1, 4, 3, 1, 0, 3, 4};

Try this: Repeat, but now count up the 0’s, 1’s,…4’s – Use a separate array for this CSC 1051 M.A. Papalaskari, Villanova University int[] ratings = {4, 3, 3, 1, 4, 3, 1, 0, 3, 4};

More array examples (see textbook): BasicArray.java Primes.java ReverseOrder.java LetterCount.java CSC 1051 M.A. Papalaskari, Villanova University

//******************************************************************** // ReverseOrder.java Author: Lewis/Loftus // // Demonstrates array index processing. //******************************************************************** import java.util.Scanner; public class ReverseOrder { // // Reads a list of numbers from the user, storing them in an // array, then prints them in the opposite order. // public static void main (String[] args) { Scanner scan = new Scanner (System.in); double[] numbers = new double[10]; System.out.println ("The size of the array: " + numbers.length); continue

CSC 1051 M.A. Papalaskari, Villanova University continue for (int index = 0; index < numbers.length; index++) { System.out.print ("Enter number " + (index+1) + ": "); numbers[index] = scan.nextDouble(); } System.out.println ("The numbers in reverse order:"); for (int index = numbers.length-1; index >= 0; index--) System.out.print (numbers[index] + " "); }

CSC 1051 M.A. Papalaskari, Villanova University continue for (int index = 0; index < numbers.length; index++) { System.out.print ("Enter number " + (index+1) + ": "); numbers[index] = scan.nextDouble(); } System.out.println ("The numbers in reverse order:"); for (int index = numbers.length-1; index >= 0; index--) System.out.print (numbers[index] + " "); } Sample Run The size of the array: 10 Enter number 1: Enter number 2: 48.9 Enter number 3: 53.5 Enter number 4: Enter number 5: Enter number 6: 34.8 Enter number 7: Enter number 8: Enter number 9: 69.0 Enter number 10: The numbers in reverse order: places numbers in an array, then prints them out backward … alternatively, we could place the numbers in the array backward and then print them forward

Another example: Computing letter frequency counts Sample run: CSC 1051 M.A. Papalaskari, Villanova University Enter a sentence: In Casablanca, Humphrey Bogart never says "Play it again, Sam." A: 0a: 10 B: 1b: 1 C: 1c: 1 D: 0d: 0 E: 0e: 3 … Let’s write a program to do this

Letter Frequency counts - Algorithm Uses two arrays for the counters: upper and lower with 26 elements each, to count the number of upper- and lowercase letters, respectively. 1.declare and instantiate upper and lower with 26 elements of type int 2.prompt user to "Enter a sentence:” and scan input into a String line 3.for each character current in line do the following: –if ( current is an upper case letter increment the count for current in the upper array –if ( current is an lower case letter increment the count for current in the lower array – (do nothing if current is not a letter) 1.CSC 1051 M.A. Papalaskari, Villanova University ???

Letter Frequency counts - Algorithm Uses two arrays for the counters: upper and lower with 26 elements each, to count the number of upper- and lowercase letters, respectively. 1.declare and instantiate upper and lower with 26 elements of type int 2.prompt user to "Enter a sentence:” and scan input into a String line 3.for each character current in line do the following: –if ( current is between ‘A’ and 'Z') position  current - 'A’ // compute distance from ‘A’ upper [ position ]  upper [ position ] + 1 // increment count for current –if ( current is between ‘a’ and ‘z') position  current – ‘a’ lower [ position ]  upper [ position ] + 1 – (do nothing if current is not a letter) 1.CSC 1051 M.A. Papalaskari, Villanova University

CSC 1051 M.A. Papalaskari, Villanova University //******************************************************************** // LetterCount.java Author: Lewis/Loftus // // Demonstrates the relationship between arrays and strings. //******************************************************************** import java.util.Scanner; public class LetterCount { // // Reads a sentence from the user and counts the number of // uppercase and lowercase letters contained in it. // public static void main (String[] args) { final int NUMCHARS = 26; Scanner scan = new Scanner (System.in); int[] upper = new int[NUMCHARS]; int[] lower = new int[NUMCHARS]; char current; // the current character being processed int other = 0; // counter for non-alphabetics continue

CSC 1051 M.A. Papalaskari, Villanova University continue System.out.println ("Enter a sentence:"); String line = scan.nextLine(); // Count the number of each letter occurence for (int ch = 0; ch < line.length(); ch++) { current = line.charAt(ch); if (current >= 'A' && current <= 'Z') upper[current-'A']++; else if (current >= 'a' && current <= 'z') lower[current-'a']++; else other++; } // Print the results System.out.println (); for (int letter=0; letter < upper.length; letter++) { System.out.print ( (char) (letter + 'A') ); System.out.print (": " + upper[letter]); System.out.print ("\t\t" + (char) (letter + 'a') ); System.out.println (": " + lower[letter]); } System.out.println (); System.out.println ("Non-alphabetic characters: " + other); }

CSC 1051 M.A. Papalaskari, Villanova University continue // Print the results System.out.println (); for (int letter=0; letter < upper.length; letter++) { System.out.print ( (char) (letter + 'A') ); System.out.print (": " + upper[letter]); System.out.print ("\t\t" + (char) (letter + 'a') ); System.out.println (": " + lower[letter]); } System.out.println (); System.out.println ("Non-alphabetic characters: " + other); } Sample Run Enter a sentence: In Casablanca, Humphrey Bogart never says "Play it again, Sam." A: 0a: 10 B: 1b: 1 C: 1c: 1 D: 0d: 0 E: 0e: 3 F: 0f: 0 G: 0g: 2 H: 1h: 1 I: 1i: 2 J: 0j: 0 K: 0k: 0 L: 0l: 2 M: 0m: 2 N: 0n: 4 O: 0o: 1 P: 1p: 1 Q: 0q: 0 continue Sample Run (continued) R: 0r: 3 S: 1s: 3 T: 0t: 2 U: 0u: 1 V: 0v: 1 W: 0w: 0 X: 0x: 0 Y: 0y: 3 Z: 0z: 0 Non-alphabetic characters: 14