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

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

ID: 3701720 • Letter: D

Question

DEBUG #2 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 create a list that describes annual profit
// statistics for a retail store. Input records contain a department
// name (for example, “Cosmetics”) and profits for each quarter for
// the last two years. The program should determine whether
// the profit is higher, lower, or the same
// for this full year compared to the last full year.

start
   Declarations
      string department
      num salesQuarter1ThisYear
      num salesQuarter2ThisYear
      num salesQuarter3ThisYear
      num salesQuarter4ThisYear
      num salesQuarter1LastYear
      num salesQuarter2LastYear
      num salesQuarter3ThisYear
      num salesQuarter4LastYear
      num totalThisYear
      num totalLastYear
      string status
      num QUIT = "ZZZZ"
   housekeeping()
   while department <> QUIT
      compareProfit()
   endwhile
   finishUp()
stop

housekeeping()
   output "Enter department name or ", QUIT, " to quit "
   input dept
return

compareProfit()
   getSalesData()
   sumSalesData()
   if totalThisYear = totalLastYear then
      status = "Higher"
   else
      if totalThisYear <= totalLastYear then
         status = "Lower"
      else
         status = "Same"
     endif
   endif
   output department, status
   output "Enter department name or ", QUIT, " to quit "
   input department
return

getSalesData()
   output "Enter sales for first quarter this year "
   input salesQuarter1ThisYear
   output "Enter sales for second quarter this year "
   input salesQuarter1ThisYear
   output "Enter sales for third quarter this year "
   input salesQuarter1ThisYear
   output "Enter sales for fourth quarter this year "
   input salesQuarter4ThisYear
   output "Enter sales for first quarter last year "
   input salesQuarter1LastYear
   output "Enter sales for second quarter last year "
   input salesQuarter3LastYear
   output "Enter sales for third quarter last year "
   input salesQuarter3LastYear
   output "Enter sales for fourth quarter last year "
   input salesQuarter3LastYear
return

sumSalesData()
    totalThisYear = salesQuarter1ThisYear + salesQuarter2ThisYear +
       salesQuarter2ThisYear + salesQuarter4ThisYear
    totalLastYear = salesQuarter2LastYear + salesQuarter2LastYear +
       salesQuarter3LastYear + salesQuarter4LastYear
return

finishUp()
   output "End of report"
return

Explanation / Answer

//The Algorithm contains the errors which are corrected in the below solution.The changes are required are // highlighted in Bold so that they are easily located.

start
   Declarations
      string department
      num salesQuarter1ThisYear
      num salesQuarter2ThisYear
      num salesQuarter3ThisYear
      num salesQuarter4ThisYear
      num salesQuarter1LastYear
      num salesQuarter2LastYear
//This is corrected as the sales figure for the Quarter3 Last year is already declared   num salesQuarter3LastYear

      num salesQuarter4LastYear
      num totalThisYear
      num totalLastYear
      string status //corrected the datatype used to assign value
string QUIT = "ZZZZ"
   housekeeping()
   while department <> QUIT
      compareProfit() endwhile

   finishUp()
stop

housekeeping()   //Corrected the input value to be entered for quit
   output "Enter department name or ",  ZZZZ , " to quit "
   input dept
return

compareProfit()
   getSalesData()
   sumSalesData()
   if totalThisYear = totalLastYear then
      status = "Same"
   else
      if totalThisYear < totalLastYear then
         status = "Lower"
      else
         status = "Higher"
     endif
   endif
   output department, status
   output "Enter department name or ",  ZZZZ , " to quit "
   input department
return

getSalesData()
   output "Enter sales for first quarter this year "
   input salesQuarter1ThisYear
   output "Enter sales for second quarter this year "
   input salesQuarter2ThisYear
   output "Enter sales for third quarter this year "
   input salesQuarter3ThisYear
   output "Enter sales for fourth quarter this year "
   input salesQuarter4ThisYear
   output "Enter sales for first quarter last year "
   input salesQuarter1LastYear
   output "Enter sales for second quarter last year "
   input salesQuarter2LastYear
   output "Enter sales for third quarter last year "
   input salesQuarter3LastYear
   output "Enter sales for fourth quarter last year "
   input salesQuarter4LastYear
return

sumSalesData()
    totalThisYear = salesQuarter1ThisYear + salesQuarter2ThisYear +
       salesQuarter3ThisYear + salesQuarter4ThisYear
    totalLastYear = salesQuarter1LastYear + salesQuarter2LastYear +
       salesQuarter3LastYear + salesQuarter4LastYear
return

finishUp()
   output "End of report"
return