3A.
Provide a written response that does all three of the following:
i. Describes the overall purpose of the program
ii. Describes what functionality of the program is demonstrated in the video
iii. Describes the input and output of the program demonstrated in the video
?
The purpose of this program is to test basic math problems in multiplication and division and report the percent correct back to the user. The video demonstrates both the multiplication and division quizzes where the user is asked for the problem type and then given 5 problems, each with a chance to answer and the results reported back.
The video demonstrates 2 different inputs and 3 different outputs. The inputs demonstrated are asking users to select a problem type and then providing a guess for the problems. The three outputs demonstrated are outputting the problem, outputting the results from each guess, and outputting the final score at the end.
3B.
Capture and paste two program code segments you developed during the administration of this task that contain a list (or other collection type) being used to manage complexity in your program.
i. The first program code segment must show how data have been stored in the list.
ii. The second program code segment must show the data in the same list being used, such as creating new data from the existing data or accessing multiple elements in the list, as part of fulfilling the program’s purpose.
Then, provide a written response that does all three of the following:
iii. Identifies the name of the list being used in this response
iv. Describes what the data contained in the list represent in your program
v. Explains how the selected list manages complexity in your program code by explaining why your program code could not be written, or how it would be written differently, if you did not use the list
?
?
First code segment:
var firstNumber = [8, 12, 6, 20, 10]; var secondNumber = [2, 3, 3, 4, 5];
Second code segment:
if (type == "M"){ println(firstNumber[i] + " * " + secondNumber[i]); correct = firstNumber[i] * secondNumber[i]; } else{ println(firstNumber[i] + " / " + secondNumber[i]); correct = firstNumber[i] / secondNumber[i]; }
The program uses two lists, firstNumber and secondNumber. Each list stores the values that are used in the math problems. firstNumber stores the first number in the problem and secondNumber stores the second number, which is the divisor for division problems.
The lists manages complexity in two different ways. First, by using the lists instead of individual variables, the list can store all the values in one variable and use a loop to create the problem. This also allows the program to expand easily by setting the loop length to the length of the lists. Without list, the program would have to use individual variables and written sequentially instead of with a loop.
Additionally, by storing the specific values for the problem it allows for the program to create division problems that result in integer answers. If the program generated random numbers, it would be much more complex to create problems that would result in integer answers.
3C.
Capture and paste two program code segments you developed during the administration of this task that contain a student-developed procedure that implements an algorithm used in your program and a call to that procedure.
i. The first program code segment must be a student-developed procedure that:
• Defines the procedure’s name and return type (if necessary)
• Contains and uses one or more parameters that have an effect on the functionality of the procedure
• Implements an algorithm that includes sequencing, selection, and iteration
ii. The second program code segment must show where your student-developed procedure is being called in your program.
Then, provide a written response that does both of the following:
iii. Describes in general what the identified procedure does and how it contributes to the overall functionality of the program
iv. Explains in detailed steps how the algorithm implemented in the identified procedure works. Your explanation must be detailed enough for someone else to recreate it.
First code segment:
function calculate(type){ var score = 0; var correct; for (var i=0; i < numProblems; i++){ if (type == "M"){ println(firstNumber[i] + " * " + secondNumber[i]); correct = firstNumber[i] * secondNumber[i]; } else{ println(firstNumber[i] + " / " + secondNumber[i]); correct = firstNumber[i] / secondNumber[i]; } println(); var answer = readInt("Enter your answer: "); if (answer == correct){ println("Correct!"); score ++; } else{ println("Good try!"); } println(); } return score; }
Second code segment:
var score = calculate(type) * 100 / numProblems;
The selected function contributes to the overall execution of the program by executing the quiz questions and returning how many questions were correct. The function takes the type of questions as an input and then returning the number of correct answers back to the main program.
The function does this by looping through all the values in the list to create a problem. Inside the loop, the function starts by printing out the first number of the problem from the firstNumber list. It then uses a selection statement to print out the operator and calculate the correct answer for either a division or multiplication problem based on the passes parameter. Next, it prints out the second number from the secondNumber list and asks the user for their guess. Using a selection statement, it compares the correct answer to the user's input and reports out the results. If the answer is correct, it also adds to a tracker variable that keeps track of the number of correct answers. At the end of the loop, the function terminates by returning the number of correct answers.
3D.
Provide a written response that does all three of the following:
i. Describes two calls to the procedure identified in written response 3c. Each call must pass a different argument(s) that causes a different segment of code in the algorithm to execute.
ii. Describes what condition(s) is being tested by each call to the procedure
iii. Identifies the result of each call
The two test cases are based on passing a different input to create different types of problem in the function (multiplication versus division). The first call will pass the letter M. Based on this call, the program should select a multiplication problems to print out. Inside the loop, the selection statement will execute the first part of the selection statement and print a problem with a * operator. It will also calculate the answer by multiplying the values from the firstNumber and secondNumber lists. The result of the call will be to print 5 multiplication problems and return the number of correct answers.
The second call will pass the letter D. Based on this call, the program should select a multiplication problem. Inside the loop, the selection statement will execute the else clause since D does not equal M. As a result, the code will print a / operator and calculate the answer by dividing the firstNumber value by the secondNumber value. The result of the call will be to print 5 division problems and return the number of correct answers.
Row 1:
The response earned the point for this row, meeting all six criteria:
• The video demonstrates the program receiving user input for both the problem type and the answers to the problem
• The program's purpose is to create a math quiz and the video demonstrates creating both a multiplication and division quiz.
• The program demonstrates output by creating the problems and displaying the results of each problem and the quiz
• The input and output is described in the response by stating "The inputs demonstrated are asking users to select a problem type and then providing a guess for the problems. The three outputs demonstrated are outputting the problem, outputting the results from each guess, and outputting the final score at the end."
Row 2:
The response earned the point for this row, meeting all three criteria:
• Two distinct code segments are shown
• The name of the list is described as firstNumber
• The response states what values are stored in the list: "firstNumber stores the first number in the problem"
Row 3:
The response earned the point for this row, meeting both criteria:
• The response includes the two lists firstNumber and secondNumber and are used in a loop to generate multiple problems
• The response explains how it manages complexity by stating "the list can store all the values in one variable and use a loop to create the problem." It also explains how the program would need to be written without a list by stating "Without list, the program would have to use individual variables and written sequentially instead of with a loop."
Row 4:
The response earned the point for this row, meeting both criteria:
• The response includes two distinct code segments, one defining a function calculate with the type parameter and the other calling this function
• The response describes what the procedure does by stating "The function taking the type of questions as an input and then returning the number of correct answers back to the main program" and describes how it relates to the overall function by stating "The selected function contributes to the overall execution of the program by executing the quiz questions and returning how many questions were correct."
Row 5:
The response earned the point for this row, meeting both criteria:
• The selected algorithm includes sequencing, selection (two if statements), and iteration (for loop for the problems)
• The response includes a detailed explanation of how to recreate the algorithm int he second paragraph of 3C.
Row 6:
The response earned the point for this row by meeting all three criteria:
• Two different calls are described, M and D. For each, the code segment that is executed is described. For example, "Inside the loop, the selection statement will execute the first part of the selection statement and print a problem with a * operator."
• For each call, the condition being tested is described. "The two test cases are based on passing a different input to create different types of problem in the function (multiplication versus division)."
• The result of each call is described in the response: "The result of the call will be to print 5 multiplication problems and return the number of correct answers."