###

PHYSICS 2235

Lab 4

Exercises

Assignment

tutorial.

#### Exercise 1.

The following is a code that computes the real roots of the quadratic equation.
Copy it to your directory. Lets call it quadratic.py.
#! /usr/local/bin/python3
import math
import sys
# Compute the real roots of the quadratic equation
# Ask the user for a, b, and c and get them
print("Solving the quadratic equation ax^2 + bx + c")
a, b, c = eval(input("Enter a, b, c "))
# Compute the "discriminant"
d = b*b - 4*a*c
# Get the sign of d
signd = 1
if (d < 0):
signd = -1
else:
signd = 1
if (signd > 0):
x1 = -b + math.sqrt(d)/2*a
x2 = -b - math.sqrt(d)/2*a
# 1,5,6
print("The roots are", x1, " ", x2)
else:
# a=4, b=2, c=4
print("The roots are complex")
sys.exit(1)

Lets go through it line by line
python3
import
hash tag
input list
condition statement
arithmatic operation
exiting
#### Exercise 2.

Last class we learned about for loop and the range function. To quickly re-cap.
for i in range(N):
statement
else:
statement
range(N) = 0,1,2,3,4,..,N-1
range(8,N) = 8,9,10,11,...,N-1
range(8,N,2) = 8,10,12,14,...,N-1

We could accomplish the same thing with the **while** loop.
i=0 # initialize i
while i < N:
statement
i = i + 1 #increment

Here the loops is executed as long as the condition after the while loop is true. for example try the following lines and run your code:
i=0 # initialize i
while (i < 5):
print (i)
i = i + 1 #increment

Now change the initialized value of i to 15.
i=15 # initialize i
while (i < 5):
print (i)
i = i + 1 #increment

This loop will not print out anything.
This is because the condition after the while loop is now false. The while loop will only run if the condition is true.

Note that you need to update the counter yourself (referred to as i in the next example).

Also notice that here we have to take care to place initialization and incremental statements in the correct place. And it takes three statements to do the job of one for statement. Also note that the loop can go indefinitely as long as the statement after the while loop is true. For example:
i=0 # initialize i
while (i < 5):
print (i)

or
i=15 # initialize i
while (True):
print (i)
i = i + 1 #increment

For those reasons the for loop is preferable unless we don't know the number of steps needed to solve your calculation.

####
Assignment due next Monday by noon

#### Problem 1.

In Exercise 1 you have made changes to fix the code. Submit your fixed version of the code .
Add a condition to the code to exit gracefully would the value of a or c be equals to 0. if a or c is zero the module should not output any root values neither.
Submit these changes to exercise one in a file named ** quadratic.py**.
#### Problem 2.

Write a python file that will let you know if your number **n** is even or odd. Where **n** is an integer command-line argument. Submit a file named **even_odd.py**. The file should print out if the number entered is even or odd.
#### Problem 3.

Write a python script **prime.py** that finds and prints to standard output all prime numbers greater than or equal to 2 and less than n, where n is an integer command-line argument.
To run the code.
python3 prime.py
Enter n: 20

where [n] is an arbitrary integer entered by the user.

The output should look something like:
the primes less than or equal to 20 are:
2
3
5
7
11
13
17
19
...

#### Problem 4 (BONUS).

You need to find the motion of a falling ball until the point where it hits the ground. However, you don't know how many steps the ball needs to take before it hits the ground. If the position of the ball is y(t) = 1000 - 9.4 * t**2 , using a time step of 0.1 and starting from t=0. Calculate the number of steps needed until the point where the ball hits the ground.
Write a python script that calculates and prints out the number of steps in **steps.py**.

Back to main Physics 2235 page