Difference between revisions of "CSC111 Lab 4 Solutions 2014"
Line 135: | Line 135: | ||
% ( period, plural, newBalance ) ) | % ( period, plural, newBalance ) ) | ||
+ | # =========================================================== | ||
+ | # Challenge 4-5 | ||
+ | print( "\n========================\nChallenge 4-5\n========================" ) | ||
+ | print( "please enter positive integers at the prompt. Enter -1 to stop" ) | ||
+ | |||
+ | sum = 0 | ||
+ | x = 0 | ||
+ | count = 0 | ||
+ | while x != -1 and sum < 20: | ||
+ | x = int( input( "Enter a positive integer (-1 to stop): " ) ) | ||
+ | if x != -1: | ||
+ | sum = sum + x | ||
+ | count = count + 1 | ||
+ | |||
+ | print( "The sum of the %d number(s) you have entered is %d" % ( count, sum ) ) | ||
</source> | </source> | ||
Revision as of 13:22, 24 February 2014
--D. Thiebaut (talk) 20:31, 19 February 2014 (EST)
Solution Programs
# Solutions for Lab 4
# D. Thiebaut
# ===========================================================
# Exercise 1
print( "\n========================\nExercise 1\n========================" )
x = int( input( "enter an integer less than 3 or greater than 9: " ) )
while 3 <= x <= 9:
print( "invalid input!" )
x = int( input( "enter an integer less tan 3 or greater than 9: " ) )
print( "x = ", x )
# ===========================================================
# challenge 1
print( "\n========================\nChallenge 1\n========================" )
x = int( input( "enter an integer between 3 and 9: " ) )
while not (3 <= x <= 9 ):
print( "invalid input!" )
x = int( input( "enter an integer between 3 and 9: " ))
print( "x = ", x )
# ===========================================================
# Exercise 2
print( "\n========================\nExercise 2\n========================" )
#--- ask user question ---
answer = input( "Do you like chocolate (Y/N)? " )
answer = answer.lower().strip()
#--- keep on asking while invalid ---
while answer != 'y' and answer != 'yes' and answer != 'n' and answer != 'no':
answer = input( "Please reenter: " )
answer = answer.lower().strip()
#--- now that we know the answer, give feedback ---
if answer == 'n' or answer == 'no' :
print( "That's terrible" )
else:
print( "That's great!" )
# ===========================================================
# Exercise 3
print( "\n========================\nExercise 3\n========================" )
human = input( "what is your play (R, S, P)? " )
human = human.strip().lower()
while human != 'p' and human != 's' and human != 'r':
human = input( "I didn't get that. Please reenter: " )
print( "You have played", human.upper() )
# ===========================================================
# Challenge 2
# buggy program that is supposed to compute
# the sum of even numbers and stop as soon as
# the sum is greater than or equal to 20. Your
# job is to fix the program using PythonTutor.
print( "\n========================\nChallenge 2\n========================" )
# solution 1
sum = 0
num = 0
while sum < 20:
num = num + 2 # <--- fix by switching statements
sum = sum + num
print( "the sum of the even numbers from 0 to %d is %d\n"
% ( num, sum ) )
# solution 2
sum = 0
num = 0
while sum < 20:
sum = sum + num
num = num + 2
# num is always 2 larger that the associated sum
# decrease num to undo the last increment statement in the loop
num = num - 2
print( "the sum of the even numbers from 0 to %d is %d\n"
% ( num, sum ) )
# ===========================================================
# Exercise 5
print( "\n========================\nExercise 5\n========================" )
initBalance = 1000.00
intRate = 0.05
print( "initial balance = $%1.2f" % initBalance )
newBalance = initBalance
period = 0
while period < 4:
newBalance = newBalance + newBalance * intRate
period = period + 1
print( "after Investment Period %d, new balance = $%1.2f"
% ( period, newBalance ) )
# ===========================================================
# Challenge 3
print( "\n========================\nChallenge 3\n========================" )
initBalance = 1000.00
intRate = 0.05
print( "initial balance = $%1.2f" % initBalance )
newBalance = initBalance
period = 0
targetBalance = float( input( "What is your target balance? " ) )
while newBalance < targetBalance:
newBalance = newBalance + newBalance * intRate
period = period + 1
if period == 1:
plural = ""
else:
plural = "s"
print( "after %2d investment period%s, balance = $%6.2f"
% ( period, plural, newBalance ) )
# ===========================================================
# Challenge 4-5
print( "\n========================\nChallenge 4-5\n========================" )
print( "please enter positive integers at the prompt. Enter -1 to stop" )
sum = 0
x = 0
count = 0
while x != -1 and sum < 20:
x = int( input( "Enter a positive integer (-1 to stop): " ) )
if x != -1:
sum = sum + x
count = count + 1
print( "The sum of the %d number(s) you have entered is %d" % ( count, sum ) )