Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

DEBUG #3 Each file starts with some comments that describe the problem. Comments

ID: 3701721 • Letter: D

Question

DEBUG #3 Each file starts with some comments that describe the problem. Comments are lines that begin with two slashes (//). Following the comments, each file contains pseudocode that has one or more bugs you must find and correct.

// This pseudocode should determine and output
// the rental fees for cars.
// Standard cars rent for $65 per day,
// compacts rent for $40 per day,
// and subcompacts rent for $30 per day.
// Rentals for at least 7 days receive a 20% discount.
// An error message is displayed if the car type
// is not valid.

start
   Declarations
      string carType
      num days
      num STD_RATE = 65
      num COM_RATE = 40
      num SUB_RATE = 30
      num DAYS_FOR_DISCOUNT = 10
      num DISCOUNT_RATE = 0.20
      string QUIT = "ZZZZ"
   getReady()
   while carType <> QUIT
      detailLoop()
   endwhile
   finish()
stop

getReady()
   output Enter car type or , QUIT, to quit
   input carType
return

detailLoop()
   output "Enter days rented "
   input days
   if carType = "Standard" then
      rate = STD_RATE
   else
      if car_Type = "Compact" then
          rate = COMPACT_RATE
      else
         if carType = "Subcompact" then
            rate = SUB_RATE
         else
            rate = 0
            output "Invalid car type"
         endif
      endif
   endif
   if rate <> 0
      if days >= DAYS_FOR_DISCOUNT then
         rate = rate * DISCOUNT_RATE
      endif
      output carType, days
   output "Enter car type or ", QUIT, " to quit "
   input carType
return

finish()
   output "End of program"
return

Explanation / Answer

The corrected lines are given in bold

  start     Declarations        string carType        num days        num rentalFee        num STD_RATE = 65        num COM_RATE = 40        num SUB_RATE = 30        num DAYS_FOR_DISCOUNT = 7        num DISCOUNT_RATE = 0.20        string QUIT = "ZZZZ"     getReady()     while carType <> QUIT        detailLoop()     endwhile     finish()  stop    getReady()     output Enter car type or , QUIT, to quit     input carType  return    detailLoop()     output "Enter days rented "     input days     if carType = "Standard" then        rate = STD_RATE     else        if carType = "Compact" then            rate = COM_RATE        else           if carType = "Subcompact" then              rate = SUB_RATE           else              rate = 0              output "Invalid car type"           endif        endif     endif     if rate <> 0        if days >= DAYS_FOR_DISCOUNT then           rate = rate * (1 - DISCOUNT_RATE)        endif     end if        rentalFee = rate * days        output carType, days, rentalFee     output "Enter car type or ", QUIT, " to quit "     input carType  return    finish()     output "End of program"  return