Background
jLogo Programming
- Commanding a Turtle
- Pseudocode
- Adding New Commands
- Iteration & Animation
- Hierarchical Structure
- Procedure Inputs
- Operators & Expressions
- Defining Operators
- Words & Sentences
- User Interface Events
- What If? (Predicates)
- Recursion
- Local Variables
- Global Variables
- Word/Sentence Iteration
- Mastermind Project
- Turtles As Actors
- Arrays
- File Input/Output
Java
- A Java Program
- What's a Class?
- Extending Existing Classes
- Types
- Turtle Graphics
- Control Flow
- User Interface Events
Appendices
Updates
- December 13, 2008
- January 6, 2012
- March 15, 2013
- January 20, 2014
- February 13, 2014
- July 29, 2014
- January 18, 2016
- January 29, 2016
Lastly
Two New Built-in Operators - Why?
In the GridToolkit, I used two built-in operators that you have not seen before. What are they? Why did I need to use them?
Answer:
The new built-in operators used are int and remainder. They are used in the procedure gridGotoCell.
-
INT
forward product gridCellSize (int quotient :idx gridNumCol)
What does it do? The expression "quotient :idx gridNumCol" is intended to produce the row number. The row number multiplied by the size of a cell is the distance the turtle needs to move southward (from the top of the grid) to arrive at the desired row. What int does is to remove the fractional part of its input, a number. Here is an example, a walk-through, to show what's going on.
Let's say we want to go to the top-left corner of cell 12 in a grid that has 8 columns (gridNumCol = 8). Cell 12 is in the second row, so I'm going to need the turtle to move south from its position at the top-left corner of the grid a distance equal to the size of one cell. Well... quotient 12 8 produces 1.5 and striping off the fractional part gets us the value we need: 1. If we do not remove the fractional part, the turtle will move too far... past the top of the second row, to the middle of the cell's height.
-
REMAINDER
forward product gridCellSize (remainder :idx gridNumCol)
What does it do? The expression "remainder :idx gridNumCol" produces the column number. The column number multiplied by the size of a cell is the distance the turtle needs to move eastward to get to the desired column.
Let's extend the int walk-through... At the point in the procedure where remainder is used (in a forward command), the turtle is positioned at the top of the desired row. First the turtle's heading it set to east. Then we need to move forward to the left-edge of the desired column. Since there are eight (8) columns in a row, when you divide the desired cell number twelve (12) by eight you get one (1) with a remainder of four (4). Four times the size of a cell gets the turtle to the left-side of the twelfth cell.