CS 111
Summer 2 2017

Quiz 4 Info

Quiz 4 Information

Quiz details

Material covered

The quiz will focus on the material that we have discussed in class from the beginning of the summer session through Tuesday, August 1st. This corresponds to the following readings:

Note: You are not responsible for details from the case studies in the readings (e.g., the information about how sorting works). However, you are responsible for the programming and problem-solving concepts that those case studies were used to illustrate.

In addition, you should be familiar with concepts that were introduced in the pre-class videos, in-class discussion, or on the homeworks that were not covered in the readings.

Preparing for the quiz

Additional practice problems

  1. Create a Python class called Triangle. The constructor for this class should take two arguments, base and height, and store those values in appropriately named attributes. In addition, you should add a method called area that computes and returns the area of the triangle. (The area of a triangle is 0.5 times the product of its base and height.) For example:

    >>> tri = Triangle(3, 4)
    >>> tri.area()
    6.0
    
  2. Add a method to your Triangle class that enables you print a Triangle object in a readable way. For example:

    >>> tri = Triangle(3, 4)
    >>> print(tri)
    triangle with base 3 and height 4
    
  3. Add a method to your Triangle class that will allow you to use the == operator to test if two Triangle objects are equal–i.e., if they have the same base and height. For example:

    >>> tri1 = Triangle(3, 4)
    >>> tri2 = Triangle(3, 4)
    >>> tri3 = Triangle(4, 3)
    >>> tri1 == tri2
    True
    >>> tri1 == tri3
    False
    
  4. Write a function called main that creates three triangle objects tri1 (with base 3 and height 4), tri2 (with base 6 and height 6), and tri3 (also with base 3 and height 4). The function should print the three objects and their areas. Next, it should test whether tri1 and tri2 are equal and report the result. Finally, it should test whether tri1 and tri3 are equal and report the result. Your function should take full advantage of the Triangle methods you have written. Here is the desired output:

    >>> main()
    tri1: triangle with base 3 and height 4 (area = 6.0)
    tri2: triangle with base 6 and height 6 (area = 18.0)
    tri3: triangle with base 3 and height 4 (area = 6.0)
    tri1 and tri2 are not equal
    tri1 and tri3 are equal
    
  5. Create a Python class named Phonebook with a single attribute called entries. The constructor should initialize entries to be a dictionary containing the following names and phone numbers:
    Bob 72345, Sally 71000, John 79999. Use the names as the keys of the dictionary and the phone numbers (which you should represent as ints) as the values.

  6. Add a method named contains to your Phonebook class. It should take a parameter name and return True if name is present in the phonebook, and False otherwise. For example:

    >>> book = Phonebook()
    >>> book.contains('Foo')
    False
    >>> book.contains('Bob')
    True
    
  7. Write another method for your Phonebook class called number_for that takes a parameter name and returns the phone number for name in the called Phonebook object. It should return -1 if name is not found. Here is an example:

    >>> book = Phonebook()
    >>> book.number_for('Sally')
    71000
    >>> book.number_for('foobar')
    -1
    

    Hint: Consider using your contains method from problem 8.

  8. Write another method for your Phonebook class called add_entry that takes as parameters a name and a number and adds an appropriate entry to the phonebook. For example:

    >>> book = Phonebook()
    >>> book.number_for('Turing')
    -1
    >>> book.add_entry('Turing', 77777)
    >>> book.number_for('Turing')
    77777
    

MORE TO FOLLLOW