INTRODUCTION TO PROGRAMMING IN C++
Kalamazoo College

MINI-LAB: KEEP ON MOVING

Using For Loops


This set of Mini-Lab Exercises includes the following:



Keep on Moving

Our program would be more interesting if we had the fish move more than just the one time. We can use the Counted Repetition pattern to allow the fish to move for several time slices.

Exercise: Simulate Fish Moving Forward

Modify your main program to become a simulation of three fish moving in the aquarium over time. Initially, set the number of time steps in the simulation to 10. Choose one of the loop control idioms above and use it correctly.



Put the User in the Driver's Seat

Our program would be more flexible if we allowed the user to specify how many times they want the simulation to run. We can use a Prompted Input to ask the user to provide the desired number.

Exercise: Allow User to Control Simulation Steps

Modify your program to ask the user how many times they want the simulation to run, and then use that number to control your loop. (Should this prompt appear before or after your message welcoming the user to the aquarium program?)



Random Behavior

Our three fish are moving in lock-step with one another, more like a marching band than fish. It would be more interesting if, in each time step, a fish randomly decides whether to change direction before moving forward (unless it is at a wall, in which case it must change direction). We can use the RandGen class to simulate a coin toss (or other random selection between two values) by specifying that we want a random integer in the range 0 to 1.

Exercise

Research the RandGen interface to discover how to randomly generate a 0 or 1. Modify your simulation function to have each fish randomly decide whether to change direction before moving forward (unless it is facing a wall, in which case it should always change direction before moving forward).

In a previous exercise you wrote the selection statement to change direction when a fish is facing a wall. You do not need to add any new selection statements to your code in order to implement the random behavior for this exercise. Just modify your selection statement to test for a more complex condition. Don't forget to include the header file for RandGen at the top of your file.


Stop and Think

Does it matter which expression comes first in your complex condition?



Looking Ahead:

If you run your program enough times you may discover that we have just introduced a logic error into our program. On rare occasions a fish may swim out through the left wall of the aquarium. We will explore this behavior further, and fix the underlying problem, in a later exercise.



Copyright Alyce Faulstich Brady, 1999.