week 7 friday what did we talk about last time array
play

Week 7 - Friday What did we talk about last time? Array examples - PowerPoint PPT Presentation

Week 7 - Friday What did we talk about last time? Array examples We can represent a deck of cards as an array of 52 items One easy way is to make each item a String giving the name of the card We can extend the lab with cards


  1. Week 7 - Friday

  2.  What did we talk about last time?  Array examples

  3.  We can represent a deck of cards as an array of 52 items  One easy way is to make each item a String giving the name of the card  We can extend the lab with cards and store each of these names in an array

  4.  Swapping the values of two variables is a fundamental operation in programming  It is going to become more important in arrays because now the order of variables has become important  The simplest way to swap two variables involves using a third variable as a temporary location

  5.  Here is an example of swapping two String s indexed i and j in an array of String s called array int i = in.nextInt(); int j = in.nextInt(); String temp = array[i]; array[i] = array[j]; array[j] = temp;

  6.  Using the swap code, we can do a random shuffling of a deck  To do so, we go through each element of the array, and randomly swap it with any of the later elements for(int i = 0; i < deck.length; ++i) { int exchange = i + (int)(Math.random() * (deck.length - i)); temp = deck[i]; deck[i] = deck[exchange]; deck[exchange] = temp; }

  7.  Searching through an array is an important operation  The simplest way to do so is just linear search: check every element in the array  Searching and sorting are really key to all kinds of problems  We'll cover both topics in depth in a few weeks

  8.  StdDraw is a library of Java code developed by Robert Sedgewick and Kevin Wayne  StdDraw allows you to draw output on the screen easily  You can draw points, lines, and polygons in various colors  You can clear and resize the drawing area and even save the results  StdDraw is not standard Java that everyone uses, but it's a nice tool for graphics

  9.  The simplest things you can draw with StdDraw are lines and points  The first thing you should be aware of is that the canvas is drawn like Quadrant I of a Cartesian plane (0,1) (1,1) (0,0) (1,0)

  10.  The following methods can be used to draw lines and points Method Use void line(double x0, double y0, Draw a line from (x0,y0) to double x1, double y1) (x1,y1) void point(double x, double y) Draw a point at (x,y)

  11.  Let's draw a box then divide it into two halves, like so:

  12.  There are built in commands for drawing:  Circles  Squares  Arbitrary polygons  Filled versions of each one of these  We won't bother with the arbitrary polygons  It is also possible to set the color

  13.  Here are some methods for drawing circles and squares and setting the color for doing so: Method Use void circle(double x, double y, double r) Draw a circle centered at (x,y) with radius r void filledCircle(double x, double y, Draw a filled circle centered at (x,y) double r) with radius r void square(double x, double y, double r) Draw a square centered at (x,y) with edges 2r void filledSquare(double x, double y, Draw a filled square centered at double r) (x,y) with edges 2r void setPenColor(Color c) Start drawing with color c

  14.  Eventually you will be able to define your own colors  For now you are limited to 13 presets BLACK BLUE CYAN DARK_GRAY GRAY GREEN LIGHT_GRAY MAGENTA ORANGE PINK RED WHITE YELLOW  For example, to make something magenta, you would use the value StdDraw.MAGENTA

  15.  Let's write some code for making 100 circles at random locations with random sizes and random colors  Location is easy  Size is easy, we just decide on the range of sizes we want and do some math  Color is more painful  We need a switch statement with 13 choices

  16.  We just want to make a pattern of black and white squares on the screen  Hint: We need two loops

  17.  A number of methods are given to give us more control over the display Method Use void setXscale(double x0, double x1) Set the x scale void setYscale(double y0, double y1) Set the y scale void setPenRadius(double r) Set the pen radius void setCanvasSize(int w, int h) Set canvas size void clear() Clear canvas to white void clear(Color c) Clear canvas to color c void pause(int delay) Delay for delay ms

  18.  As you have seen, the default scale of the canvas is in the range [0,1] for both x and y  We can use the setXscale() method to set the minimum and maximum x values  We can use the setYscale() method to set the minimum and maximum y values  Useful for plotting functions

  19.  Note that changing the scale doesn't change the size of the window, just what is shown in it  If you want to change the size of the window, use the setCanvasSize() method to set the width and the height of the canvas in terms of screen pixels

  20.  The pause() method lets you specify a delay in milliseconds before things are drawn on the screen  You can use it to slow down or speed up animations  To use it right, you need to first call StdDraw.enableDoubleBuffering()  Then, whenever you want to actually show all the drawing that's been done, you call StdDraw.show()  Doing so draws everything off-screen and then shows it all at once, which is both more efficient and more attractive for animations

  21.  Finish StdDraw examples  Static methods

  22.  Read Chapter 8 of the textbook  Keep working on Project 3  It's harder than the previous two!

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend