CMU Coding Bootcamp

feat: add sep30 level 3

thecoded.prof a4535742 64635a71

verified
+2 -2
python/assignments/sep30/level1/numberOfBricks.py
··· 1 - import math 1 + from math import ceil 2 2 def numberOfBricks(steps): 3 - return math.ceil((steps*(steps+1))/2) 3 + return ceil((steps*(steps+1))/2) 4 4 5 5 print('Testing numberOfBricks()...', end='') 6 6 assert(numberOfBricks(0) == 0)
+7 -7
python/assignments/sep30/level1/triangleArea.py
··· 1 - import math 1 + from math import sqrt 2 2 def almostEqual(x, y): 3 3 return (abs(x - y) < 10**-9) 4 4 5 5 def triangleArea(a, b, c): 6 6 semiperimeter = .5 * (a + b + c) 7 - return math.sqrt(semiperimeter * (semiperimeter - a) * (semiperimeter - b) * (semiperimeter - c)) 7 + return sqrt(semiperimeter * (semiperimeter - a) * (semiperimeter - b) * (semiperimeter - c)) 8 8 9 9 10 10 print('Testing triangleArea()...', end='') ··· 13 13 assert(almostEqual(triangleArea(7, 25, 24), 84)) 14 14 assert(almostEqual(triangleArea(8, 15, 17), 60)) 15 15 assert(almostEqual(triangleArea(0, 0, 0), 0)) 16 - assert(almostEqual(triangleArea(1, 1, 1), math.sqrt(3)/4)) 17 - assert(almostEqual(triangleArea(5, 5, 5), 25*math.sqrt(3)/4)) 18 - assert(almostEqual(triangleArea(12, 12, 12), 144*math.sqrt(3)/4)) 19 - assert(almostEqual(triangleArea(7, 12, 18), math.sqrt(11063)/4)) 20 - assert(almostEqual(triangleArea(9.1, 11.7, 3), 7*math.sqrt(3026)/50)) 16 + assert(almostEqual(triangleArea(1, 1, 1), sqrt(3)/4)) 17 + assert(almostEqual(triangleArea(5, 5, 5), 25*sqrt(3)/4)) 18 + assert(almostEqual(triangleArea(12, 12, 12), 144*sqrt(3)/4)) 19 + assert(almostEqual(triangleArea(7, 12, 18), sqrt(11063)/4)) 20 + assert(almostEqual(triangleArea(9.1, 11.7, 3), 7*sqrt(3026)/50)) 21 21 print('Passed!')
+18
python/assignments/sep30/level3/numberOfSteps.py
··· 1 + from math import sqrt,ceil 2 + 3 + def numberOfSteps(bricks: int): 4 + return ceil((-1 + sqrt(1+8*bricks))/2) 5 + 6 + print('Testing numberOfSteps()...', end='') 7 + assert(numberOfSteps(0) == 0) 8 + assert(numberOfSteps(1) == 1) 9 + assert(numberOfSteps(2) == 2) 10 + assert(numberOfSteps(3) == 2) 11 + assert(numberOfSteps(4) == 3) 12 + assert(numberOfSteps(6) == 3) 13 + assert(numberOfSteps(7) == 4) 14 + assert(numberOfSteps(10) == 4) 15 + assert(numberOfSteps(11) == 5) 16 + assert(numberOfSteps(55) == 10) 17 + assert(numberOfSteps(56) == 11) 18 + print('Passed!')
+25
python/assignments/sep30/level3/rectanglesOverlap.py
··· 1 + def rectanglesOverlap(ax1:int, ay1:int, aw:float, ah:float, bx1:int, by1:int, bw:float, bh:float): 2 + ax2 = ax1 + aw 3 + ay2 = ay1 + ah 4 + bx2 = bx1 + bw 5 + by2 = by1 + bh 6 + return (ax1 <= bx2 and ax2 >= bx1) and (ay1 <= by2 and ay2 >= by1) 7 + 8 + print('Testing rectanglesOverlap()...', end='') 9 + # Intersect at right of rectangle 1 10 + assert(rectanglesOverlap(1,1,5,1,6,1,2,2) == True) 11 + # Intersect at top of rectangle 1 12 + assert(rectanglesOverlap(1,4,5,3,1,5,8,3) == True) 13 + # Intersect at left of rectangle 1 14 + assert(rectanglesOverlap(1,5,6,6,-4,7,5,3) == True) 15 + # Intersect at bottom of rectanagle 1 16 + assert(rectanglesOverlap(10,10,3,3,9,7,3,3) == True) 17 + # Partially overlapping rectangles 18 + assert(rectanglesOverlap(1,7,3,6,3,4,2,5) == True) 19 + # Don't intersect 20 + assert(rectanglesOverlap(1,4,3,3,10,10,5,5) == False) 21 + # Don't intersect, but x-coordinates overlap 22 + assert(rectanglesOverlap(1,4,30,3,10,10,5,5) == False) 23 + # Don't intersect, but y-coordinates overlap 24 + assert(rectanglesOverlap(1,4,3,15,10,10,5,5) == False) 25 + print('Passed!')
+25
python/assignments/sep30/level3/triangeAreaByCoordinates.py
··· 1 + from math import sqrt 2 + 3 + def almostEqual(x: float, y: float): 4 + return (abs(x - y) < 10**-9) 5 + 6 + def distance(a: tuple[int, int], b: tuple[int, int]): 7 + return sqrt((b[0]-a[0])**2 + (b[1]-a[1])**2) 8 + 9 + def triangleArea(a: float, b: float, c: float): 10 + semiperimeter = .5 * (a + b + c) 11 + return sqrt(semiperimeter * (semiperimeter - a) * (semiperimeter - b) * (semiperimeter - c)) 12 + 13 + def triangleAreaByCoordinates(x1, y1, x2, y2, x3, y3): 14 + A = distance((x1, y1), (x2, y2)) 15 + B = distance((x2, y2), (x3, y3)) 16 + C = distance((x3, y3), (x1, y1)) 17 + return triangleArea(A, B, C) 18 + 19 + print('Testing triangleAreaByCoordinates()...', end='') 20 + assert(almostEqual(triangleAreaByCoordinates(10, 11, 14, 11, 12, 13), 4)) 21 + assert(isinstance(triangleAreaByCoordinates(10, 11, 14, 11, 12, 13), float)) 22 + assert(almostEqual(triangleAreaByCoordinates(2, 4.0, 2, 7, 6.0, 7), 6)) 23 + assert(almostEqual(triangleAreaByCoordinates(0, 0, 12.0, 0, 12, 5), 30)) 24 + assert(almostEqual(triangleAreaByCoordinates(0, 0, 0, 1, 1, 1), 0.5)) 25 + print('Passed!')