คลาส Point
มีไว้ผลิตอ็อบเจกต์ที่แทนจุดในระนาบสองมิติ จงสร้างจุดที่พิกัด (4, 5) เก็บในตัวแปร p1
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
p1 = Point(4, 5)
var = "p1"
obj = Ex().check_object(var, missing_msg = "ไม่พบตัวแปร " + var)
obj.multi(
has_equal_value(expr_code="str(type("+var+"))", incorrect_msg = var + " ต้องเป็นอ็อบเจกต์ของ Point"),
has_equal_value(expr_code = var + ".x", incorrect_msg = "พิกัด x ไม่ถูกต้อง"),
has_equal_value(expr_code = var + ".y", incorrect_msg = "พิกัด y ไม่ถูกต้อง")
)
คลาส Date
มีไว้ผลิตอ็อบเจกต์ที่แทนวันเดือนปี จงสร้างอ็อบเจกต์ของวันที่ 8 กันยายน 2538 เก็บในตัวแปร d
(วันเดือนปีที่เก็บในอ็อบเจกต์เป็นจำนวนเต็ม และเลขปีเป็นปี ค.ศ. แต่ __init__ รับปี พ.ศ.)
class Date:
def __init__(self, a, b, c):
self.day = c
self.month = b
self.year = a - 543
class Date:
def __init__(self, a, b, c):
self.day = c
self.month = b
self.year = a - 543
d = Date(2538, 9, 8)
var = "d"
obj = Ex().check_object(var, missing_msg = "ไม่พบตัวแปร " + var)
obj.multi(
has_equal_value(expr_code="str(type("+var+"))", incorrect_msg = var + " ต้องเป็นอ็อบเจกต์ของ Date"),
has_equal_value(expr_code = var + ".day", incorrect_msg = "เลขวันไม่ถูกต้อง"),
has_equal_value(expr_code = var + ".month", incorrect_msg = "เลขเดือนไม่ถูกต้อง"),
has_equal_value(expr_code = var + ".year", incorrect_msg = "เลขปีไม่ถูกต้อง")
)
คลาส Point
มีไว้ผลิตอ็อบเจกต์ที่แทนจุดในระนาบสองมิติ จงสร้างลิสต์ที่เก็บจุด 3 จุดในตัวแปร t
โดยที่จุดทั้งสามเป็นจุดยอดของสามเหลี่ยมมุมฉากที่มีด้านยาว 3, 4 และ 5
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
t = [Point(0,0), Point(0,3), Point(4,0)]
def dist2(p1, p2):
dx = p1.x - p2.x
dy = p1.y - p2.y
return round(dx**2 + dy**2, 8)
def check_tri(x1, x2):
d1 = sorted(dist2(x1[i], x1[(i+1)%len(x1)]) for i in range(len(x1)))
d2 = sorted(dist2(x2[i], x2[(i+1)%len(x1)]) for i in range(len(x1)))
return d1 == d2
var = "t"
obj = Ex().check_object(var, missing_msg = "ไม่พบตัวแปร " + var)
obj.multi(
has_equal_value(expr_code="type("+var+")", incorrect_msg = var + " ต้องเป็นลิสต์"),
has_equal_value(expr_code="len("+var+")", incorrect_msg = var + " ต้องมีสมาชิกจำนวน 3 อ็อบเจกต์"),
has_equal_value(expr_code="[str(type("+var+"[i])) for i in range(len(" + var + "))]", incorrect_msg = "อ็อบเจกต์ใน " + var + " ต้องเป็น Point"),
has_equal_value(func=check_tri, incorrect_msg = "ตั้งค่าไม่ตรงตามโจทย์"),
)