200 likes | 275 Vues
Comparison the RANGE block Day 8. Computer Programming through Robotics CPST 410 Summer 2009. Course organization. Course home page (http://robolab.tulane.edu/CPST410/) Lab (Newcomb 442) will be open for practice with 3-4 Macs, but you can bring your own laptop and all robots.
E N D
Comparisonthe RANGE blockDay 8 Computer Programming through Robotics CPST 410 Summer 2009
Course organization • Course home page • (http://robolab.tulane.edu/CPST410/) • Lab (Newcomb 442) will be open for practice with 3-4 Macs, but you can bring your own laptop and all robots. Harry Howard, CPST 410, Tulane University
Comparison and strings • Comparison operators: >, <, == • String operators • string [declares a variable of type string] • NumtoStr [converts a number to a string] • StrCat [concatenates strings] • TextOut [displays strings] Harry Howard, CPST 410, Tulane University
The challenge, again • Tribot, • create two random numbers between 0 and 9 (call them A and B), • display them on the screen, • and tell me if A is greater than B. Harry Howard, CPST 410, Tulane University
Parts 1 and 2 int A, B; string a, b, combined; task main() { A = random(10); B = random(10); a = NumtoStr(A); b = NumtoStr(B); combined = StrCat(a, “ < “, b); TextOut(0, 0, combined); Wait(1000); } Harry Howard, CPST 410, Tulane University
Part 3, literal option int A, B; string a, b, combined; task main() { A = random(10); B = random(10); a = NumtoStr(A); b = NumtoStr(B); if (A > B) combined = StrCat(a, “ > “, b); else if (B > A) combined = StrCat(a, “ < “, b); TextOut(0, 0, combined); Wait(1000); } Harry Howard, CPST 410, Tulane University
Part 3, more complete option int A, B; string a, b, combined; task main() { A = random(10); B = random(10); a = NumtoStr(A); b = NumtoStr(B); if (A > B) combined = StrCat(a, “ > “, b); else if (B > A) combined = StrCat(a, “ < “, b); else combined = StrCat(a, “ = “, b); TextOut(0, 0, combined); Wait(1000); } Harry Howard, CPST 410, Tulane University
Question • Could you use an NXC switch? • No, an an NXC switch only takes numbers (integers) as inputs. Harry Howard, CPST 410, Tulane University
Inside or out? Kelly §16
The challenge • Tribot, • Create a random number between 0 and 100, and show it on the screen. • Tell me if it is between 40 and 60. Harry Howard, CPST 410, Tulane University
DisplayRange1.rbt displays "between 40 and 60" on line 5 - don't clear the screen! displays random number on line 7 Harry Howard, CPST 410, Tulane University
The RANGE block • Robots respond to statements with True or False • A is inside the range of numbers beginning with B and ending with C. • A is outside the range of numbers beginning with B and ending with C. Harry Howard, CPST 410, Tulane University
Part 2 • Drag a RANGE block out of the Data row and drop it at the end of the beam. • Operation = Inside • A = 40 • B = 60 • Where does its input come from? • From RANDOM. Harry Howard, CPST 410, Tulane University
Part 2, cont. • We again want to display both the True and False responses • Drop a SWITCH block at the end of the beam and set it up. • Control = Value • Type = Logic • Uncheck Flat view (to save screen space) • Drop a DISPLAY block into each choice • = "True" • x = "False" • Drop a NXT button WAIT block at the end to keep the results on the screen Harry Howard, CPST 410, Tulane University
DisplayRange2.rbt Harry Howard, CPST 410, Tulane University
Range in NXC • There is no such operation as RANGE in NXC, • so you have to break it down into its components, • using the logical operators: • && [logical AND] • || [logical OR] • ! [logical negation] Harry Howard, CPST 410, Tulane University
The challenge, again • Tribot, • Create a random number between 0 and 100, and show it on the screen. • Tell me if it is between 40 and 60. Harry Howard, CPST 410, Tulane University
NXC version int A; string a, combined; task main() { A = random(10); a = NumtoStr(A); if (A > 40) && (A < 60) combined = StrCat(a, “ is between 40 and 60”); else combined = StrCat(a, “ is not between 40 and 60”); TextOut(0, 0, combined); Wait(1000); } Harry Howard, CPST 410, Tulane University
Next time • The LOGIC block. • Math, power, files: Kelly 20-22. • Bluetooth messaging: Kelly 25. • Tasks, routines, subroutines: Kelly 26. Harry Howard, CPST 410, Tulane University