Difference between revisions of "CSC111 Exercises with If-Statements"
(→Exercises) |
(→Exercise 5) |
||
Line 90: | Line 90: | ||
<br /> | <br /> | ||
+ | |||
+ | <br /><br /> | ||
<br /> | <br /> | ||
+ | |||
+ | <br /> | ||
+ | |||
+ | <br /> | ||
+ | =Solutions= | ||
+ | ==Solution 1 == | ||
+ | |||
+ | x = eval( input( "> " ) ) | ||
+ | y = eval( input( "> " ) ) | ||
+ | if y==0: | ||
+ | print( "Invalid input. Cannot divide by 0!" ) | ||
+ | else: | ||
+ | print( x, '/', y, '=', x/y ) | ||
+ | |||
+ | ==Solution 2 == | ||
+ | |||
+ | ans = input( "Do you like chocolate (Y/N)? " ) | ||
+ | if ans.lower()=='y': | ||
+ | print( "You said yes!" ) | ||
+ | else: | ||
+ | print( "Sorry you don't like it!" ) | ||
+ | |||
+ | ==Solution 3 == | ||
+ | |||
+ | L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ] | ||
+ | L2 = [] | ||
+ | for x in L: | ||
+ | if x >= 0: | ||
+ | L2.append( x ) | ||
+ | L = L2 | ||
+ | print( "List with positive numbers = ", L ) | ||
+ | |||
+ | L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ] | ||
+ | L2 = [] | ||
+ | for x in L: | ||
+ | if x >=0 and x % 5 == 0: | ||
+ | L2.append( x ) | ||
+ | L = L2 | ||
+ | print( "Positive numbers that are multiple of 5: ", L ) | ||
+ | |||
+ | ==Solution 4 == | ||
+ | |||
+ | <source lang="python"> | ||
+ | from graphics import * | ||
+ | import time | ||
+ | |||
+ | def main1(): | ||
+ | w = 500 | ||
+ | h = 500 | ||
+ | radius = 20 | ||
+ | win = GraphWin( "lab 7", w, h ) | ||
+ | |||
+ | c = Circle( Point( w/2, h/2 ), radius ) | ||
+ | c.setFill( "magenta" ) | ||
+ | c.draw( win ) | ||
+ | |||
+ | dirX = 5 # speed in the horizontal direction | ||
+ | dirY = 3 | ||
+ | |||
+ | for step in range( 1000 ): | ||
+ | # uncomment next line if ball moves too fast | ||
+ | # time.sleep( 0.05 ) # 5/100th sec. | ||
+ | c.move( dirX, dirY ) | ||
+ | |||
+ | # test to see if the ball is outside the window | ||
+ | if c.getCenter().getX() < 0 or c.getCenter().getX() > w: | ||
+ | dirX = -dirX | ||
+ | if c.getCenter().getY() < 0 or c.getCenter().getY() > h: | ||
+ | dirY = -dirY | ||
+ | |||
+ | Text( Point( w//2, h//2 ), "Click me to quit!" ).draw( win ) | ||
+ | win.getMouse() | ||
+ | win.close() | ||
+ | |||
+ | def main2(): | ||
+ | L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ] | ||
+ | print( "L = ", L ) | ||
+ | |||
+ | def main3(): | ||
+ | x = eval( input( "> " ) ) | ||
+ | y = eval( input( "> " ) ) | ||
+ | print( x, '/', y, '=', x/y ) | ||
+ | |||
+ | #main1() | ||
+ | #main2() | ||
+ | main3() | ||
+ | </source> | ||
+ | |||
+ | <br /> | ||
+ | |||
+ | <br /><br /> | ||
+ | |||
+ | <br /> | ||
+ | |||
+ | <br /> | ||
+ | |||
[[Category:CSC111]][[Category:Python]][[Category:Exercises]] | [[Category:CSC111]][[Category:Python]][[Category:Exercises]] |
Revision as of 16:39, 22 October 2011
--D. Thiebaut 09:23, 20 October 2011 (EDT)
Contents
Exercises
You can use this program to test your answers to the questions:
from graphics import *
import time
def main1():
w = 500
h = 500
radius = 20
win = GraphWin( "lab 7", w, h )
c = Circle( Point( w/2, h/2 ), radius )
c.setFill( "magenta" )
c.draw( win )
dirX = 5 # speed in the horizontal direction
for step in range( 1000 ):
# uncomment next line if ball moves too fast
# time.sleep( 0.05 ) # 5/100th sec.
c.move( dirX, 1 )
Text( Point( w//2, h//2 ), "Click me to quit!" ).draw( win )
win.getMouse()
win.close()
def main2():
L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ]
print( "L = ", L )
def main3():
x = eval( input( "> " ) )
y = eval( input( "> " ) )
print( x, '/', y, '=', x/y )
#main1()
#main2()
main3()
Exericse 1
- Program asks for 2 numbers from user, then show the result of dividing first by second.
x = eval( input( "> " ) )
y = eval( input( "> " ) )
print( x, '/', y, '=', x/y )
- Make this program robust!
Exercise 2
- User is asked a question and must respond by Yes or by No, using the letter y or n only. Make the program detect correctly the user input.
Exercise 3
L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ]
- Given the list above, write the code necessary to remove the numbers that are strictly less than 0 from L
- Same question, but we want the list to contain only the positive numbers that are multiples of 5.
Exercise 4
- Write the code for a graphics program that will make a circle move from one end of the window to the other, and such that the circle will be yellow in the left half of the window, and will turn red when it is in the right half.
Exercise 5
- Make the ball bounce off the right vertical side of the window
Solutions
Solution 1
x = eval( input( "> " ) ) y = eval( input( "> " ) ) if y==0: print( "Invalid input. Cannot divide by 0!" ) else: print( x, '/', y, '=', x/y )
Solution 2
ans = input( "Do you like chocolate (Y/N)? " ) if ans.lower()=='y': print( "You said yes!" ) else: print( "Sorry you don't like it!" )
Solution 3
L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ] L2 = [] for x in L: if x >= 0: L2.append( x ) L = L2 print( "List with positive numbers = ", L ) L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ] L2 = [] for x in L: if x >=0 and x % 5 == 0: L2.append( x ) L = L2 print( "Positive numbers that are multiple of 5: ", L )
Solution 4
from graphics import *
import time
def main1():
w = 500
h = 500
radius = 20
win = GraphWin( "lab 7", w, h )
c = Circle( Point( w/2, h/2 ), radius )
c.setFill( "magenta" )
c.draw( win )
dirX = 5 # speed in the horizontal direction
dirY = 3
for step in range( 1000 ):
# uncomment next line if ball moves too fast
# time.sleep( 0.05 ) # 5/100th sec.
c.move( dirX, dirY )
# test to see if the ball is outside the window
if c.getCenter().getX() < 0 or c.getCenter().getX() > w:
dirX = -dirX
if c.getCenter().getY() < 0 or c.getCenter().getY() > h:
dirY = -dirY
Text( Point( w//2, h//2 ), "Click me to quit!" ).draw( win )
win.getMouse()
win.close()
def main2():
L = [ 1, 10, -3, 30, -10, -10, -10, 2, 55 ]
print( "L = ", L )
def main3():
x = eval( input( "> " ) )
y = eval( input( "> " ) )
print( x, '/', y, '=', x/y )
#main1()
#main2()
main3()