uses graphabc;
begin
setwindowsize (600,555);
SetPenWidth(2);
rectangle (200,200,400,499);
FloodFill(300,300,clBurlyWood);
rectangle (225,225,275,275);
FloodFill(250,250,clLightCyan);
line (225,250,275,250);
line (250,250,250,275);
rectangle (325,225,375,275);
FloodFill(350,250,clLightCyan);
line (325,250,375,250);
line (350,250,350,275);
rectangle (225,400,275,450);
FloodFill(250,425,clLightCyan);
line (225,425,275,425);
line (250,425,250,450);
rectangle (325,425,375,500);
FloodFill(350,490,clMaroon);
pie (350,425,25,0,180);
FloodFill(350,420,clMaroon);
line (200,200,300,100);
line (300,100,400,200);
FloodFill(300,110,clChocolate);
circle (300,160,20);
FloodFill(300,160,clLightCyan);
line (375,175,375,100);
line (375,100,355,100);
line (355,100,355,155);
FloodFill(370,110,clLightGray);
circle (550,50,30);
FloodFill(525,50,clYellow);
line (535,25,510,0);
line (525,35,470,15);
line (520,50,475,50);
line (525,65,485,90);
line (537,78,505,110);
line (550,80,535,120);
line (565,75,565,120);
line (575,65,595,90);
pie (500,413,30,0,180);
FloodFill(500,400,clRed);
rectangle (495,413,505,500);
FloodFill(500,495,clChocolate);
end.
Решение задания с кодом из условия:
class Task():
# все эти аттрибуты должны быть не у самого класса Задачи, а у объектов
description = ''
importance = 1
# дату нужно выражать по-другому. datetime и Arrow в
completion_month = ''
completion_date = 1
def creation(): # как раз для этого существует __init__
objective = Task()
objective.description = input("Введите описание задачи: ")
objective.importance = int(input("Введите важность задачи (от 1 до 5): "))
objective.completion_month = input("Введите месяц сдачи: ")
objective.completion_date = int(input("Введите дату сдачи: "))
return objective
tasks = [creation(), creation(), creation()]
i = max(tasks, key=lambda task: task.importance) # находит задачу с максимальной важностью (key=функция, возвращающая важность)
print("Самая важная задача: " + i.description + ", важность- " + str(i.importance) + ", месяц сдачи- " + i.completion_month + ", дата сдачи- " + str(i.completion_date))
i = min(tasks, key=lambda task: task.completion_date) # находит задачу с максимальной датой сдачи (key=функция, возвращающая дату сдачи)
print("Самая задача: " + i.description + ", важность- " + str(i.importance) + ", месяц сдачи- " + i.completion_month + ", дата сдачи- " + str(i.completion_date))
Более правильное решение:
import datetime
class Task(object):
def __init__(self, description, priority, due_date):
self.description = str(description)
priority = int(priority)
if priority not in range(1, 6):
raise ValueError("priority must be 1, 2, 3, 4, or 5")
self.priority = priority
if isinstance(due_date, datetime.datetime):
due_date = due_date.date()
if not isinstance(due_date, datetime.date):
raise ValueError("due_date must be datetime.datetime "
"or datetime.date")
self.due_date = due_date
def __repr__(self):
return f"Task({self.description}, {self.priority}, {self.due_date})"
@classmethod
def from_user_input(cls):
description = input("Enter description of the task: ")
while True:
priority = input("Enter priority of the task (1-5): ")
if priority in map(str, range(1, 6)):
priority = int(priority)
break
date_format = "%d.%m.%Y"
while True:
due_date = input(f"Enter due date (like {date_format}): ")
try:
due_date = datetime.datetime.strptime(due_date, date_format).date()
except ValueError:
pass
else:
break
return cls(description, priority, due_date)
tasks = [Task.from_user_input(),
Task.from_user_input(),
Task.from_user_input()]
print("The most important task:", max(tasks, key=lambda task: task.priority))
print("The most urgent task:", min(tasks, key=lambda task: task.due_date))
2) 111 в 2-ой = 7 в 10-ой
III - 3 в десятичной ⇒
111 больше III