Pure Programmer
Blue Matrix


Cluster Map

Project: Football Passer Rating (with Assertions)

The passer rating formula provides one metric that can be used to compare the performance of quarterbacks. It is based on the number of completions, touchdown passes, interceptions and total passing yards. Write a program that prompts for the number of completed passes, touchdown passes, interceptions, total passing yards, the total number of attempted passes and whether the NFL or NCAA passer rating should be displayed. Print the rating to one decimal place.

The program should call one of two functions to compute the NFL or NCAA passer rating. Each function should have pre-conditions that check for the following:

  1. Attempts are greater or equal to zero
  2. Completions are greater or equal to zero
  3. Touchdown passes are greater or equal to zero
  4. Interceptions are greater or equal to zero
  5. Passing yards are greater or equal to zero
  6. Completions plus interceptions is less than or equal to total passing attempts

Each function should also have post-conditions the enforce the minimum and maximum possible value for passer rating:

  1. NFL Minimum: 0.0
  2. NFL Maximum: 158.3
  3. NCAA Minimum: −731.6
  4. NCAA Maximum: 1261.6

See [[Passer Rating]] for the NFL and NCAA formulas.

See FootballPasserRating3

Output
$ swiftc FootballPasserRating4.swift -I . -L . -lUtils $ ./FootballPasserRating4 Number of attempts: 497 Number of completions: 340 Number of touchdown passes: 33 Number of interceptions: 5 Number of passing yards: 4208 1 for NFL or 2 for NCAA: 1 $ swiftc FootballPasserRating4.swift -I . -L . -lUtils $ ./FootballPasserRating4 Number of attempts: 355 Number of completions: 245 Number of touchdown passes: 43 Number of interceptions: 6 Number of passing yards: 3966 1 for NFL or 2 for NCAA: 2 NCAA Passer rating: 199.4 $ swiftc FootballPasserRating4.swift -I . -L . -lUtils $ ./FootballPasserRating4 Number of attempts: 1 Number of completions: 1 Number of touchdown passes: 1 Number of interceptions: 1 Number of passing yards: 1 1 for NFL or 2 for NCAA: 1 Assertion failed: completions + interceptions <= attempts: file FootballPasserRating4/FootballPasserRating4.swift, line 17

Solution