Untitled
user_0846129
plain_text
3 years ago
3.9 kB
11
Indexable
write a comment for each line on what they dpo
WHILE processInput is False DO // //Initializing each input process to false, to validate if the user have inputted a process
TRY // Check if user enter a valid input for process
PRINT "Enter the number of process" // Ask the user for the number of processes
SET job ← user input for number of processes // sets the value of job to the input of user for processes
SET processInput ← true // sets the value of processInput to true
CATCH inputMismatchException // Repeat loop until user enters valid number of processes
PRINT " Please enter a WHOLE NUMBER only"
END TRY-CATCH
END WHILE
SET Burst ← ARRAY of double of size job // creates an array of double
SET Priority ← ARRAY of integer of size job // creates an array of int
FOR i ← 0 to job-1 DO // iterates over each job
SET burstInput ← False // set the BurstInput value to false
priorityInput ← False // set the priorityInput value to false
PRINT "\n------------------------------------- Process " + (i+1) + " ------------------------------------" // printing process number
// Loop to ensure inputs a valid Burst value for each process
WHILE burstInput is False DO
TRY
PRINT "Burst Time" // ask user to input burst time
SET Burst[i] ← user input for Burst Time // sets the Burst time for current procee
SET burstInput ← True // sets busrtInput to true to indicate valid input
CATCH InputMismatchException // checks if the user input valid number for Burst time
PRINT "Please enter NUMBERS only!"
ENDS TRY-CATCH
END WHILE
// Loop to ensure inputs a valid priority value for each process
WHILE priorityInput ← False DO
TRY
PRINT "Priority:" // Ask the user to input priority value
SET Priority[i] ← user input in Priority // sets the priority value for current process
SET priorityInput ← True // sets priorityInput to true to indicate valid input
CATCH InputMismatchException
OUTPUT Please enter a WHOLE NUMBER only!"
END TRY CATCH
END WHILE
END FOR
// Creating a copy of priority array to be used for sorting
SET P1 ← ARRAY of integer of size job
FOR i FROM 0 TO job-1 DO
SET P1[i] ← Priority[i]
END FOR
// Sorting the priority array in ascending order
FOR i FROM 0 TO job-1 DO
FOR j FROM 0 TO job-2 DO
IF Priority[j] > Priority[j+1] THEN
SET temp ← Priority[j]
SET Priority[j] ← Priority[j+1]
SET Priority[j+1] ← temp
END IF
END FOR
END FOR
// Initializing variables for calculating waiting and turnaround times
SET wait ← 0
SET turnTable ← 0
SET waitingTime ← ARRAY of double of size job
SET turnaround ← ARRAY of double of size job
SET totalWait ← 0.0
SET totalTurn ← 0.0
SET k ← 0
SET l ← 0
PRINT "Process", "Priority No.", "Burst Time", "Waiting Time", "Turnaround Time"
FOR i ← 0 to job-1 DO
IF Priority[i] = P1[j] THEN
CONTINUE
END IF
FOR j ← 0 to job-1 DO
IF Priority ← P1[j] THEN
SET turnTable ← turnTable + Burst[j]
PRINT (j+1), P1[j], Burst[j], wait, turnTable
SET waitingTime[k] ← wait
SET totalWait ← totalWait + wait
SET turnround[k] ← waitingTime[k] + Burst[j]
END IF
END FOR
END FOR
// Printing the headers for the output table
PRINT "AVERAGE WAITING TIME" + totalWait/job + " AVERAGE TURNAROUND TIME: " + totalTurn/job
PRINT "Would you like to restart the program? Press [Y] to restart or ANY KEY to terminate:" // Ask the user if they want to restart the program
SET restart ← user input // set the value value for restart to what the user input
IF restart ← 'Y' // check if the user input letter Y
CALL main method // call the main method
ELSE // otherwise terminate the program
PRINT "Program terminated. Thanks for using the program!"
END IF
Editor is loading...