28
Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Embed Size (px)

Citation preview

Page 1: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Lesson Two: Everything You Need to KnowChapter 4: Variables

Learning Processing

Daniel Shiffman

Presentation by Donald W. SmithGraphics from text

Page 2: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 2

Lesson Two: Everything You Need to Know

4: VariablesWhat are they?

Declaring and initializing variables

Common uses for variables

Variables you get “for free” in ProcessingAka: Built-in variables

Using random values for variables

5: Conditionals

6: Loops

Page 3: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 3

What is a variable?

Storage Analogies:Different sizes

Like a bucket

Like a locker

Graph Paper/SpreadsheetMany ‘storage’ places, all with unique locations (x,y)

In Excel, E3 could be named ‘Billys Score’

Billy’s score can change!

A B C D E F1

2

3

4

5

Page 4: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 4

What is a variable?

In Algebra:x = y * z

Named with single letters to represent some number

In Programming:We use longer, more descriptive names

Variables refer to ‘memory locations’

Stored in ‘RAM’Random Access Memory

Have a ‘size’How many bytes of memory ‘wide’

Page 5: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 5

Variables must be ‘Declared’

What is a Declaration?Programmer tells the compiler:

Type

Name

;

What is a Type?Each type requires a specific amount of storage

‘Primitive’ types include three main categoriesIntegers – Whole Numbers (positive and negative), no fractions

Floating point – Numbers with fractional parts and exponents

Characters – One letter that you can type

A, B, C, a, b, c, 1, 2, 3, %, &….

Page 6: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 6

All Primitive Types

Integer Types

byte: A very small number (-127 to +128)

short: A small number (-32768 to +32767)

int: A large number (-2,147,483,648 to +2,147,483,647)

long: A huge number

Floating Point Types

float: A number with decimal places, 4 bytes

double: Much more precise, for heavy math, 8 bytes

Other Types

boolean: true or false

char: One symbol in single quotes ‘a’

Page 7: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 7

Primitive Type Storage

Integer Types

byte:

short:

int:

long:

Floating Point Types

float:

double:

Other Types

boolean:

char:

Page 8: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 8

Primitive Type Examples

Integer Types

byte: 123

short: 1984

int: 1784523

long: 234345456789

Floating Point Types

float: 4.0

double: 3.14159, 1.0e+23, 2.4e-20

Other Types

boolean: true

char: ‘a’

Page 9: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Numeric versus ‘Character’ types

How do you decide if you need a numeric or a character type?

If you plan on doing ‘math’ on the variable, then you MUST use a numeric type

What is the letter ‘a’ times the letter ‘c’?

Notice the single quotes around characters

If you plan on using “Strings” (later), they are just words made up of characters.

“Bob” and “Mary” are Strings (of characters)

Notice the double quotes around strings

What is the string “Bob” times the string “Mary”?

Learning Processing: Slides by Don Smith 9

Page 10: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 10

Declaring and Initializing VariablesWhat is Initialization?

Setting an initial value into the contents of the variablePseudocode: Set NumPlayers to 5

Can be done in two ways:During Declaration: On one line

int count = 50; // declare and initialize

After declaration: On two linesint count; // declare the variablecount = 50; // initialize the value

Can also be initialized with a calculation!int max = 100;int min = 10;int count = max – min; // calculation

Page 11: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Pong Variables

What variables would be required to play?Scores?

Paddle locations?

Ball location?

Net location

Screen Size?

Learning Processing: Slides by Don Smith 11

Page 12: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 12

Naming Variables

There are some ‘rules’ and some ‘best practices’Rules

Letters, Digits and underscore ( _ ) are OK to useCannot start with a digit ( 0,1,…9 )Cannot use reserved words

mouseX, int, size..

Best PracticesUse descriptive names

boolean moreToDo;

Use ‘camelHump’ notationStart with lower caseEach new word starts with Upper Case

Page 13: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Declaration and Initialization ExamplesType name (optional initialization) ;

int count = 0; // Declare an int , initialized to 0

char letter = 'a'; // Declare a char, initialized to 'a'

double d = 132.32; // Declare a double, initialized to 132.32

boolean happy = false; // Declare a boolean, initialized to false

float x = 4.0; // Declare a float, initialized to 4.0

float y; // Declare a float (no assignment)

float z = x * y + 15.0; // Declare a float, initialize it to

// x times y plus 15.0.

After declaration Assignments:count = 1;

letter = ‘b’;

happy = true;

y = x + 5.2; // Assign the value of x plus 5.2

Learning Processing: Slides by Don Smith 13

Page 14: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Declaration and Initialization IssuesYou can only initialize a variable to a value

of the same, or compatible type:Which initializations are compatible?int count = ‘a’;

char letter = 0;

double deposit = “Fred”;

boolean happy = 1;

float feet = 6;

int inches = feet * 12;

long giant = feet * 3.0;

