Fundamentals of Computer Science I (CSC-151.02 2000F)


Lab: Records

Exercises

Exercise 0: Preparation

a. Please scan through the reading on records.

b. Make a copy of compound.ss.

c. Scan through that file to make sure that you understand all the procedures.

Exercise 1: Testing Compounds

a. Try the compoound examples given in the reading on records to see if they behave as I said they would.

b. Try a few of your own variations.

c. Explain why the attempted fake is not listed as a compound.

Exercise 2: Filtering Compounds

Define a procedure filter-by-color that takes two arguments -- a list ls of records of type compound and a color symbol -- and returns a list of the names of compounds of that color that are elements of ls.

Exercise 3: Falsifying Compounds

a. Find a way to set the melting point of a compound to an illegal temperature.

b. Find a way to make a vector that compound? identifies as a compound. You may not use make-compound or compound-copy to build your new vector. However, you may use either procedure to create a ``helper'' compound.

Exercise 4: A Shirt Record

Write a set of definitions for a record type shirt, to be used in a program that keeps track of the inventory of a clothing store. Provide fields for catalog number, intended gender of wearer, size, color, price, and quantity in stock. Only the last two fields should be mutable.

Exercise 5: Sorting Shirts

Define a procedure that sorts a vector of records of type shirt into ascending order by catalog number.

Exercise 6: Searching Shirts

Adapt the binary search procedure so that it takes two arguments -- a vector vec of records of type shirt, sorted by the procedure defined in the previous exercise, and a catalog number catno -- and returns the entire record that contains that catalog number, if there is one in vec, or #f if there is no such record.

Notes

History

Monday, 27 November 2000


Disclaimer Often, these pages were created "on the fly" with little, if any, proofreading. Any or all of the information on the pages may be incorrect. Please contact me if you notice errors.

This page may be found at http://www.cs.grinnell.edu/~rebelsky/Courses/CS151/2000F/Labs/records.html

Source text last modified Mon Nov 27 10:55:53 2000.

This page generated on Mon Nov 27 10:58:14 2000 by Siteweaver. Validate this page's HTML.

Contact our webmaster at rebelsky@grinnell.edu