Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lesson Two: Everything You Need to Know

Similar presentations


Presentation on theme: "Lesson Two: Everything You Need to Know"— Presentation transcript:

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

2 Lesson Two: Everything You Need to Know
4: Variables What are they? Declaring and initializing variables Common uses for variables Variables you get “for free” in Processing Aka: Built-in variables Using random values for variables 5: Conditionals 6: Loops Learning Processing: Slides by Don Smith

3 What is a variable? Storage Analogies: Different sizes
Like a bucket Like a locker Graph Paper/Spreadsheet Many ‘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 F 1 2 3 4 5 Learning Processing: Slides by Don Smith

4 What is a variable? In Algebra: In Programming: 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’ 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 categories Integers – 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, %, &…. Learning Processing: Slides by Don Smith

6 All Primitive Types Integer Types
byte: A very small number (-127 to +128) short: A small number ( to ) 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’ 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: Learning Processing: Slides by Don Smith

8 Primitive Type Examples
Integer Types byte: short: int: long: Floating Point Types float: 4.0 double: , 1.0e+23, 2.4e-20 Other Types boolean: true char: ‘a’ Learning Processing: Slides by Don Smith

9 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

10 Declaring and Initializing Variables
What is Initialization? Setting an initial value into the contents of the variable Pseudocode: 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 lines int count; // declare the variable count = 50; // initialize the value Can also be initialized with a calculation! int max = 100; int min = 10; int count = max – min; // calculation Learning Processing: Slides by Don Smith

11 Pong Variables What variables would be required to play? Scores?
Paddle locations? Ball location? Net location Screen Size? Learning Processing: Slides by Don Smith

12 Naming Variables There are some ‘rules’ and some ‘best practices’
Letters, Digits and underscore ( _ ) are OK to use Cannot start with a digit ( 0,1,…9 ) Cannot use reserved words mouseX, int, size.. Best Practices Use descriptive names boolean moreToDo; Use ‘camelHump’ notation Start with lower case Each new word starts with Upper Case Learning Processing: Slides by Don Smith

13 Declaration and Initialization Examples
Type name (optional initialization) ; int count = 0; // Declare an int , initialized to 0 char letter = 'a'; // Declare a char, initialized to 'a' double d = ; // Declare a double, initialized to 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 ; // 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

14 Declaration and Initialization Issues
You 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 Declaration and Initialization Issues
You 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

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

17 Varying Variables: Example 4.3
Remember that processing calls draw()in a loop If you want the variable to change every time: Declare and initialize it outside of draw()! Change it inside draw()! Moves as circleX increases 

18 What happens in example 4.3?
circleX Is initialized to 0 Used first time draw()is called ellipse(circleX, circleY, 50,50); Then circleX = circleX + 1; Next time draw()is called, circleX is 1 Next time draw()is called, circleX is 2 .. 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 2 3 4 5 200 199 Learning Processing: Slides by Don Smith

19 Using Many Variables Make 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 50 100 2 0.5 50.5 100.5 3 1.0 51 101 10 4.5 54.5 104.5 30 14.5 64.5 114.5 49.5 99.5 149.5 200 199.5

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: = Learning Processing: Slides by Don Smith

21 Precedence of operators
Parentheses have the highest precedence *, / , %  +, -  = If not sure, use parentheses. Learning Processing: Slides by Don Smith

22 Examples Convert temperatures in F and C
Extract the two digits from a two-digit number. Learning Processing: Slides by Don Smith

23 System Variables Processing 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) Learning Processing: Slides by Don Smith

24 Random: Variety is the spice of life
Processing (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: Learning Processing: Slides by Don Smith

25 What is that (int)and (1,100)stuff?
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

26 Make Zoog Move! Use variables to make Zoog move and change!
1) Make Zoog rise from below the screen Need variables for the Zoog’s X and Y locations Note: Locations of ALL of Zoog’s parts need to use them If 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 moves Need variables for Zoog’s eye color (R,G and B) Learning Processing: Slides by Don Smith

27 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

28 Summary Variables have names and types You must declare your variables
There are rules and best practices for naming variables You must declare your variables Determines the ‘type’, size of storage, and maximum values You can initialize variables in different ways Variables have many uses to programmers processing provides ‘system’ (built-in) variables You can use random numbers to make your program run differently every time Learning Processing: Slides by Don Smith


Download ppt "Lesson Two: Everything You Need to Know"

Similar presentations


Ads by Google