CS 200 Arrays, Loops and Methods

Slides:



Advertisements
Similar presentations
Liang, Introduction to Java Programming, Sixth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 6 Arrays.
Advertisements

15 Sorting1June Sorting CE : Fundamental Programming Techniques.
©2004 Brooks/Cole Chapter 8 Arrays. Figures ©2004 Brooks/Cole CS 119: Intro to JavaFall 2005 Sometimes we have lists of data values that all need to be.
Java Unit 9: Arrays Declaring and Processing Arrays.
CS1101: Programming Methodology Aaron Tan.
1 Lecture # 4. * An array is a group of contiguous or related data items that share a common name. * Each value is stored at a specific position * Position.
Arrays Module 6. Objectives Nature and purpose of an array Using arrays in Java programs Methods with array parameter Methods that return an array Array.
2D-Arrays Quratulain. Learning Objectives Two-dimensional arrays Declaration Initialization Applications.
Lecture 7 Introduction to Programming in C Arne Kutzner Hanyang University / Seoul Korea.
Types in Java 8 Primitive Types –byte, short, int, long –float, double –boolean –Char Also some Object types: e.g. “String” But only single items. What.
Chapter 8: Arrays Introduction to arrays Declaring arrays Initializing arrays Examples using arrays Relationship with pointers Array passing to a function.
1 CS 177 Week 12 Recitation Slides Running Time and Performance.
CS1020 Data Structures and Algorithms I Lecture Note #2 Arrays.
Arrays Chapter 7. MIS Object Oriented Systems Arrays UTD, SOM 2 Objectives Nature and purpose of an array Using arrays in Java programs Methods.
Array Size Arrays use static allocation of space. That is, when the array is created, we must specify the size of the array, e.g., int[] grades = new int[100];
VISUAL C++ PROGRAMMING: CONCEPTS AND PROJECTS Chapter 7A Arrays (Concepts)
Spring 2008 Mark Fontenot CSE Honors Principles of Computer Science I Note Set 10.
Arrays Chapter 7.
Values vs. References Lecture 13.
Computer Programming BCT 1113
Fifth Lecture Arrays and Lists
Alg2_1c Extra Material for Alg2_1
Java Arrays. Array Object An array :a container object holds a fixed number of values of a single type. The length of an array is established when the.
Building Java Programs
CS Week 14 Jim Williams, PhD.
CS 200 Arrays, Loops and Methods
Chapter 6 Arrays.
CS Week 13 Jim Williams, PhD.
CS 302 Week 10 Jim Williams.
CSC 253 Lecture 8.
CS Week 8 Jim Williams, PhD.
CS Week 6 Jim Williams, PhD.
CS Week 7 Jim Williams, PhD.
Pass by Reference, const, readonly, struct
CSC 253 Lecture 8.
CS 200 More Classes Jim Williams, PhD.
CS 302 Week 8 Jim Williams, PhD.
CS Week 9 Jim Williams, PhD.
Week 6 CS 302 Jim Williams, PhD.
CS 200 Objects and ArrayList
Review for Final Exam.
Building Java Programs
Introduction To Programming Information Technology , 1’st Semester
CS 302 Week 9 Jim Williams.
Multidimensional Arrays
CS 200 Loops Jim Williams, PhD.
MSIS 655 Advanced Business Applications Programming
CSCI 3328 Object Oriented Programming in C# Chapter 7: Arrays
Data Structures (CS212D) Week # 2: Arrays.
CS 200 Primitives and Expressions
CS 200 Arrays Jim Williams, PhD.
CS Week 4 Jim Williams, PhD.
CS 200 Primitives and Expressions
CS 200 Additional Topics and Review
CS2011 Introduction to Programming I Multidimensional Arrays
Review for Final Exam.
Chapter 6 Arrays.
CS 200 Objects and ArrayList
Arrays Arrays A few types Structures of related data items
Peer Instruction 4 Control Loops.
CS 200 More Classes Jim Williams, PhD.
Building Java Programs
Building Java Programs
CS 200 Creating Classes Jim Williams, PhD.
Building Java Programs
CS Week 3 Jim Williams, PhD.
Week 7 CS 302 Jim Williams.
CS 200 Objects and ArrayList
CS302 Week 6 Jim Williams.
Week 7 - Monday CS 121.
Presentation transcript:

