0 / 0 / 0
Регистрация: 04.05.2020
Сообщений: 11
1

Улитка, улитка и еще раз улитка! Какой у тебя класс?

23.06.2020, 17:17. Показов 1886. Ответов 1

Author24 — интернет-сервис помощи студентам
В домике, где живет Девочка с Голубыми волосами, есть самая медленная слуга на свете — Улитка.
Чтобы только спуститься с четвёртого этажа, ей нужно целых 9 часов! Бедный Пиноккио! Столько
времени ждать у дверей, холодным и голодным! А потом ещё 3,5 часа ждать, когда Улитка принесёт
завтрак!

Напишите класс Улитка (Snail), экземпляр s которого инициализируется с аргументами: цвет (строка),
размер и скорость (целые числа).
Класс реализует (инкапсулирует) функциональность:
  • str(s) — возвращать строковое представление в виде Snail <цвет> - <размер>;
  • s.crawl(time) — ползти. Возвращает пройденное расстояние (число), найденное как время (аргумент метода, целое число), умноженное на скорость; каждые 10 единиц пройденного расстояния уменьшают скорость на 1, пока не станет 0 (скорость уменьшается однократно при каждом вызове метода после расчёта расстояния);
  • s.get_through(size) — пролезать в щели. Возвращает True или False в зависимости от того, пролезет ли в эту щель;
  • s.leave_trace() — оставлять след в виде *. Количество звёздочек определяется как размер * скорость // 2;
  • улиток можно сравнивать. Сначала сравнивается размер, затем скорость, затем цвет в алфавитном порядке
.

Пример 1
Ввод


from solution import Snail
s = Snail('brown', 15, 2)
print(s)
print(s.leave_trace())
print(s.get_through(13))
print(s.crawl(6))
print(s.leave_trace())

Вывод

Snail brown - 15
***************
False
12
*******

Пример 2
Ввод


from solution import Snail
s1 = Snail('brown', 15, 2)
s2 = Snail('grey', 15, 2)
print(s1, s2, sep='\n')
print(s1 > s2)
print(s2.crawl(5))
print(s1 >= s2)
print(s2.leave_trace())
print(s2.get_through(15))

Вывод

Snail brown - 15
Snail grey - 15
False
10
True
*******
True

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
class Snail:
    def __init__(self, color, size, speed):
        self.color = color
        self.size = size
        self.speed = speed
 
    def __str__(self):
        return 'Snail {} - {}'.format(self.color, self.size)
 
    def leave_trace(self):
        s = '*' * (self.size * self.speed // 2)
        return s
 
    def get_through(self, size):
        if self.size <= size:
            return True
        else:
            return False
 
    def crawl(self, time):
        d = time * self.speed
        d1 = 0
        w = 10
        while d1 <= d:
            d1 +=1
            if d1 == w:
                self.speed = self.speed - 1
                w = w + d1
                if self.speed == 0:
                    break
        return d
 
    def __gt__(self, other):
        if self.size > other.size:
            return True
        elif self.speed > other.speed:
            return True
        elif self.color > other.color:
            return True
        return False
 
    def __ge__(self, other):
        if self.size >= other.size:
            return True
        elif self.speed >= other.speed:
            return True
        elif self.color >= other.color:
            return True
        return False
 
    def __lt__(self, other):
        if self.size < other.size:
            return True
        elif self.speed < other.speed:
            return True
        elif self.color < other.color:
            return True
        return False
 
    def __le__(self, other):
        if self.size <= other.size:
            return True
        elif self.speed <= other.speed:
            return True
        elif self.color <= other.color:
            return True
        return False
 
s = Snail('brown', 15, 2)
print(s)
print(s.leave_trace())
print(s.get_through(13))
print(s.crawl(6))
print(s.leave_trace())
 
s1 = Snail('brown', 15, 2)
s2 = Snail('grey', 15, 2)
print(s1, s2, sep='\n')
print(s1 > s2)
print(s2.crawl(5))
print(s1 >= s2)
print(s2.leave_trace())
print(s2.get_through(15))

Я все правильно сделал?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2020, 17:17
Ответы с готовыми решениями:

На какой день улитка доползёт до вершины шеста
Имя входного файла стандартный ввод Имя выходного файла стандартный вывод Ограничение по...

На какой день улитка доползёт до вершины шеста?
Здравствуйте, есть одна задачка несложная вроде, и решение к ней тоже есть, задача на тему Div,...

На какой день улитка доползёт до вершины шеста?
Всем доброго времени суток, я начинающий программист) точне записался на курсы и много чего не...

На какой день улитка доползёт до вершины шеста?
Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь...

1
Am I evil? Yes, I am!
Эксперт PythonЭксперт Java
18571 / 10768 / 2897
Регистрация: 21.10.2017
Сообщений: 22,950
23.06.2020, 22:42 2
НЕТ!
1
23.06.2020, 22:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2020, 22:42
Помогаю со студенческими работами здесь

Определить, на какой день улитка доползёт до вершины шеста?
Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь...

Определить на какой день улитка доползет до вершины шеста
Улитка Улитка ползет по вертикальному шесту высотой H метров, поднимаясь за день на A метров, а...

Улитка
function snail(int n) int n = 3 3333333 3222223 3211123 3210123 3211123 3222223

Улитка)
Улитка ползёт по вертикальному шесту высотой h метров, поднимаясь за день на a метров, а за ночь...

улитка
Каждый солнечный день улитка, сидящая на дереве, поднимается вверх на 2 см, а каждый пасмурный день...

улитка 5*5
как создать улитку по часовой срелке от верхнего правого угла? Добавлено через 26 минут есть...

Улитка паскаля на C#
Нарисовать улитку паскаля на C# по параметрическому представлению |y=a*cos^2( t) +b*Cos(t)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru