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

// The two senior class homerooms at Littleville High School // are having a fun

ID: 3720967 • Letter: #

Question

// The two senior class homerooms at Littleville High School
// are having a fundraising drive for the prom. Each time a student
// solicits a contribution, a record is created with the
// student's name and the value. Two files have been created for
// Homeroom A and Homeroom B. Each file is sorted in contribution
// value order from highest to lowest. This program merges the two files.
start
   Declarations
      string roomAName
      num roomAValue
      string roomBName
      num roomBValue
      string bothFilesDone = "N"
      num HIGH_VALUE = 999999
      InputFile roomAFile
      InputFile roomBFile
      InputFile mergedFile
   getReady()
   while bothFilesDone = "N"
      detailLoop()
   endwhile
   allDone()
stop

getReady()
   open roomAFile "roomAFile.dat"
   open roomBFile "roomBFile.dat"
   open mergedFile "mergedFile.dat"
   readA()
   readB()
   checkBoth()
return

readA()
   input roomAName, roomAValue from roomAFile
   if eof then
      roomAValue = HIGH_VALUE
   endif
return

readB()
   input roomBName, roomBValue from roomBFile
   if eof then
      roomBValue = HIGH_VALUE
   endif
return

checkBoth()
   if roomAValue = HIGH_VALUE AND roomBValue = HIGH_VALUE then
      bothFilesDone = "Y"
   endif
return

1. Your downloadable files for Chapter 7 include DEBUG07-01.txt, DEBUG07-02.txt, and DEBUG07-03.txt. 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.

Explanation / Answer

Start

Declarations

string roomAName

num roomAValue

string roomBName

num roomBValue

string bothFilesDone = "N"

num HIGH_VALUE = 999999

InputFile roomAFile

InputFile roomBFile

OutputFile mergedFile

getReady()

while bothFilesDone = "N"

detailLoop()

endwhileallDone()

stop

getReady()

open roomAFile "roomAFile.dat"

open roomBFile "roomBFile.dat"

open mergedFile "mergedFile.dat"

readA()

readB()

checkBoth()

return

readA()

input roomAName, roomAValue from roomAFile

if eof then

roomAValue = HIGH_VALUE

endif

return

readB()

input roomBName, roomBValue from roomBFile

if eof then

roomBValue = HIGH_VALUE

endif

return

checkBoth()

if roomAValue = HIGH_VALUE AND roomBValue = HIGH_VALUE then

bothFilesDone = "Y"

endif

return

detailLoop()

if roomAValue < roomBValue then

output roomBName, roomBValue to mergedFile

readB()

else

output roomAName, roomAValue to mergedFile

readA()

endif

checkBoth()

return

allDone()

close roomAFile

close roomBFile

close mergedFile

return