QuestionQuestion

Transcribed TextTranscribed Text

Each program must start with a multi-line comment as shown below. For Assignment 4 question 1 replace x with 4 and y with 1. Replace each occurrence of DentStew and Stew Dent with your name. Replace yyyy/mm/dd with the date you completed the program. # DentStewAxQy.py # # Assignement: x Question y # Author: Stew Dent # Version: yyyy/mm/dd # # Purpose: The purpose of the program. Begin each program with the following statement. from time import ctime The name of the file for each program should be of the form: LastnameFirstnameAnQm.py If your name is Stew Dent and the program is for assignment 4 question 1 then the name of the file for the program should be: DentStewA4Q1.py Question 1 The purpose of this question is to write a complete Python program that represents some trash cans using a two dimensional array. Each column of the array represents a trash can. Each row of the array represents bags of trash in the cans. Each trash can holds the same number of bags of trash. When one can is filled with bags of trash a message is displayed and the program terminates. Write a function that begins with the following header: def getPosInt(prompt): Call this function to get a positive integer from the user. Valid input is an int greater than zero. The function displays the prompt to tell the user what to enter. If the user does not enter valid input display the appropriate error message as described below and display the prompt again asking for more input from the user. Repeat this until the user enters valid input. When the user enters valid input return that input. Error situations:  If the user presses enter/return without entering anything display the message 'Missing input!'  If the input causes an exception when passed to eval display the value of the input and the message 'is not valid!'  If the input is not an int display the value of the input and the message 'is not an integer!'  If the input is not greater than 0 display the value of the input and the message 'is not greater than 0!' Write a function that begins with the following header: def getBoundedInt(prompt, lowerBound, upperBound): Call this function to get an integer between lowerBound and upperBound from the user. Valid input is an int between lowerBound and upperBound inclusive. The function displays the prompt to tell the user what to enter. If the user does not enter valid input display the appropriate error message as described below and display the prompt again asking for more input from the user. Repeat this until the user enters valid input. When the user enters valid input return that input. Error situations:  If the user presses enter/return without entering anything display the message 'Missing input!'  If the input causes an exception when passed to eval display the value of the input and the message 'is not valid!'  If the input is not an int display the value of the input and the message 'is not an integer!'  If the input is not between the lower bound and the upper bound display the value of the input followed by ' is not between ' followed by the value of the lower bound followed by ' and ' followed by the value of the upper bound followed by '!' Write a function that begins with the following header: def addTrashToCan(trashCans, can, counters): This function is given the array representing the trash cans, the index of the can to which a bag is to be added and the array of counters of the number of bags in each trash can. For example if there are 3 trash cans and counters is [1, 0, 2] then trash can 0 contains 1 bag of trash, trash can 1 does not contain any bags of trash and trash can 2 contains 2 bags of trash. In this example if can has the value 0, add a bag of trash to trashCans where the column is the value of can and the row is the value of counters[can]. The value to assign to this location is the new number of bags in the trash can. Increment the counter for the number of bags in the trash can. Return True if the trash can is full and False if the trash can is not full. A trash can is full if its counter is equal to the number of rows in trashCans. Write a function that begins with the following header: def displayTrashCans(trashCans): This function is given an array that represents the trash cans. Display the array values row by row, starting with the last row. The output should be similar to the following: | | | | | | | | | 3 | | | | | | 2 | 2 | 2 | | 1 | 1 | 1 | 1 | 1 | --- --- --- --- --- for 5 partially filled trash cans that can hold 4 bags of trash each. Trash can 0 is shown on the left and trash can 4 is shown on the right. Write a function that begins with the following header: def main(): This function calls getPosInt twice, once to get the number of trash cans and once to get the number of bags per trash can. Each trash can holds the same number of bags as the other trash cans. Using this information create two arrays, one that represents the trash cans where the number of rows is the number of bags per trash can and the number of columns is the number of trash cans, and another array that holds the number of bags in each trash can. Initialize each element of these arrays to zero. Zero represents an array element that does not hold a bag of trash. Repeatedly request the number of a trash can to which a bag of trash is to be added by calling getBoundedInt. Call addTrashToCan to add a bag of trash to the can. After each bag of trash is added to a trash can display the contents of the trash cans by calling displayTrashCans. If addTrashToCan returns True display a message indicating which can is full and that the trash should be picked up for disposal, and terminate the program. Before it ends this function must display the termination message. The main program should contain the function definitions, any imports needed by the functions and a call to main. For 5 trash cans that can each hold three bags of trash the output from the program might be: ----------------------------------------------------------- Enter the number of trash cans (> 0): 5 Enter the number of bags per trash can (> 0): 3 Enter a trash can number between 0 and 4: 1 | | | | | | | | | | | | | | 1 | | | | --- --- --- --- --- Enter a trash can number between 0 and 4: 2 | | | | | | | | | | | | | | 1 | 1 | | | --- --- --- --- --- Enter a trash can number between 0 and 4: 3 | | | | | | | | | | | | | | 1 | 1 | 1 | | --- --- --- --- --- Enter a trash can number between 0 and 4: 1 | | | | | | | | 2 | | | | | | 1 | 1 | 1 | | --- --- --- --- --- Enter a trash can number between 0 and 4: 3 | | | | | | | | 2 | | 2 | | | | 1 | 1 | 1 | | --- --- --- --- --- Enter a trash can number between 0 and 4: 4 | | | | | | | | 2 | | 2 | | | | 1 | 1 | 1 | 1 | --- --- --- --- --- Enter a trash can number between 0 and 4: 1 Trash can 1 is full! Time to have the trash picked up. | | 3 | | | | | | 2 | | 2 | | | | 1 | 1 | 1 | 1 | --- --- --- --- --- Programmed by Stew Dent. Date: Mon Jul 15 09:45:01 2019. End of processing. Hand in your complete program. Question 2 The purpose of this question is to write a complete Python program that finds the area of an ellipse using Simpson's Rule and the Monte Carlo technique. Write a function that begins with the following header: def getPosNumber(prompt): Call this function to get a positive number from the user. Valid input is an int or a float greater than zero. The function displays the prompt to tell the user what to enter. If the user does not enter valid input display the appropriate error message as described below and display the prompt again asking for more input from the user. Repeat this until the user enters valid input. When the user enters valid input return that input. Error situations:  If the user presses enter/return without entering anything display the message 'Missing input!'  If the input causes an exception when passed to eval display the value of the input and the message 'is not valid!'  If the input is not an int or a float display the value of the input and the message 'is not a number!'  If the input is not greater than 0 display the value of the input and the message 'is not greater than 0!' Write a function that begins with the following header: def ellipse(x, a, b): This function is given an array of x values x, the lengths of the major a and minor b axes of an ellipse and returns an array of y values that lie on the boundary of the ellipse. Given a value for x the corresponding value for y is computed as follows: y=√b 2−( b a ) 2 x 2 You must compute the array of y values from the x values using vector arithmetic. You must not use any loops in this function. Write a function that begins with the following header: def simpson(fx, a, b, major, minor, intervals): This function is given the name of a function fx to call, the lower bound a for the x values, the upper bound b for the x values, the length of the major and minor axes of an ellipse and the number of intervals. Use Simpson's rule to find the area under the curve for the function fx by calling fx with the arguments xValues, a and b. fx will return an array of yValues. xValues is an array whose values are determined by using the values of a, b and intervals as is h, which is the size of an interval. Return the area under the curve. Simpson's rule follows, see the week 7 notes for more information. f(x)dx@ a b ò b- a 3n f(a)+f(b)+4 f(a+(2i-1)h)+2 f(a+2ih) i=1 n/2-1 å i=1 n/2 å æ è ç ç ç ö ø ÷ ÷ ÷ You must not use any loops in this function. All arithmetic operations performed on the arrays must use vector arithmetic. Write a function that begins with the following header: def monteCarlo(fx, major, minor, points): This function is given the name fx of a function to call, the length of the major and minor axes of an ellipse and the number of points to create. Use the random function from the numpy.random module to create the random points whose x values are stored in one array and whose y values are stored in a second array. You also need to compute an array of y values on the boundary of the ellipse for the array of x values. Do this by calling fx with the arguments: the array of x values, the length of the major axes and the length of the minor axes of the ellipse. Return the area under the curve using the Monte Carlo technique discussed in class. You must not use any loops in this function. Write a function that begins with the following header: def main(): This function calls getPosNumber three times, once to get the number of intervals / points, once to get the length of the major axis of an ellipse and once to get the length of the minor axis of the ellipse. It computes the actual area of the ellipse using the formula: area = πab, where a is the length of the major axis and b is the length of the minor axis of the ellipse. Call simpson and monteCarlo to compute ¼ of the area of the ellipse. The output from the program should be as shown below. The main program should contain the function definitions, any imports needed by the functions and a call to main. Sample output from the program: -------------------------------------------- Enter the number of intervals / points: 10000000 Enter the length of the major axis: 5 Enter the length of the minor axis: 3 Area computed using Simpson's rule. ----------------------------------- Area from x=0.00 to x=5.00 is 11.780972950906419 Approximate area of ellipse is 47.123891803625675 Actual area of the ellipse is 47.123889803846893 The error is 1.999779e-06 Area computed using the Monte Carlo technique. ---------------------------------------------- Area from x=0.00 to x=5.00 is 11.784292500000001 Approximate area of ellipse is 47.137170000000005 Actual area of the ellipse is 47.123889803846893 The error is 1.328020e-02 Programmed by Stew Dent. Date: Mon Jul 15 10:28:47 2019. End of processing

