Reference no: EM132356964
Programming Assignment ECS 10
Problem 1
Create a Python function called sumOfOdds which takes one argument, an integer greater than or equal to 1, and returns the result of adding the odd integers between 1 and the value of the given argument (inclusive). This function does not print. Do not use Python's sum() function.
Do not build a list. You may assume that the argument is valid. Here are some examples of how your function should behave:
>>> sumOfOdds(1)
1
>>> sumOfOdds(2)
1
>>> sumOfOdds(3)
4
>>> sumOfOdds(5)
9
>>> sumOfOdds(100)
2500
Problem 2
Create a Python function called countChar which takes two arguments, a single character and a string of arbitrary length, and returns the number of times the character appears in the string. Do not use Python's count method. Here are some examples of how your function should behave:
>>> countChar("c","abcbdebf")
1
>>> countChar("c","acbcdce")
3
>>> countChar("c","abdefg")
0
>>> countChar("x","")
0
Problem 3
Create a Python function called countDiffs that takes two arguments, both of which are strings of the same length. (You don't need to verify that the strings are the same length.) Your function should compare the two strings, character by character, and counts the number of times the two strings have different characters in the same location (i.e., at the same integer index).
Your function should then return that number. Here are some examples of how your function should behave:
>>> countDiffs("abcdef","acceef")
2
>>> countDiffs("abc","abc")
0
>>> countDiffs("abc","xyz")
3
>>> countDiffs("","")
0
Problem 4
Create a function called avgSumOfSquares that expects one argument, a list of numbers. The function computes the average of the sum of the squares of all the values entered and then returns that value. If the list is empty, the function returns None. Do not use sum() or len(). Here are some examples of how your function should behave:
>>> avgSumOfSquares([1,2,3,4,5])
11.0
>>> avgSumOfSquares([3.1, -7.8, 12, 5.5])
61.175
>>> x = avgSumOfSquares([])
>>> print(x)
None
>>> avgSumOfSquares([])
>>>
Problem 5
Create a function called morseCode which expects no parameters. This function will get its input entirely from the keyboard. The purpose of the function is to translate strings of text composed of the 26 letters of the English alphabet into International Morse Code and print the resulting string. Here is a sample of what the dialogue between your function and the user should look like:
Enter sentence to be translated (*** to end): i wish i had a pony
Morse code: .. .-- .. ... .... .. .... .- -.. .- .--.
--- -. -.--
Enter sentence to be translated (*** to end): the quick brown fox
jumped over the lazy dog
Morse code: - .... . --.- ..- .. -.-. -.- -... .-. --- .--
-. ..-. --- -..- .--- ..- -- .--. . -.. --- ...- . .-.
- .... . .-.. .- --.. -.-- -.. --- --.
Enter sentence to be translated (*** to end): will this work?
Morse code: .-- .. .-.. .-.. - .... .. ... .-- --- .-. -.- ###
Enter sentence to be translated (*** to end):
Morse code:
Enter sentence to be translated (*** to end): ***
Program has ended
As in the examples above, the printed output should have exactly one space between the Morse code patterns within a single word (i.e., "the" becomes "- .... .") and exactly three spaces between words (i.e., "the lazy" becomes "- .... . .-.. .- --.. -.--") .
You may assume that the text entered at the keyboard will include only the 26 lower case letters of the English alphabet. If something other than one of those 26 letters is entered, your function should translate the unexpected character into "###" as shown in the third
example above. Your function should print, not return, answers. You may use a while loop in asking the user for input.
The key for converting English letters to Morse code is given in the following list of lists.
Use this list of lists in your program. While Python's dictionary feature might be a better choice for this problem, you'll appreciate the practice with lists of lists. You may not add to or delete from this list of lists.
[["a",".-"],["b","-..."],["c","-.-."],["d","-.."],
["e","."],["f","..-."],["g","--."],["h","...."],
["i",".."],["j",".---"],["k","-.-"],["l",".-.."],
["m","--"],["n","-."],["o","---"],["p",".--."],
["q","--.-"],["r",".-."],["s","..."],["t","-"],
["u","..-"],["v","...-"],["w",".--"],["x","-..-"],
["y","-.--"],["z","--.."]]