CSC 153 | Grinnell College | Spring, 2005 |
Computer Science Fundamentals | ||
Laboratory Exercise | ||
This laboratory exercise provides practice with iteration through the use of Scheme's do-expression.
Write a procedure display-count
that takes two arguments,
start
and finish
, and counts upwards from
start
to finish
, displaying each number on a
separate line. (The preconditions are that start
and
finish
must both be exact integers and start
must
be less than or equal to finish
.) The
display-count
procedure should return the number of lines of
output it produces.
Review the sqrt-table
procedure from the lab on input and output. This
procedure takes one argument, a non-negative integer, and prints out a
table of integers and their square roots, for integers equal to or less
than its argument.
In printing the table of square roots, procedure sqrt-table used a helper function to handle the printing of each line, after the initial header was printed.
Rewrite the sqrt-table-helper function by using a
do
-expression.
Define a Scheme procedure that takes any non-empty list of real numbers
as its argument and returns the number that is the greatest element of the
list. Use a do
-expression to run through the positions of
the list.
Define a sum
procedure, which takes any list of numbers as its
argument and returns their sum. In your procedure, use a
do
-expression to process list elements iteratively.
Write a procedure that counts the number of vowels that occur in a string. Within your procedure, keep the string in tact -- do not convert it to a list. Also, use a do-expression for any looping. Finally, keep the number of variables in your do-expression to a minimum -- for example, the string variable should not be redefined in the loop.
Rewrite the encode-char procedure (including its kernel procedure) from the lab on strings, so that all looping is done using a do-expression.
This document is available on the World Wide Web as
http://www.walker.cs.grinnell.edu/courses/153.sp05/labs/lab-iteration.shtml
created April 21, 1997 by John David Stone last revised February 2, 2005 by Henry M. Walker |
![]() ![]() |
For more information, please contact Henry M. Walker at walker@cs.grinnell.edu. |