Задачи
Нужно скачать файл
grid.py и запустить его.
from grid import Grid
class Segment:
def __init__(self, x1, x2):
self.start = x1
self.finish = x2
def __repr__(self):
d = self.length()
return f'отрезок [{self.start}, {self.finish}] длины {d}'
def length(self):
return self.finish - self.start
def draw(self, col='blue'):
g.draw_line(self.start, 0, self.finish, 0, col)
def move(self, dx):
self.start = self.start + dx
self.finish = self.finish + dx
#######################
# Класс Segment закончился
g = Grid()
s = Segment(10, 40)
print(s)
print('длина равна', s.length())
s.draw()
s.move(50)
print('после move:', s)
s.draw('red')
s2 = Segment(-70, -20)
print(s2)
s2.draw()
#s2.start = -10
#s2.finish = 0
#print('изменили старт и финиш:', s2)
#s2.draw()
Задачи
Задача 1. mirror
Написать функцию mirror для отрезка, которая как в зеркале, отображает отрезок относительно точки 0.
Задача 2. move0
Написать функцию move0 для отрезка, которая двигает отрезок точкой start в точку 0. Длина отрезка не изменяется.
30 апреля
from grid import Grid
class Segment:
def __init__(self, start, finish):
self.start = start
self.finish = finish
def __str__(self):
return '{} {}'.format(self.start, self.finish)
def __repr__(self):
return '({}, {})'.format(repr(self.start), repr(self.finish))
def length(self):
return self.finish - self.start
def move(self, dx):
self.start += dx
self.finish += dx
def draw(self, color):
grid.draw_line(self.start, 0, self.finish, 0, color)
def __lt__(self, other):
if self.length() < other.length():
return True
else:
return False
def __add__(self, other):
a = min(self.start, other.start)
b = max(self.finish, other.finish)
return Segment(a, b)
def test1():
s1 = Segment(10, 90)
print('s1=', s1)
s1.draw('blue')
s1.move(-100)
print('s1=', s1)
s1.draw('red')
s2 = Segment(20, 50)
print('s2=', s2)
s2.draw('green')
def test2():
s1 = Segment(-90, 10)
print('s1=', s1)
s2 = Segment(20, 50)
print('s2=', s2)
if s1 < s2: # s1 < s2
s1.draw('red')
s2.draw('green')
else:
s2.draw('red')
s1.draw('green')
s3 = s1 + s2
print(s1)
print(s2)
print(s3)
s3.draw('yellow')
grid = Grid()
#test1()
test2()
grid.done()
--
TatyanaDerbysheva - 02 Apr 2019