100% satisfaction guarantee Immediately available after payment Both online and in PDF No strings attached
logo-home
University of British Columbia CPSC 110 Assignment 7 Phase 1 $2.99   Add to cart

Exam (elaborations)

University of British Columbia CPSC 110 Assignment 7 Phase 1

 15 views  0 purchase
  • Course
  • Institution

University of British Columbia CPSC 110 Assignment 7 Phase 1

Preview 2 out of 10  pages

  • October 15, 2021
  • 10
  • 2021/2022
  • Exam (elaborations)
  • Questions & answers
avatar-seller
;; Problem Set 7 Phase 1 Solution (THIS IS A TWO-PHASE PEER GRADED PROBLEM)


NOTE!

The following applies to each of the problems in phase one of the problem set:

You are required to design each function as a 2-one-of problem.
Provide signature, purpose, stub, cross-product of types table (filled
using your examples (see next paragraph)),
and examples. DO NOT IMPLEMENT THE FUNCTION.

You must include a properly formed cross-product of types comment table to
receive credit for each problem. You must render it as text in a comment
box. It should come after the purpose. You may find it helpful to draw your
cross-product on paper for your design and then use a tool like
http://www.asciiflow.com/#Draw to help you render it.

Use your examples to fill in the cross product of types table. Remember,
the content of the table does not need to be fully-formed code. See the
videos and the 2-One-Of practice problem solutions for examples of what is
acceptable.

After you have filled in the table, you should simplify it.
As part of the simplification, assign a number to each subclass that
produces different answers. Consult the Coursera practice problem solutions
for examples of this.

Problem 1:

Suppose you have rosters for players on two opposing tennis teams, and each
roster is ordered by team rank, with the best player listed first. When both
teams play, the best players of each team play one another,
and the second-best players play one another, and so on down the line. When
one team has more players than the other, the lowest ranking players on
the larger team do not play.

In this problem you will begin to design a function that takes two lists of
players and produces a list of matches, according to the approach described
above. DO NOT IMPLEMENT THE FUNCTION.

;; Player is String
;; interp. the name of a tennis player.
(define P0 "Maria")
(define P2 "Serena")

#;
(define (fn-for-player p)
(... p))



;; Roster is one of:
;; - empty
;; - (cons Player Roster)
;; interp. a team roster, ordered from best player to worst.
(define R0 empty)
(define R1 (list "Eugenie" "Gabriela" "Sharon" "Aleksandra"))
(define R2 (list "Maria" "Nadia" "Elena" "Anastasia" "Svetlana"))

#;
(define (fn-for-roster r)
(cond [(empty? r) (...)]
[else
(... (fn-for-player (first r))

, (fn-for-roster (rest r)))]))



(define-struct match (p1 p2))
;; Match is (make-match Player Player)
;; interp. a match between player p1 and player p2, with same team rank
(define M0 (make-match "Eugenie" "Maria"))
(define M1 (make-match "Gabriela" "Nadia"))

#;
(define (fn-for-match m)
(... (match-p1 m) (match-p2 m)))



;; ListOfMatch is one of:
;; - empty
;; - (cons Match ListOfMatch)
;; interp. a list of matches between one team and another.
(define LOM0 empty)
(define LOM1 (list (make-match "Eugenie" "Maria")
(make-match "Gabriela" "Nadia")))

#;
(define (fn-for-lom lom)
(cond [(empty? lom) (...)]
[else
(... (fn-for-match (first lom))
(fn-for-lom (rest lom)))]))


Solution:
;; Roster Roster -> ListOfMatch
;; given two team rosters produce a list of matches for all pairwise ranks.

The benefits of buying summaries with Stuvia:

Guaranteed quality through customer reviews

Guaranteed quality through customer reviews

Stuvia customers have reviewed more than 700,000 summaries. This how you know that you are buying the best documents.

Quick and easy check-out

Quick and easy check-out

You can quickly pay through credit card or Stuvia-credit for the summaries. There is no membership needed.

Focus on what matters

Focus on what matters

Your fellow students write the study notes themselves, which is why the documents are always reliable and up-to-date. This ensures you quickly get to the core!

Frequently asked questions

What do I get when I buy this document?

You get a PDF, available immediately after your purchase. The purchased document is accessible anytime, anywhere and indefinitely through your profile.

Satisfaction guarantee: how does it work?

Our satisfaction guarantee ensures that you always find a study document that suits you well. You fill out a form, and our customer service team takes care of the rest.

Who am I buying these notes from?

Stuvia is a marketplace, so you are not buying this document from us, but from seller solutions. Stuvia facilitates payment to the seller.

Will I be stuck with a subscription?

No, you only buy these notes for $2.99. You're not tied to anything after your purchase.

Can Stuvia be trusted?

4.6 stars on Google & Trustpilot (+1000 reviews)

76449 documents were sold in the last 30 days

Founded in 2010, the go-to place to buy study notes for 14 years now

Start selling
$2.99
  • (0)
  Add to cart