Download presentation
Presentation is loading. Please wait.
Published byAshley Manning Modified over 8 years ago
1
1 Note: Original slides provided by www.apComputerScience.com and modified for Mr. Smith’s AP Computer Science A classwww.apComputerScience.com
2
2 The robot executes an instruction by performing the instruction’s associated action or actions The robot executes a program by performing a sequence of instructions given to it Instructions are executed one at a time in the order that they are listed
3
3 Basic tools with which all problems are solved. An analogy is when a carpenter performs primitive tasks such as hammering, leveling, measuring, sawing, etc. He can accomplish all his carpentry tasks (some which are very complicated) using these basic tasks. In Java, each of these primitive instructions is called a method. A standard robot has these five methods: –move() –turnLeft() –putBeeper() –pickBeeper() –turnOff()
4
4 object.method1(); object.method2(); -A method acts on the object. It is the message sent to the object. -Objects are typically nouns (e.g., karel). They either do things or remember things. -Methods are typically verbs (e.g., move) and represent behavior Example: karel.move() object method
5
5 Moves forward one block in the direction that it is facing (it will not move sideways) Continues to face the same direction “Error Shutoff” if trying to move into a wall or boundary (Ouch! Look first!)
6
6 Stays at same corner (does not alter location) Turns 90 degrees to the left Cannot cause an error shutoff Note: There is no turnRight() instruction
7
7 Picks up a single beeper on the current corner and places it in beeper bag It only picks up one beeper, even if there are multiple beepers on the corner If attempted on a beeper-less corner, it causes an error shutoff
8
8 Takes beeper from beeper bag and puts it down on current corner It only puts down one beeper, even if there are multiple beepers in beeper bag If attempted with an empty beeper bag, it causes an error shutoff
9
9 Robot turns off and is incapable of executing another instruction until restarted This is the last instruction executed on a robot object After turnOff() is executed, all other instructions are ignored
10
10 UrRobot class (the “Model-T” Robot) public class UrRobot { void move() {…} void turnOff() {…} void turnLeft() {…} void pickBeeper() {…} void putBeeper() {…} } “primitive” You can’t/don’t need to define this class – it is in a library for you to use
11
11 A class is not a robot. It is a description of robots of the same kind. The simple model of the robot described above is the UrRobot class By convention classes begin with a capital letter A class is like a production line in a factory that makes the same robots
12
12 import kareltherobot.*; public class KarelSample implements Directions { public static void main(String args[ ]) { UrRobot karel = new UrRobot(2, 1, East, 1); karel.move(); karel.turnLeft(); karel.putBeeper(); karel.move(); karel.turnOff(); } static { World.setVisible(true); World.showSpeedControl(true); } Names for this type of program are: Client program, Driver program, Tester program
13
13
14
14 Classes begin with capital letters (i.e. UrRobot). Methods, objects, and variable names begin with lower case (camelCase) Use indentation to line up statements Brackets {} should be on a line by themselves Use comments // to identify what the code is supposed to do (very useful)
15
15 A Definition of Symbol: A symbol is a written word or sequence of characters used to represent something else. Special symbols: ; {}. (they mean something special in Java) Names are symbols: karel, UrRobot, putBeeper. UrRobot is not a robot itself, but represents a type of robot. Reserved words are symbols: class, void, new (they have a built-in purpose) Note: Symbols must match in case when used in Java programs (i.e. karel is not the same as Karel and putBeeper is not the same as PutBeeper)
16
16 (Errors are referred to as bugs) lexical error (compiler catches) –word not in its dictionary (i.e. you type MOVE() instead of move() ) syntax error (compiler catches) –incorrect grammar, punctuation, incorrect location of a statement (i.e. leaving out a parenthesis or using a colon instead of semi-colon) execution error (run-time environment catches) –can’t perform what you ask (i.e. error shutoff if performing move() when a wall is in the way) intent error (logic - guess who catches this one!) –program terminates successfully – junk output, however (i.e. moving robot to the wrong corner) Which is the hardest type of error to correct? Why?
17
17 public Class SampleTest implements Directions { public static void main(String args[] { UrRobot karel = New UrRobot(2, 1, East, 0). karel.move(); karel.turnLeft() getBeeper(); karel.Move(); karel.turnOff; karel.move(); } IDENTIFY THE BUGS (Clue: There are at least 9 errors)
18
18 public class SampleTest implements Directions 1) should be class instead of Class { public static void main(String args[]) 2) needs parentheses { UrRobot karel = new UrRobot(2, 1, East, 0);. 3) should be new instead of New 4) use semi-colon instead of period karel.move(); karel.turnLeft(); 5) needs a semi-colon on end karel.pickBeeper(); 6) needs an object and is named pickBeeper karel.move(); 7) Move is not a method karel.turnOff(); 8) needs () (i.e. turnOff() ); karel.move(); 9) can’t perform move after turnOff } } IDENTIFY THE BUGS SOLUTION public Class SampleTest implements Directions { public static void main(String args[] { UrRobot karel = New UrRobot(2, 1, East, 0). karel.move(); karel.turnLeft() getBeeper(); karel.Move(); karel.turnOff; karel.move(); } }
19
19 Now You Try Writing a Short Program to Draw the Letter H Robot starts at origin (1,1), facing north Robot draws the letter H The bottom of the left bar of the H starts at (2,2) The H is 5 beepers high The middle bar should be 2 beepers between the bars Robot should return to origin, face north, and turn itself off when finished (leaving the world in its original state of being Take a little time to think about the best approach before jumping into the code. It may help to sketch the robot’s path on a sheet of paper.
20
20 import kareltherobot.*; public class DrawH implements Directions { public static void main(String args[]) { UrRobot karel = new UrRobot(1, 1, North, infinity); // …….insert your code here to draw the letter H } static { World.setVisible(true); World.showSpeedControl(true); } DrawH program Starting Point Save DrawH.java from my Daily Lesson Plan page (or Homework page) into your kareltherobot package in your Karel project. Rename it to include your full name (i.e. DrawH_JohnDoe)
21
21 Beginning SituationEnding Situation
22
22 Let’s go into eclipse and begin writing DrawH. We’ll cover these items: –Your workspace/project/package structure –Creating (Copying) the DrawH class. Copy the starting code from my website. –Renaming the DrawH class to include your name (DrawH_JohnDoe). Click on the DrawH class within Package Explorer and select File > Rename. –Compiling (save) vs. Executing (run) –Copying programs between school and home
23
23 Copying Classes between School and Home Since there are times when you will want to continue your work at home, you will need to be able to transfer your code back and forth. This is where your flash drive becomes handy. To reduce confusion, keep the folder structure on your flash drive the same as the folder structure on H:\workspace. Use file manager to locate the Java source file (that has extension.java) within the package folder. Copy only the.java files (not the.class files) to your flash drive folder. You can then copy these files to your package folder on your destination computer. Note: After you launch eclipse, it is important to refresh the project and package. Otherwise, the new code may not be seen within eclipse: –Single click on the project and select File > Refresh (or press F5). –Single click on the package and select File > Refresh (or press F5).
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.