# CS1210, Fall 2021, Discussion section 1.
# Three parts:
# Part 1: make sure to modify the hawkID() function to return your HawekID. This
# is required for EVERY discussion and homework assignment
# Part 2: read, execute, and review the functions. No changes needed.
# Part 3: complete the three functions as specified.
#
# Submit the whole modified file to ICON.
#####
#
# Part 1. Replace 'yourhawkid' with your Hawk ID
# E.g. Prof. Cremer would change "yourhawkid" to "cremer"
#
def hawkID():
return("yourhawkid")
#####
#
# PART 2. Just read, execute, and understand. No changes necessary.
#
# 2a and 2b. Understand that fuctions averageOf and avarageOfV2 are equivalent.
# averageOfV2 simply uses some temporary local variables along the way
# to producing the same result. It's probably not necessary in these simple
# functions BUT I STRONGLY ENCOURAGE you to write simple lines of code and
# use temporary variables with MEANINGFUL names. For complex functions, it
# can be SUPER USEFUL for readability and debugging.
# 2c and 2d. Make sure you understand the difference between print and return
# First, a function that *returns* the average of three numbers. Two versions:
#
# 2a. without using additional variables
#
def averageOf(num1, num2, num3):
return( (num1 + num2 + num3) / 3 )
# 2b. using additional variables for intermediate results - a good habit
#
def averageOfV2(num1, num2, num3):
sumOfInputs = num1 + num2 + num3
average = sumOfInputs / 3
return average
# Next two functions that are similar except that one *prints* and one *returns* values.
#
# 2c. printMinAndMax *prints* values rather than *returning* results
#
def printMinAndMax(num1, num2, num3):
minOfInputs = min(num1, num2, num3)
maxOfInputs = max(num1, num2, num3)
print((minOfInputs, maxOfInputs))
# 2d. *Similar* to 0C above but importantly different. Does not print anything.
# Returns value for caller to use as desired.
#
def returnMinAndMax(num1, num2, num3):
minOfInputs = min(num1, num2, num3)
maxOfInputs = max(num1, num2, num3)
return (minOfInputs, maxOfInputs)
# Try in Python shell:
# >>> printMinAndMax(2, 9, 3)
# >>> returnMinAndMax(2, 9, 3)
# Results in the Python shell might look the same but different things are happening.
# Continue with
# >>> minAndMax = printMinAndMax(2, 9, 3)
# (2, 9)
# >>> minAndMax
# >>>
# and compare with
# >>> minAndMax = returnMinAndMax(2, 9, 3)
# >>> minAndMax
# (2, 9)
# >>>
# Understand the difference!!
#####
# Part 3.
# 3a. Complete simple function kilometersFromMiles(miles)
# that takes a floating point value, miles, representing a distance in miles and returns
# a floating value equal to the same distance expressed in kilometers. Use a good conversion
# factor; try to use official "SI" factors!
#
def kilometersFromMiles(miles):
# complete this function!
return #computedKilometers
# 3b. Complete simple function litersFromGallons(gallons)
# that takes a floating point value, gallons, representing a volume in gallons and returns
# a floating value equal to the same volume expressed in liters. Use a good conversion
# factor; try to use official "SI" factors!
#
def litersFromGallons(gallons):
# complete this function!
return #computedLiters
# 3c. Complete function costOfTrip(distanceInKM, speedInKPH, kmPerLiter, gasCostPerLiter)
# that computes the time and cost of a trip based on speed and fuel
# efficiency of a vehicle, and RETURNS both the time and cost, in that order
#
# The inputs are all floats:
# - distanceInKilometers: the trip distance in kilometers
# - speedInKPH: the speed of the trip in kilometers per hour
# - kmPerLiter: the number of kilometers traveled on one liter of gas
# - gasCostPerLiter: the cost of one liter of gas in dollars
#
# The function must return two things:
# - time required for trip (in hours, a floating point value)
# - gas cost for trip (in dollars, a floating point value)
#
# Note: The calculations in this function are closely related to some
# of the calculations needed in HW1!
#
# Pseudocode/outline:
#
# costOfTrip(distanceInKilometers, speedInKPH, kmPerLiter, gasCostPerLiter):
#
# # 1. calculate time required in hours (from distance and speed),
# associating result with a variable
# # 2. calculate liters of gas needed (from distance and kpl),
# associating result with a different variable
# # 3. calculate total cost of gas (from gas cost per liter and liters needed),
# again saving result in a variable.
#
# # 4. return the two values, using values saved in the above calculations.
#
# Example usage:
#
# >>> costOfTrip(100.0, 20.0, 16.0, 2.25)
# (5.0, 14.0625)
#
def costOfTrip(distanceInKilometers, speedInKPH, kmPerLiter, gasCostPerLiter):
# complete this function!
return #timeRequired, gasCost