Presentation is loading. Please wait.

Presentation is loading. Please wait.

Georgia Institute of Technology

Similar presentations


Presentation on theme: "Georgia Institute of Technology"— Presentation transcript:

1 Georgia Institute of Technology
Conditionals – part 2 Georgia Institute of Technology

2 Georgia Institute of Technology
Learning Goals Understand at a conceptual and practical level How to use conditionals with two possibilities How to do simple edge detection How to use ‘and’, ‘or’, ‘exclusive or’ and ‘not’ in a conditional What is De Morgan’s Law? Georgia Institute of Technology

3 Georgia Institute of Technology
Truth Table Conditional Operand 1 Operand 2 Result And true false Or Exclusive Or An and conditional is only true when both operands are true. An or conditional is true as long as either operand is true. An exclusive or conditional is true only if one, but not both, operands are true. Georgia Institute of Technology

4 Georgia Institute of Technology
Conditional Exercise When are the following true? When are they false? You can go out if your room is clean and you did your homework You can go out if your room is clean or you did your homework You can go out if either your room is clean or you did your homework but not if both of these is true (exclusive OR) Georgia Institute of Technology

5 Conditional Operators
We can check if several things are true - And Using && (evaluation stops if the first item is false) Using & (to always evaluate both operands) We can check if at least one of several things are true - Or Using || (evaluation stops if the first item is true) Using | (to always evaluate both operands) We can check if only one and only one of the things is true – Exclusive Or Using ^ The conditional operators && and || are ‘short circuit’ operators. They stop evaluation early when the result is obvious from evaluating the first operand. See for Sun’s tutorial on conditional operators. Georgia Institute of Technology

6 Georgia Institute of Technology
Conditional Exercise What is the result from the following code? int x = 3; int y = 4; if (x < 4 && y > 5) System.out.println(“and is true”); else System.out.println(“and is false”); Georgia Institute of Technology

7 Georgia Institute of Technology
Conditional Exercise What is the result from the following code? int x = 3; int y = 6; if (x < 4 && y > 5) System.out.println(“and is true”); else System.out.println(“and is false”); Georgia Institute of Technology

8 Georgia Institute of Technology
Conditional Exercise What is the result from the following code? int x = 4; int y = 4; if (x < 4 || y > 5) System.out.println(“or is true”); else System.out.println(“or is false”); Georgia Institute of Technology

9 Georgia Institute of Technology
Conditional Exercise What is the result from the following code? int x = 4; int y = 4; if (x <= 4 || y > 5) System.out.println(“or is true”); else System.out.println(“or is false”); Georgia Institute of Technology

10 Using && (And) and || (Or)
Check that a value is in a range Is some value between 0 and 255 (inclusive) for valid pixel color values 0 <= x <= is written as 0 <= x && x <= 255 // in Java or x >= 0 && x <= 255 // is the same Check if at least one of several things is true Is this black or white? True if either it is black or it is white Georgia Institute of Technology

11 Not Conditional Operator
Use ! To change the value to the opposite !true = false !false = true A not conditional operator applied to a complex conditional changes it !(op1 && op2) = !op1 || !op2 !(op1 || op2) = !op1 && !op2 This is known as De Morgan’s Law See for information on DeMorgan’s Law Georgia Institute of Technology

12 De Morgan’s Law Exercise
What is equivalent to the following? !(x > 4 && x < 8) !(y > 2 || y < 10) !(x == 2 && y == 4) !(y != 2 && x != 3) !(x == 3 || x == 5) !(y == 2 || y < 5) Georgia Institute of Technology

13 Georgia Institute of Technology

14 Exercise: Edge Detection
Loop through all the pixels in the picture Calculate the average color for the current pixel and the pixel at the same x but y+1. Get the distance between the two averages If the absolute value of the distance is greater than some value turn the current pixel black Otherwise turn the current pixel white The image is from foal.jpg in mediasources after doing edge detection with a limit of 10. Georgia Institute of Technology

15 Edge Detection Algorithm
To find areas of high contrast Try to loop from row = 0 to row = height – 1 Loop from x = 0 to x = width Get the pixel at the x and y (top pixel) Get the pixel at the x and (y + 1) bottom pixel Get the average of the top pixel color values Get the average of the bottom pixel color values If the absolute value of the difference between the averages is over a passed limit Turn the pixel black Otherwise turn the pixel white Georgia Institute of Technology

16 Use if and else for two possibilities
Sometimes you want to do one thing if the expression is true and a different thing if it is false int x = 200; if (x < 128) System.out.println(“<128”); else System.out.println(“>=128”); false if (expression) else true Statement or block Statement or block statement Georgia Institute of Technology

17 Georgia Institute of Technology
Exercise Have students walk through a flowchart of a loop with a conditional. dice < 6 false Say your name Set count to 0 true Clap your hands count times Jump count times count < 3 false true count = count + 1 Throw the dice Say, "all done! And the value of count" Georgia Institute of Technology

18 Edge Detection Exercise
Write a method edgeDetection that takes an input limit And turns all pixels black where the absolute value of the difference between that pixel and the below pixel is greater than the passed limit And turns all pixels white where the absolute value of the difference between that pixel and the below pixel is less than or equal the passed limit Pixel has a getAverage() method that returns the average of the three colors at the pixel Georgia Institute of Technology

19 Testing Edge Detection
String file = FileChooser.getMediaPath(“butterfly1.jpg”); Picture p = new Picture(file); p.explore(); p.edgeDetection(10); Georgia Institute of Technology

20 Georgia Institute of Technology
Challenge Create another method for simple edge detection This time compare the current pixel with the one to the right (x+1) How do you need to change the nested loop? Do you get a different result? Georgia Institute of Technology

21 Georgia Institute of Technology
Summary Use if and else if you have two possibilities to deal with if (test) { // statements to execute when the test is true } else // statements to execute when the test is false Complex conditionals Use ‘and’ to test for more than one thing being true Use ‘or’ to test if at least one thing is true Use ‘exclusive or’ to test that one and only one thing is true Use ‘not’ to change the result from true to false and false to true Georgia Institute of Technology


Download ppt "Georgia Institute of Technology"

Similar presentations


Ads by Google