GMU CS 112 – Fall 2020 – Programming Assignment 51 CS 112 – Spring 2023 – Programming Assignment 3 Loops and Lists with Functions Due Date: Monday March 13, Noon (12 pm) This assignment...

Here is my assignment. Can you give me a quote?


GMU CS 112 – Fall 2020 – Programming Assignment 5 1 CS 112 – Spring 2023 – Programming Assignment 3 Loops and Lists with Functions Due Date: Monday March 13, Noon (12 pm) This assignment is an Individual Effort assignment. The Honor Code Applies. The purpose of this assignment is to practice using loops and basic lists effectively. See the “assignment basics” file for more detailed information about getting assistance, running the test file, grading, commenting, and many other extremely important things. Each assignment is governed by the rules in that document. Needed files: Download the attached file to use the tests we will use when grading your assignment • Tester3.py • PA3Template.py Background Loop statements allow us to run the same block of code repeatedly. You may use either/any looping commands that you choose (while or for). Lists are sequences that can be inspected value-by-value and modified at will. In this assignment we will use loops to perform calculations over one-dimensional lists. Consider that you may need nested or multiple loops for particular tasks below. Restrictions Any function that violates any of the following will lose significant number of points on the assignment. You may use (and will likely need): • The range() function • The len() function • The .append() method on lists You may not use anything that hasn’t been covered in class yet. You may not: • import anything • use slicing • use sets and dictionaries • use built-in functions (with the exception of range() and len() ) • use any string method • use list methods (exept for.append().) • use the del operator • use the in operator (except within the syntax of the for statement. In other words, use in with a for loop only. 2 • Insert comments in the lines you deem necessary Testing A template file (PA3Template.py) is provided which includes the basic outline of the functions you are required to complete. The tester will be calling your functions with different arguments and checking the return values to decide the correctness of your code. Your functions should not ask for user input and should not print anything. When you run your code with the tester or submit your code to Gradescope, you can see the results of the tests. Note: if you want to perform your own tests, you do not need to modify the tester. Simply call the functions you’ve written providing arguments you want to check. Submitting your code: Submit your .py file (correctly named) to Gradescope under Programming Assignment 3 • Link to Gradescope is in our Blackboard page and labeled "Gradescope” • Do not forget to name your file netID_2xx_PA3py, where netID is NOT your G-number but your GMU email ID and 2xx is your lab section number. • Do not forget to copy and paste the honor code statement from the Assignment Basics document to the beginning of your submission .py file. • Do not forget to comment your code • No hard coding! Grading Rubric: • 5pts – Correct Submission (file is named correctly) • 5pts – Well-Documented (code is commented) • 40pts –Correct Program Results ------------------------- Total: 50pts Note: if your code does not run (immediately crashes due to errors), it will receive at most 12 points. No exceptions. As stated on our syllabus, turning in running code is essential. 3 TASKS The signature of each function is provided below, do not make any changes to them otherwise the tester will not work properly. The following are the functions you must implement: 1) (7 pts) Write a function called sum_evens() that adds up all the even numbers from 1 up to the number given as a parameter, inclusively. Assumptions: The argument in the function calls are positive integers. Signature: def sum_evens(n): #your code here # … return sum1 Examples: sum_evens(2) → 2 sum_evens(10) → 30 sum_evens(19) → 90 2) (5 pts) Write a function called is_deficit() that determines if an integer is deficit. An integer is deficit if the sum of its divisors (not including the number itself) is smaller than the number itself. Assumptions: The argument in the function calls are positive integers. Signature: def is_deficit(n): #your code here # … return result Examples: is_deficit(8) → True #8 has factors 1, 4 & 2; 1+4+2<8, so="" 8="" is="" deficit="" is_deficit(12)="" →="" false="" #12="" has="" factors="" 1,="" 2,3,4,6;="" 1+2+3+4+6="">12, so 12 is not deficit 3) (5 pts) Write a function called list_deficits() that consumes two integers which are the top and bottom values of a range of integers. The function returns a list of deficit numbers in the inclusive range of the two integers given as parameters. 4 HINT: You can re-use your code from Task 2, but you (should) use/call your is_deficit() function from #2. Assumptions: Of the two integers given for the range, the first is less than the second. (You can assume that bottom is less than top.) Signature: def list_deficits(bottom, top): #your code here # … return def_list Examples: list_deficits(1,15) → [1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 13, 14, 15] list_deficits(28, 37) → [28, 29, 31, 32, 33, 34, 35, 37] 4) (7 pts) Write a function called hail_steps() that determines how many iterations are needed to reach a result of 1 following the following formula: ▪ If n is even, divide it by two. ▪ If n is odd, multiply it by 3 then add 1. ▪ If n is 1, then you're "done" Assumptions: The argument in the function call is an integer. Signature: def hail_steps(n): #your code here # … return num_steps Examples: hail_steps(4) → 2 hail_steps(12) → 9 hail_steps(55) → 112 5) (8 pts) Write a function called keep_em() that takes a list of names and a list of Booleans of the same length. This function strips out the names for which there is a corresponding value False in the Boolean list. Assumptions: The length of the list of names is not longer than the list of Booleans. Signature: def keep_em(names, keepers): #your code here # … 5 return new_list Examples: keep_em(['Ana','Buster','Carla','Demos',"Estaban;,'Farhad','Gerri', 'Herrah', 'Irma'],[True, True, False, False, False, True, True, True, False]) → ['Ana', 'Buster', 'Farhad', 'Gerri', 'Herrah',] keep_em(['Rita', 'Rory', 'Rusty'],[False, False, False]) → [] 6) (8 pts) Write a function called more_mults() that consumes top and bottom values for two lists, and a factor and returns a string The function examines two ranges of numbers and declares a 'winner' between the two lists. Given an integer, n, the winning list is the one with more multiples of n. When the two lists have the same number of multiples of the given number, then the shorter list wins. There is only a tie when the lists are the same length and have the same number of multiples of n, identified as the fifth parameter in the function call. Assumptions: The list-bottom numbers (positive integer) are less than or equal to their corresponding list- top number (positive integer). Also, the factor in the function call is also a positive integer. Signature: def more_mults (ls1_bottom, ls1_top, ls1_bottom, ls2_top, n): #your code here # … return <'list 1'="" or="" 'list="" 2'="" or="" 'tie'=""> Examples: more_mults(166, 312, 55, 220, 3) → List 2 more_mults(310, 400, 410, 500, 10) → Tie more_mults (310, 400, 410, 506, 10) → List 1 NOTE: The last argument in these function calls (the 3 or the 10) is the factor being tested on each list.
Mar 07, 2023
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here