15-112: Introduction to Programming and Computer Science, Fall 2013

advertisement
15-122 Homework 1
Page 1 of 3
15-112: Introduction to Programming and Computer Science, Fall
2013
Homework 1 Programming: Input, Output, Expressions, and
Variables
Due: Tuesday, September 3, 2013 by 23:59
Welcome to 15-112! This programming homework is designed to get you more practise with
reading values from the keyboard, using expressions to process these value and showing
results on the screen.
Your submission will be made through the web interface of Autolab. To do so, please
create a zipped file for all the files that you will be submitting (zip). To create a zip file,
selected all the files then right click, select ’send to’ option and then click on compressed
(zipped) folder. Submit the newly created zipped file at:
https://autolab.cs.cmu.edu/15112q-f13
1
Fahrenheit To Celcius Conversion
Task 1 (3 pts) Write a program that reads in a number representing temperature in Fahrenheit . Your program should convert Fahrenheit degrees into celcius and print the result. Make
sure you save this program in a file called fahrenheitToCelcius.py (Use the exact same name
with the appropriate alphabets capitalized!). If the user enters 45.5 for Fahrenheit , your
result should be printed in the following format (make sure your code follows this format
exactly): “ 45.5 degree Fahrenheit is 7.5 Celcius”
2
Digitization
Task 2 (4 pts) Write a program that reads an integer from the user and prints the sum of
it’s units, tens, and hundreds digits. For example, if the number entered by the user is 256,
your program should print the 13. If the number entered by the user is 37, your program
should print 10. If the number entered by the user is 4, your program should print 4. Write
this program in a file called “sumofDigits.py”. The output of your program should be exactly
like the following format:
“The sum of digits for 37 is 10”
3
Whose Line Is It Anyway?
Task 3 (3 pts) Write a program that will print the equation of a line, given two points on
the line. Write this program in a file called “EquationOfaLine.py”. The equation of a line is
15-122 Homework 1
Page 2 of 3
written as:
y = mx + b
where m is the slope of the line and b is its y-intercept.
To get two points on the line (x1 ,y1) and (x2 ,y2), read four values from the user. You
can assume that all points entered by the user will always be integers.
If the user enters 2 for x1, 3 for y1, 6 for x2 and 4 for y2, your program should print:
“The equation of the line is y = 0.25x + 2.5”
4
Party by the pool
Pool balls are arranged in rows where the first row contains 1 pool ball and each row contains
1 more pool ball than the previous row. Thus, if there are 3 rows, then we’d have 6 total
pool balls (1+2+3).
Task 4 (4 pts) Write a Program that reads the number of rows as an integer from the user
and prints the number of pool balls in that number of rows. Write this program in a file called
“PoolBalls.py”.For example, if the user enters 4, your program should print “Number of balls
in 4 rows is 10”. Do not use loops.
5
Trig of Trade
In mathematics, the trigonometric functions (also called circular functions) are functions of
an angle. They are used to relate the angles of a triangle to the lengths of the sides of a triangle. Trigonometric functions are important in the study of triangles and modeling periodic
phenomena, among many other applications. The most familiar trigonometric functions are
the sine, cosine, and tangent. (Source - Wikipedia)
We have all studied these functions - Sine, Cosine and Tangent in grade school. Before
the use of computers became widespread, the values of these functions were determined by
looking them up in tables. Modern computers use a variety of techniques to calculate these
values. One simple way of estimating these functions is to use something called Taylor series.
Without going into the details of how and why this series works, the following equations are
used for estimating the trigonometric functions.
sin(x) = x −
x3
3!
+
x5
5!
−
x7
7!
+ ...
cos(x) = 1 −
x2
2!
+
x4
4!
−
x6
6!
+ ...
tan(x) = x + 13 x3 +
2 5
x
15
+
17 7
x
315
+ ...
Task 5 (6 pts) For this task, write a program that asks the user to enter a value for angle.
(this is the angle in degrees for which you will calculate the trigonometric values). Write this
program in a file called “Trig.py”.The above equations require the angle to be in radians. To
convert the user input to radians, use the following equation:
π
radians = degrees ∗ 180
15-122 Homework 1
Page 3 of 3
Calculate the Sine, Cosine and Tangent for this angle in radians by using the appropriate
equations given above. Although this series consists of infinite terms, you will only use the
first 4 terms as shown in the equations above. Print these values for Sine, Cosine and
Tangent. Use the same value of x to calculate Sine, Cosine and Tangent but this time using
the math library in Python - math.sin(x), math.cos(x), and math.tan(x) (Don’t forget to
import the math library). Now find and print the percentage error between your calculation
and those obtained by the Python library. Let’s assume that “mysinecalc” is the value of
sin(x) calculated by you using the equations defined earlier and “libsinecalc” is the value of
sin(x) calculated by Python library. The percentage error would be:
(mysinecal - libsinecalc)/libsinecalc
To summarize, you will have to implement the following steps for this question.
1. Read value for angle from the user in degrees
2. Change the angle to radians
3. Estimate the Sine of this angle by using Taylor series.
4. Print the estimated value of Sine.
5. Calculate the Sine of the same angle by using math.sin( ) function.
6. Print the calculated value of Sine.
7. Calculate and print the percentage of error between the two values of Sine obtained in
steps 3 and 5
8. Repeat steps 3-7 for Cosine and Tangent values
The output of your program should follow the following format (Notice that most numbers in
this sample are bogus, your program should have numbers that make sense):
Enter angle: 60
The Sine of 60 degrees using Taylor series is 0.2
The Sine of 60 degrees using math.sin() is 0.55
Percentage Error is: 10%
The CoSine of 60 degrees using Taylor series is 0.8
The CoSine of 60 degrees using math.cos() is 0.3
Percentage Error is: 20%
The Tangent of 60 degrees using Taylor series is 0.6
The Tangent of 60 degrees using math.tan() is 0.88
Percentage Error is: 5%
Download