Solution PreviewSolution Preview

These solutions may offer step-by-step problem-solving explanations or good writing examples that include modern styles of formatting and construction of bibliographies out of text citations and references. Students may use these solutions for personal skill-building and practice. Unethical use is strictly forbidden.

'''
Call this function to get a positive integer from the user. Valid input is an int greater
than zero. The function displays the prompt to tell the user what to enter. If the user
does not enter valid input display the appropriate error message as described below
and display the prompt again asking for more input from the user. Repeat this until
the user enters valid input. When the user enters valid input return that input.
'''
def getPosInt(prompt):
    while True:
       userInput = input(prompt)
       if userInput == "":
            print("Missing input!")
       else:
            try:
                userInput = eval(userInput)
                if type(userInput) is not int:
                   print(str(userInput) + " is not an integer!")
                elif userInput <= 0:
                   print(str(userInput) + " is not greater than 0!")
                else:
                   return userInput
            except:
                print(userInput + " is not valid!")

'''
Call this function to get an integer between lowerBound and upperBound from the
user. Valid input is an int between lowerBound and upperBound inclusive. The
function displays the prompt to tell the user what to enter. If the user does not enter
valid input display the appropriate error message as described below and display
the prompt again asking for more input from the user. Repeat this until the user
enters valid input. When the user enters valid input return that input.
'''
def getBoundedInt(prompt, lowerBound, upperBound):
    while True:
       userInput = input(prompt)
       if userInput...

By purchasing this solution you'll be able to access the following files:
Solution.zip.

50% discount

Hours
Minutes
Seconds
$40.00 $20.00
for this solution

PayPal, G Pay, ApplePay, Amazon Pay, and all major credit cards accepted.

Find A Tutor

View available Python Programming Tutors

Get College Homework Help.

Are you sure you don't want to upload any files?

Fast tutor response requires as much info as possible.

Decision:
Upload a file
Continue without uploading

SUBMIT YOUR HOMEWORK
We couldn't find that subject.
Please select the best match from the list below.

We'll send you an email right away. If it's not in your inbox, check your spam folder.

  • 1
  • 2
  • 3
Live Chats