- Review the attached Lab 8 file closely.
- Work through the Lab Student document thoroughly. Disregard all references to Python and Python exercises.
- Labs enable and enhance your learning. Schedule time to work through the lab materials at least twice.
- Complete the Raptor programs for the following labs:
- Lab 8.2
- Lab 8.5 – Programming Challenge 1 – Cell Phone Minute Calculator
- Save the fully completed Raptor programs with the following filenames: LastName_Lab_X.rap (X = lab number).
- Upload files here. (Do not upload incomplete files. Seek prompt assistance to have questions answered.)
Lab 8: Input Validation
This lab accompanies Chapter 7 of Starting Out with Programming Logic & Design.
Name: ___________________________
Lab 8.1 – Input Validation
Critical Review If a computer reads bad data as input, it will produce bad data as output. Programs should be designed to reject bad data that is given as input. Garbage in, garbage out (GIGO), refers to the fact that computers cannot tell the difference between good data and bad date. Both numbers and strings can be validated. |
The goal of this lab is to identify potential errors with algorithms and programs.
Step 1: Imagine a program that calls for the user to enter a password of at least 8 alphanumeric characters. Identify at least two potential input errors.
_______________________________________________________________________
_______________________________________________________________________
Step 2: Imagine a program that calls for the user to enter patients’ blood pressure. Blood pressure ranges are between 50 and 230. Identify at least two potential input errors.
_______________________________________________________________________
_______________________________________________________________________
Step 3: Open either your Lab 5-3.rap flowchart or your Lab 5-4.py Python code. This program allowed the user to enter in 7 days worth of bottle returns and then calculated the average. Examine the program and identify at least two potential input errors.
_______________________________________________________________________
_______________________________________________________________________
Step 4: Open either your Lab 6-4.rap flowchart or your Lab 6-4.py Python code. This program allowed a teacher to enter any number of test scores and then calculated the average score. Examine the program and identify at least two potential input errors.
_______________________________________________________________________
_______________________________________________________________________
Lab 8.2 – Input Validation and Pseudocode
Critical Review Input validation is commonly done with a loop that iterates as long as an input variable contains bad data. Either a posttest or a pretest loop will work. If you want to also display an error message, use a pretest loop, otherwise, a posttest loop will work. Functions are often used for complex validation code. |
The goal of this lab is to write input validation pseudocode.
Step 1: Examine the following main module from Lab 5.2. Notice that if the user enters a capital ‘Y’ the program will end since the while loop only checks for a lower case ‘y’.
Module main ()
//Step 1: Declare variables below
Declare Integer totalBottles = 0
Declare Integer counter = 1
Declare Integer todayBottles = 0
Declare Real totalPayout
Declare String keepGoing = ‘y’
//Step 3: Loop to run program again
While keepGoing == ‘y’
//Step 2: Call functions
getBottles(totalBottles, todayBottles, counter)
calcPayout(totalBottles, totalPayout)
printInfo(totalBottles, totalPayout)
Display “Do you want to run the program again? (Enter y for yes or n for no).”
Input keepGoing
End While
End Module
Step 2: Write a line of code that will convert the input value to a lower case value. (See Validating String Input, Page 264).
________________________________________________________________________
________________________________________________________________________
Step 3: Examine the getBottles module from the same program. Notice the potential input error of the user entering a negative value into todayBottles. Rewrite the module with an input validation loop inside the existing while loop that will verify that the entry into todayBottles is greater than 0. If they enter a 0 or negative value, display an error message. (Reference: Input Validation Loop, Page 258).
Previous Code
//getBottles module
Module getBottles(Integer totalBottles, Integer todayBottles, Integer counter)
While counter <=7
Display “Enter number of bottles returned for the day:”
Input todayBottles
totalBottles = totalBottles + todayBottles
counter = counter + 1
End While
End Module
Validation Code
//getBottles module
Module getBottles(Integer totalBottles, Integer todayBottles, Integer counter)
While counter <=7
______________________________________________
______________________________________________
______________________________________________
______________________________________________
Display “Enter number of bottles returned for the day:”
Input todayBottles
_______________________________________________
_______________________________________________
totalBottles = totalBottles + todayBottles
counter = counter + 1
End While
End Module
Step 4: Examine the following pseudocode from Lab 6.4. Rewrite the module with a validation loop so that no less than 2 students and no more than 30 students take the test.
Previous Code
Module getNumber(Integer Ref number)
Display “How many students took the test: ”
Input number
End Module
Validated Code
Module getNumber(Integer Ref number)
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
End Module
Step 5: Examine the following pseudocode from Lab 6.4. Rewrite the module with a validation loop so that the test score must be between 0 and 100.
Previous Code
Module getScores(Real Ref totalScores, Integer number, Real score, Integer counter)
For counter = 1 to number
Display “Enter their score:”
Input score
Set totalScores = totalScores + score
End For
End Module
Validated Code
Module getScores(Real Ref totalScores, Integer number, Real score, Integer counter)
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
______________________________________________________
End Module
Lab 8.3 – Functions and Flowcharts
Critical Review Based on the type of loop used for validation, you may have noticed the concept of a priming read. This is this the first input before the validation loop. The purpose of this is to get the first input value that will be tested by the validation loop. A priming read is used with a while loop, rather than a do-while loop. Note: If the programmer is asking for a particular type of input (either numeric or string), the user is free to enter something else. This will normally cause a fatal error at some point of program execution. Avoiding these fatal errors is beyond the scope of basic Raptor programming. What this means is that all errors cannot be resolved using Raptor. |
This lab requires you to modify the flowchart from Lab 6-4.rap to incorporate validation loops. Use an application such as Raptor or Visio.
Step 1: Start Raptor and open your flowchart from Lab 6-4.rap. Go to File and then Save As and save your document as Lab 8-3. The .rap file extension will be added automatically.
Step 2: In the main module, modify your loop condition so that the user must enter a “yes” or a “no” value. This can be done with nested Loop symbols. Your flowchart might look as follows:
Step 3: In the getNumber module, modify the code so that the input must be at least 2 or more students and no more than 30 students. If the user enters a valid number, the program should continue. If not, display an error message that says “Please enter a number between 2 and 30 – Try again!!” Use a prime read in this situation. Paste your getNumber module flowchart in the space below.
PASTE FLOWCHART HERE
Step 4: In the getScores module, modify the code so that the input must be between 0 and 100. If the user enters a valid number, the program should continue. If not, display an error message that says “Please enter a number between 0 and 100 – Try again!!” Use a prime read in this situation. Paste your getScores module flowchart in the space below.
PASTE FLOWCHART HERE
admin@shrewdwriters.com and we will reply instantly. We provide original answers that are not plagiarized, please try our service.
Leave a Reply