Due: 02 November by 11:00 pm

Weight: This assignment is worth4%of your final grade.

Purpose, Skills, & Knowledge: The purposes of this assignment are:

- To practice the same problem-solving skills we’ve learning thus far, but in Python.
- To practice running Python scripts from R.

Assessment: Each question indicates the % of the assignment grade, summing to 100%. The credit for each question will be assigned as follows:

- 0% for not attempting a response.
- 50% for attempting the question but with
majorerrors.- 75% for attempting the question but with
minorerrors.- 100% for correctly answering the question.

Rules:

- Problems marked
SOLOmay not be worked on with other classmates, though you may consult instructors for help.- For problems marked
COLLABORATIVE, you may work in groups of up to 3 students who are in this course this semester. You may not split up the work – everyone must work on every problem. And you may not simply copy any code but rather truly work together.- Even though you work collaboratively, you still must submit your own solutions.

Download and use this template for your assignment. Inside the “hw8” folder, open and edit the R script called “hw8.py” and fill out your name, GW Net ID, and the names of anyone you worked with on this assignment.

Writing test functionsFor each of the following functions, write a test function first, and then write the function.

Your test functions will count for half of the available credit for each problem. Think carefully about the test cases to include in your test functions.

`kthDigit(x, k)`

[SOLO, 15%]Given two integers, `x`

and `k`

, return the kth digit of `x`

, counting from the right. So:

`kthDigit(789, 1)`

returns`9`

`kthDigit(789, 2)`

returns`8`

`kthDigit(789, 3)`

returns`7`

`kthDigit(789, 4)`

returns`0`

Negative numbers should work, too, so `kthDigit(-789, 1)`

returns `9`

.

`isEvenPositiveInt(x)`

[SOLO, 15%]Given an arbitrary value `x`

, return `True`

if it is an integer, and it is positive, and it is even (all 3 must be true), or `False`

otherwise. If the value `x`

is not an integer, the function should return `False`

rather than error. So, `isEvenPositiveInt("yikes!")`

returns `False`

, and `isEvenPositiveInt(123456)`

returns `True`

.

`getTheCents(n)`

[SOLO, 15%]Write the function `getTheCents(n)`

which takes a value `n`

that represents a payment in US dollars and returns the number of cents in the payment. For example, if `n`

is `2.45`

, the function should return `45`

. If `n`

is an integer, the function should return `0`

, as it has `0`

cents; if it isn’t a number, it should return `None`

, because a non-number payment make no cents (ha!). If the payment has partial cents (for example, `3.953`

), it should be rounded to the nearest cent (in this case, `95`

cents).

`isPrime(n)`

[COLLABORATIVE, 15%]Write the function `isPrime(n)`

which takes a non-negative integer, `n`

, and returns `True`

if it is a prime number and `False`

otherwise.

`numDigits(n)`

[SOLO, 15%]Write the function `numDigits(n)`

that takes a *possibly-negative* integer and returns the number of digits in it. So, `numDigits(12345)`

returns `5`

, `numDigits(0)`

returns `1`

, and `numDigits(-111)`

returns `3`

. One way you could solve this is to convert `n`

to a string and use `str_length()`

, but you cannot do that since you may not use strings here.

`reverseString(s)`

[COLLABORATIVE, 15%]Write a function that returns the string in reverse order. So if `s`

equals `"abcde"`

, `reverseString(s)`

should equal `"edcba"`

. You may assume that `s`

only contains upper and/or lower case letters, but your solution must correctly return capital letters in their appropriate order. For example, `reverseString("aWordWithCaps")`

should return `"spaChtiWdroWa"`

.

Create a zip file of all the files in your R project folder for this assignment and submit the zip file on Blackboard.

Tuesdays | 12:45 - 3:15 PM | Dr. John Paul Helveston | jph@gwu.edu

Content 2020 John Paul Helveston. See the licensing page for details.