Learning Processing: Slides by Don Smith 14

Page 15: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Declaration and Initialization IssuesYou can only initialize a variable to a value

of the same, or compatible type.Which initializations are compatible?int count = ‘a’;

char letter = 0;

double deposit = “Fred”;

boolean happy = 1;

float feet = 6;

int inches = feet * 12;

long giant = feet * 3.0;

Learning Processing: Slides by Don Smith 15

Page 16: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Where to Declare VariablesRemember that your code is in ‘blocks’Variables can go inside or outside these blocksFor now, we will put them ‘outside’ (before) blocks

Page 17: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Varying Variables: Example 4.3Remember that processing calls draw()in a loopIf you want the variable to change every time:

Declare and initialize it outside of draw()!Change it inside draw()!

Moves as circleX increases

Page 18: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 18

What happens in example 4.3?circleX Is initialized to 0Used first time draw()is called

ellipse(circleX, circleY, 50,50);Then circleX = circleX + 1;Next time draw()is called, circleX is 1ellipse(circleX, circleY, 50,50);Then circleX = circleX + 1;Next time draw()is called, circleX is 2ellipse(circleX, circleY, 50,50);Then circleX = circleX + 1;

.. Until circleX is over 200, and the circle just moves off the right side of the screen, never to be seen again!It is often useful to make a ‘table’ of all of the variables that are being changed every time through a ‘loop’

Call to draw()

circleX

1 0

2 1

3 2

4 3

5 4

200 199

Page 19: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Using Many VariablesMake things more interesting using more variables!

Declare and initialize them outside of draw()!Change them inside draw()!

Call to draw()

circleX circleY circleW circleH

1 0 0 50 100

2 0.5 0.5 50.5 100.5

3 1.0 1.0 51 101

10 4.5 4.5 54.5 104.5

30 14.5 14.5 64.5 114.5

100 49.5 49.5 99.5 149.5

200 99.5 99.5 149.5 199.5

Page 20: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 20

Operators on numerical variables

• Addition: +• Increment: x = x+1, ++x

• Subtraction: -• Decrement: x = x-, --x

• Multiplication: *• Division: /

Pay attention to integer and float divisions• Remainder: %

5%3 2, 2%12 2, 12%3 0• Assignment: =

Page 21: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 21

Precedence of operators

• Parentheses have the highest precedence• *, / , % +, - =• If not sure, use parentheses.

Page 22: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 22

Examples

• Convert temperatures in F and C• Extract the two digits from a two-digit

number.

Page 23: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 23

System VariablesProcessing provides many ‘built-in’ variables:

These are not for you to play with, but may change!

mouseX , mouseY, pmouseX and pmouseY

width: Width (in pixels) of sketch window

height: Height (in pixels) of sketch window

frameCount: Number of frames processed

frameRate: Rate (per sec.) that frames are processed

screen.height, screen.width: Entire screen

key: Most recent key pressed on keyboard

keyCode: Numeric code for which key pressed

mousePressed: True or false (pressed or not?)

mouseButton: Which button (left, right, center)

Page 24: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 24

Random: Variety is the spice of lifeProcessing (and all programming languages)

provide a way to get a random value when your program runs.

random() is a ‘function’ that returns a float

You can assign this number to a variable and use it!

Some examples:

Page 25: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

What is that (int)and (1,100)stuff?

(int)Since random()returns a floating point number and w is an int, we need to change the type from float to int.

This is called ‘casting’

random(1,100) ;(1,100) are ‘parameters’ which tell the random function the range of numbers to return

w will be between 1 and 99 (not quite 100)

Learning Processing: Slides by Don Smith 25

Page 26: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Make Zoog Move!Use variables to make Zoog move and change!

1) Make Zoog rise from below the screenNeed variables for the Zoog’s X and Y locations

Note: Locations of ALL of Zoog’s parts need to use themIf left eye is left 30 and down 50 from the center of the head:

ellipse( zoogX – 30, zoogY + 50, 20, 30);

2) Change his eye color randomly as he movesNeed variables for Zoog’s eye color (R,G and B)

Learning Processing: Slides by Don Smith 26

Page 27: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Lab06: Moving Zoog

Use variables and random() to make a Zoog move from upper left to lower right of the screen.

Starting point is provided (Example 4.8)Plan!

Declare variables

Use variables

Use Random

Learning Processing: Slides by Don Smith 27

Page 28: Lesson Two: Everything You Need to Know Chapter 4: Variables Learning Processing Daniel Shiffman Presentation by Donald W. Smith Graphics from text

Learning Processing: Slides by Don Smith 28

Summary

Variables have names and typesThere are rules and best practices for naming variables

You must declare your variablesDetermines the ‘type’, size of storage, and maximum values

You can initialize variables in different waysVariables have many uses to programmersprocessing provides ‘system’ (built-in) variablesYou can use random numbers to make your program run differently every time