During this activity, students should be able to:
if
statements).
This activity helps students develop the following skills, values and attitudes: proficiency in English, ability to analyze and synthesize, capacity to identify and solve problems, and efficient use of computer systems.
Individually or in pairs, solve the following set of problems using Python 3.5. Run and test each of your programs to make sure they work as expected.
Each source file must include at the top the authors’ personal information (student ID and name) within comments. For example:
# Authors: # A01166611 Pepper Pots # A01160611 Anthony Stark # # Description of problem being solved. # # February 22, 2017. . . (The rest of the program goes here) .
All the following problems must be solved using if
conditionals.
Write a program called grade.py
. Define in this program a function called grade(score)
that returns a string with the corresponding letter
grade for a given numerical score. Use the values from the following table:
Score | Grade |
---|---|
From 95 to 100 |
'A'
|
From 85 to 94 |
'B'
|
From 70 to 84 |
'C'
|
From 50 to 69 |
'D'
|
From 0 to 49 |
'F'
|
Any value less than 0 or greater than 100 |
'ERROR'
|
The program’s main()
function should prompt the user for a score and print the corresponding grade.
Example (user input is in blue):
Give me a score between 0 and 100: 76
The grade is: C
Write a program called max3.py
. Define in this program a function called max3(x, y, z)
that returns the largest of x
, y
, and z
. Do
not use the built-in Python function max()
. The program’s main()
function should prompt three values from the user and print the one that is largest.
Example (user input is in blue):
First value: -34 Second value: 25 Third value: 16 The largest value is: 25
Write a program called sort3.py
. Define in this program a function called sort3(x, y, z)
that returns the three values x
, y
, and z
in sorted order (a, b, c)
, where a
≤ b
≤ c
. Do not use any built-in
Python sorting functions, but you may put if
statements inside of other
if
statements. The program’s main()
function should prompt three values from the user and print them sorted.
Example 1 (user input is in blue):
First value: -34 Second value: 16 Third value: 25 Sorted values: (-34, 16, 25)
Example 2:
First value: -34 Second value: 25 Third value: 16 Sorted values: (-34, 16, 25)
Example 3:
First value: 16 Second value: -34 Third value: 25 Sorted values: (-34, 16, 25)
Example 4:
First value: 16 Second value: 25 Third value: -34 Sorted values: (-34, 16, 25)
Example 5:
First value: 25 Second value: -34 Third value: 16 Sorted values: (-34, 16, 25)
Example 6:
First value: 25 Second value: 16 Third value: -34 Sorted values: (-34, 16, 25)
Given a quadratic equation ax2+bx+c, we define its discriminant as:
If the discriminant is a positive number greater than zero, the quadratic equation has two real roots. If the discriminant is equal to zero, the quadratic equation has one real root. Finally, if the discriminant is a negative number, the quadratic equation has no real roots.
Write a program called roots.py
. Define in this program a function called numroots(a, b, c)
that returns the number of real roots (0, 1, or 2) for a quadratic equation given its coefficients a
, b
, and c
. Use the following main()
function to test your numroots()
function:
def main(): print(numroots(4, 5, 1)) print(numroots(2, 4, 2)) print(numroots(1, 2, 3))
The program’s output should look like this:
2 1 0
Write a program called generation.py
. Define in this program a function called generation(y)
that returns a string indicating the generation to which a person belongs given the year y
in which she was born. Use the information in this table:
Year Born | Generation |
---|---|
1945 or before |
'Mature'
|
Between 1946 and 1964 |
'Baby Boomer'
|
Between 1965 and 1980 |
'Generation X'
|
Between 1981 and 2000 |
'Millennium'
|
2001 or after |
'Boomlet'
|
Use the following main()
function to test your generation()
function:
def main(): for i in range(1945, 2006, 5): print(i, generation(i))
The program’s output should look like this:
1945 Mature 1950 Baby Boomer 1955 Baby Boomer 1960 Baby Boomer 1965 Generation X 1970 Generation X 1975 Generation X 1980 Generation X 1985 Millennium 1990 Millennium 1995 Millennium 2000 Millennium 2005 Boomlet
Write a program called triangles.py
. Define in this program a function called triangle_kind(x1, y1, x2, y2, x3, y3)
. The six input parameters correspond to three points on a two-dimensional coordinate plane: (x1, y1), (x2, y2), and (x3, y3). Assume the three points are connected in order to form a triangle. The function should return a string indicating what kind of triangle they formed: 'right'
, 'equilateral'
, 'isosceles'
, or 'scalene'
.
Have in mind that:
The distance d between two points (x1, y1) and (x2, y2) can be calculated using this formula:
A triangle is right if Pythagoras’ theorem holds true. That is, for a triangle with sides of length a, b, and c (where a < c, and b < c):
VERY IMPORTANT: Given the imprecisions that might occur when comparing two floating point numbers p
and q
, instead of doing:
p == q
you should use the isclose()
from the Python 3.5 math
module, like this:
isclose(p, q)
And, instead of doing:
p != q
do this:
not isclose(p, q)
Don’t forget to import the isclose()
function when using it in your programs:
from math import isclose
Use the following main()
function to test your triangle_kind()
function:
from math import sqrt def main(): print(triangle_kind(1, 2, 2, 3, 4, 2)) print(triangle_kind(1, 1, 2, 3, 3, 1)) print(triangle_kind(1, 3, 1, 5, 1 + sqrt(3), 4)) print(triangle_kind(5, 5, 3, 5, 3, 1))
The program’s output should be:
scalene isosceles equilateral right
Some of the previous problems were taken from [JOHNSON] chapter 6 and from:
Kenneth Lambert.
Fundamentals of Python: From First Programs through Data Structures.
CENGAGE Learning, 2010.
p. 118.
Create a ZIP file called conditionals.zip
containing only the six programs you wrote (grade.py
, max3.py
, sort3.py
, roots.py
, generation.py
, and triangles.py
).
To deliver the conditionals.zip
file, please provide the following information:
If this activity was developed by a team of two people, only one person is required to deliver it. No activity will be accepted through e-mail or any other means.
Due date is Wednesday, February 22.
This activity will be evaluated using the following criteria:
-10 | One or more programs don’t contain within comments the authors’ personal information. |
---|---|
DA | One or more programs were plagiarized. |
10-100 | Depending on the amount of problems that were solved correctly. |