Due by 11:59pm Friday, Feb 1, 2013

This lab assignment requires you to write three programs in
python. First, run `update21`. This will create the
`cs21/labs/01` directory (if you haven't already) and copy over any starting-point
files for your programs.
Next, move into your `cs21/labs/01` directory and begin
working on the python programs for this lab.
The `pwd` command
helps you verify that you are in the correct sub-directory.

$ update21 $ cd cs21/labs/01 $ pwd /home/your_user_name/cs21/labs/01The program

1. Running laps

Running 1 mile is about 1600 meters, which is 4 laps on the Swarthmore track (each lap is 400m). Write a program that asks the user for the number of miles they want to run and calculates the number of laps they have to do.

Here are some sample runs of such a program:

$ python laps.py Miles you want to run: 6 That's 24 laps on the track. $ python laps.py Miles you want to run: 0.5 That's 2.0 laps on the track. $ python laps.py Miles you want to run: 26 That's 104 laps on the track.

2. Rainfall

When the weather forecast calls for one inch of rain, how many gallons of water fall on Swarthmore College?

Assuming the college is about 300 acres, and looking up some conversion factors, we can write this mathematically as:

gallons of rain = (# of inches/12 inches per foot) * 300 acres * 43560 sq ft per acre * 7.48052 gallons per cubic foot

Write a program that asks the user for an amount of rain (in inches) and then calculates and displays the approximate number of gallons that fall on Swarthmore College.

Here are some sample runs of such a program:

$ python rain.py Rainfall in inches: 1 That's about 8146286.28 gallons of rain on Swarthmore College. $ python rain.py Rainfall in inches: 0 That's about 0.0 gallons of rain on Swarthmore College. $ python rain.py Rainfall in inches: 2.5 That's about 20365715.7 gallons of rain on Swarthmore College.

3. Base-2 logarithms

Base-2 logarithms are very useful in computer science. In python we can easily calculate them using the math library, like this:

>>> from math import * >>> log(8,2) 3.0(log(8,2) is log-base2 of 8.0).

Write a program to calculate and display a table of base-2 logarithms from 1 to some number the user enters, like this:

$ python logs.py End value: 20 log-base2 of 1 is 0.0 log-base2 of 2 is 1.0 log-base2 of 3 is 1.58496250072 log-base2 of 4 is 2.0 log-base2 of 5 is 2.32192809489 log-base2 of 6 is 2.58496250072 log-base2 of 7 is 2.80735492206 log-base2 of 8 is 3.0 log-base2 of 9 is 3.16992500144 log-base2 of 10 is 3.32192809489 log-base2 of 11 is 3.45943161864 log-base2 of 12 is 3.58496250072 log-base2 of 13 is 3.70043971814 log-base2 of 14 is 3.80735492206 log-base2 of 15 is 3.90689059561 log-base2 of 16 is 4.0 log-base2 of 17 is 4.08746284125 log-base2 of 18 is 4.16992500144 log-base2 of 19 is 4.24792751344 log-base2 of 20 is 4.32192809489

Submit

Once you are satisfied with your programs, hand them in by typing
**handin21** at the unix prompt.

You may run **handin21** as many times as you like, and only the
most recent submission will be recorded. This is useful if you realize,
after handing in some programs, that you'd like to make a few more
changes to them.

Remember: for this lab,
`handin21` will only submit files from your `cs21/labs/01` directory.
If you create your programs in a different directory, use the unix `mv` or
`cp` commands to move or copy them into the `cs21/labs/01` directory.
For example:

cp myprog.py ~/cs21/labs/01/myprog.py