CS 200 Arrays, Loops and Methods Jim Williams, PhD

This Week Team Lab: Arrays and Hangman BP1 Milestone 1 due Thursday drawing diagrams (bring paper and pencil) BP1 Milestone 1 due Thursday Lecture: More Arrays and Methods

Key Concepts Memory Access Drawing a picture of memory for an array Looping through multidimensional arrays appropriate use of .length Unit Testing Common Array algorithms

Question 1 minute to answer I want to keep the results to analyze later

What will print out? public static void methodA(int [] list) { } public static void main(String []args) { int [] list = new int[]{1,2,3}; methodA( list); System.out.println( list[0]); 1 9 list[0] try it.

Memory Access Local variables and parameters (stored on stack) are only visible within the method itself. to share value, return value from method, caller captures and uses Instances/objects (stored on heap) are available anywhere using the reference. Follow the reference from inside or outside the method to shared memory area (heap).

Sorting Demo 9, 6, 4, 5, 8, 2 import java.util.Arrays; public class BubbleSort { public static void swapInts(int a, int b) { int temp = a; a = b; b = temp; } public static void main(String[] args) { int x = 1; int y = 2; System.out.println("x = " + x + ", y = " + y); swapInts(x, y); int[] list = new int[]{10, 5, 3, 7, 9}; printArray(list); swapInts(list[0], list[4]); swapElements(list, 0, 4); bubbleSort(list); addElementAtEnd(list, 12); list = addElementAtEnd(list, 4); public static void printArray( int [] arr) { System.out.println( Arrays.toString( arr)); public static void swapElements(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; public static void bubbleSort(int[] arr) { for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr.length -1; j++) { if (arr[j] > arr[j+1]) { swapElements(arr, j, j+1); public static int[] addElementAtEnd( int[] arr, int elem) { int newLength = arr.length + 1; int[] newArray = new int[newLength]; newArray[i] = arr[i]; newArray[newArray.length - 1] = elem; return newArray;

4 Questions First 3, 1 minute each Last 1, 2 minutes (sorting)

What will print out? public static void methodA(int [] list) { list = new int[3]; list[0] = 9; } public static void main(String []args) { int [] list = new int[]{1,2,3}; methodA( list); System.out.println( list[0]); 1 9 list[0] try it. In method, array reference changed prior to accessing array contents. Changes to array contents are only visible within the method since the new array is not returned.

What will print out? public static void methodA(int [] list) { list = new int[3]; } public static void main(String []args) { int [] list = new int[]{1,2,3}; methodA( list); System.out.println( list[0]); 1 9 list[0] try it. In method, array reference followed and contents changed, prior to changing array reference. Change in array visible outside the method

What will print out? public static void methodA(int [] list) { } public static void main(String []args) { int [] list = new int[]{1,2,3}; methodA( list); System.out.println( list[0]); 1 9 list[0] try it. In method, array reference followed and contents changed. Change visible anywhere reference to array is accessed since array contents are on the heap.

Add Element At Front of Array TopHat Reorder the lines

Draw a picture int [] items = new int []{5,6,7};

What does this do? int [] list = new int[4]; for ( int i = 0; i <= list.length; i++) { list[i] = i * 2; } set each element to i * 2 0, 2, 4, 6 compiler error runtime error try it.

Is it possible for methodC to change the contents of the array? public static void main(String []args) { char [] items = new char[]{'c','b','a'}; methodC( items); }

Where in memory is variable z? public static void main(String []args) { int r = 3; int c = 4; int [][] z = new int[r][c]; } stack heap it is local Error A and C are both correct. Local variables are those declared within methods and are stored in the stack.

Does createList return a new array? public static int [] createList(int size) { return new int[size]; } public static void main(String[]args) { int [] list = createList( 10); list[3] = 10; yes no reference lost Error try it.

Can main see the changed value within list? public static void changeList(int [] list) { if ( list.length > 0) { list[0] = 10; } public static void main(String []args) { int [] z = new int[5]; changeList( z); System.out.println( z[0]); yes no reference lost Error try it.

Can you call this method to get the new array? public static void createList(int [] list) { list = new int[10]; } yes no reference lost Error try it.

What prints out? num:10 list:[1, 2, 11] num:11 list:[1, 2, 3] static void change( int num, int [] list) { num = 11; list[2] = num; } public static void main( String [] args) { int [] list = {1,2,3}; int num = 10; change( num, list); System.out.println("num:" + num + "\nlist:" + Arrays.toString( list)); num:10 list:[1, 2, 11] num:11 list:[1, 2, 3] list:[1, 2, 10] try it.

What prints out? num:10 list:[1, 2, 11] list:[4,5,10] list:[1, 2, 3] static void change( int num, int [] list) { list = new int[]{4,5,6}; list[2] = num; } public static void main( String [] args) { int [] list = new int[] {1,2,3}; int num = 10; change( num, list); System.out.println("num:" + num + "\nlist:" + Arrays.toString( list)); num:10 list:[1, 2, 11] list:[4,5,10] list:[1, 2, 3] list:[1, 2, 10] try it.

BP1 Notes Process: 3 milestones then further testing Concepts: Use only material from Chapters 1-8 Teams: Once you submit as a team for Milestone 1 then you are a team for the entire project. If your team is not working you must dismantle your team by notifying an instructor by email by 11:59pm on Milestone 1 (tonight). Then you work alone for the project.

Draw a Picture int [][] board; board = new int[3][2]; How do you find the number of rows? How do you find the number of columns?

Draw a Picture int [][] board; board = new int[][]{{1,2},{4,5,6}};

Memory Access Local variables and parameters (stored on stack) are only visible within the method itself. to share value, return value from method, caller captures and uses Instances/objects (stored on heap) are available anywhere using the reference. Follow the reference from inside or outside the method to shared memory area (heap).

Can you call this method to get the new array outside the method? static void createBoard(int [][] board) { board = new int[3][3]; } yes no sometimes Error try it.

Can you call this method to get the new array? static int [][] createBoard(int r, int c) { return new int[r][c]; } yes no reference lost Error try it.

What will print out? public static void changeList(int [][] list) { list[0] = new int[3]; list[0][1] = 9; } public static void main(String []args) { int [][] z = new int[5][5]; changeList( z); System.out.println( z[0][1]); 3 5 9 try it.

Will this initialize the array to all 1's? yes no don't know Error public static void main(String []args) { int [][] board = {{2,3},{4,3,2}}; initBoard( board); } static void initBoard(int[][] board) { for ( int i = 0; i < 2; i++) for ( int j = 0; j < 3; j++) board[ i ][ j ] = 1; try it.

Will this initialize the array to all 1's? yes no don't know Error public static void main(String []args) { int [][] board = {{2,3},{4,3,2}}; initBoard( board); } static void initBoard(int[][] b) { for ( int i = 0; i < b[i].length; i++) for ( int j = 0; j < b[j].length; j++) b[ i ][ j ] = 1; try it.

Will this initialize the array to all 1's? yes no don't know Error public static void main(String []args) { int [][] board = {{2,3},{4,3,2}}; initBoard( board); } static void initBoard(int[][] b) { for ( int i = 0; i < b.length; i++) for ( int j = 0; j < b[ i ].length; j++) b[ i ][ j ] = 1; try it.

What will print out? public static void methodA(int [] list) { list = new int[3]; list[0] = 9; } public static void main(String []args) { int [] list = new int[]{1,2,3}; methodA( list); System.out.println( list[0]); 1 9 list[0] try it. In method, array reference changed prior to accessing array contents. Changes to array contents are only visible within the method since the new array is not returned.

What will print out? public static void methodA(int [] list) { list = new int[3]; } public static void main(String []args) { int [] list = new int[]{1,2,3}; methodA( list); System.out.println( list[0]); 1 9 list[0] try it. In method, array reference followed and contents changed, prior to changing array reference. Change in array visible outside the method

What will print out? public static void methodA(int [] list) { } public static void main(String []args) { int [] list = new int[]{1,2,3}; methodA( list); System.out.println( list[0]); 1 9 list[0] try it. In method, array reference followed and contents changed. Change visible anywhere reference to array is accessed since array contents are on the heap.

Unit Testing (method) Developer Writes method to meet specification Tester Verifies that method meets specification

Specification /** * This method returns the number of 9s in the table. * @param table a 2 dimensional array of int * @return the number of 9s in table */ public static int num9s(int [][]table) { return -1; }

Common Algorithms for Arrays Searching Sorting Palindrome?