Chapter 13 Exercise Set 0: Chapter Review

  1. Add the Deck object developed in this chapter to the Cards.h and Cards.cpp files you created in Chapter 13 Exercise Set 0: Chapter Review.

  2. Rewrite the find_card function from Searching as a Deck member function that has a Card parameter.

  3. Reread the discussion in Random numbers and use that to write a function named random_between. Create a header file, random.h, with the following:

    // Returns positive pseudorandom integer between l and h inclusive
    int random_between(int l, int h);
    

    Then create a random.cpp that has the body of the function. The parameters l and h represent the lower and upper ends of a range or integers. Your function should return random integers between l and h inclusive. Note: Your function should not concern itself with the need to seed rand by calling srand. Call srand in the main function.

    Write a test_random.cpp that has #include "random.h" at the top and has several calls to random_between in its main function designed to test it. Try simulating the roll of a 6 sided die. Don’t forget to call srand so that you get a different sequence of numbers each time you run your program.

    Handle the case where l is greater than h by swapping l and h so that both random_between(3, 6) and random_between(6, 3) return an integer between 3 and 6 inclusive.

  4. Add a modifier member function to the Deck structure named swap_cards that takes integers as arguments (the indices of the two cards) and swaps the cards at these indices.

  5. Add a member function to the Deck structure with prototype:

    int find_lowest_between(int l, int h);
    

    that returns the index of the lowest card in the deck between index l and index h inclusive.

  6. Add a modifier member function to the Deck structure named sort that uses the selection sort algorithm sketched out in the Sorting section to put the deck’s cards into sorted order.

  7. Complete the merge function sketched out in the Merge sort section. Then use it to complete the first version of merge_sort described in the section.