Задача A. dir

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб

Условие

Вывести сначала все публичные атрибуты класса str в алфавитном порядке, а затем все приватные атрибуты, тоже в алфавитном порядке, каждый с новой строки.

Названия приватных методов начинаются с символа '_' (ascii 95).


Задача B. Hello world

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб

Условие

Требуется реализовать на языке Python класс Hello_world.

У класса должен быть следующий интерфейс:


class Hello_world:
    # Конструктор
    def __init__(self):
      pass

    # Функция, по умолчанию возвращающая "Hello world!". В случае 
    # использования set_new_hello_world возвращаемое значение изменяется.
    def get_hello_world(self):
        pass

    # Функция, изменяющая возвращаемое функцей get_hello_world значение на new_hello_world.
    def set_new_hello_world(self, new_hello_world):
        pass

   

Формат выходных данных

Код решения должен содержать только определение и реализацию класса.

Примеры тестов

Стандартный вход Стандартный выход
1
hello = Hello_world()
print(hello.get_hello_world())
Hello world!
2
hello = Hello_world()
print(hello.get_hello_world())

hello.set_new_hello_world('zbc')
print(hello.get_hello_world())

hello.set_new_hello_world('Python')
print(hello.get_hello_world())
Hello world! 
zbc
Python

Задача C. Time

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб

Условие

Требуется реализовать на языке Python класс Time.

У класса должен быть следующий интерфейс:


class Time:
    # Конструктор, принимающий четыре целых числа: часы, минуты, секунды и миллисекунды.
    # В случае, если передан отрицательный параметр, вызвать исключение ValueError.
    # После конструирования, значения параметров времени должны быть корректными:
    # 0 <= GetHour() <= 23
    # 0 <= GetMinute() <= 59
    # 0 <= GetSecond() <= 59
    # 0 <= GetMillisecond() <= 999
    def __init__(self, hours=0, minutes=0, seconds=0, milliseconds=0):
        pass
    def GetHour(self):
        pass
    def GetMinute(self):
        pass
    def GetSecond(self):
        pass
    def GetMillisecond(self):
        pass
    # Прибавляет указанное количество времени к текущему объекту.
    # После выполнения этой операции параметры времени должны остаться корректными.
    def Add(self, time):
        pass
    # Оператор str должен представлять время в формате
    # HH:MM:SS.milliseconds
    def __str__(self):
        pass

   

Формат выходных данных

Код решения должен содержать только определение и реализацию класса.

Примеры тестов

Стандартный вход Стандартный выход
1 time = Time(25, 11, 12, 1) print(str(time)) time.Add(Time(0, 0, 0, 1010)) print(str(time))
01:11:12.1
01:11:13.11

Задача D. ShiftableList

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб

Условие

Требуется реализовать на языке Python класс ShiftableList(list), который наследуется от list и реализует операторы циклического сдвига влево (<<) и вправо (>>). Результатом выполнения этих операций должен быть новый объект, при этом исходный не изменяется. Если операнд справа от оператора сдвига имеет тип, отличный от int, необходимо вызвать исключение TypeError. В случае, если величина сдвига отрицательна, должен выполниться сдвиг в противоположную сторону на количество позиций, равное модулю этой величины.

Формат выходных данных

Код решения должен содержать только определение и реализацию класса.

Примеры тестов

Стандартный вход Стандартный выход
1 lst = ShiftableList(['a', 'b', 'c']) lst2 = lst << 1 print(', '.join(lst2))
b, c, a
2 lst = ShiftableList(['a', 'b', 'c']) lst2 = lst >> -2 print(''.join(lst), ''.join(lst2))
abc cab

Задача E. Chromosome

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб

Условие

Требуется реализовать на языке Python класс Chromosome, который предполагается использовать при построении генетического алгоритма.

У класса должен быть следующий интерфейс:


class Chromosome:
    # Chromosome class constructor
    # Actual functionality is to set up an array called genes.
    # If boolean flag fillGenes is set to True, genes must be
    # filled with random values between 0 and 1, otherwise
    # it must be filled with 0.
    # Length of array genes must be equal to length 
    # constructor parameter.
    # Also initializes local variable mutationRate
    # with corresponding parameter.
    def __init__(self, length, mutationRate, fillGenes=False):
        pass
        
    # Creates two offspring children using a single crossover point.
    # The basic idea is to first pick a random position, create two 
    # children and then swap their genes starting from the randomly 
    # picked position point.
    # Children genes must be different from both of parents.
    # 
    # Returning type: (Chromosome, Chromosome)
    def Crossover(self, another):
        pass
        
    # Mutates the chromosome genes in place by randomly switching them
    # depending on mutationRate. More precisely, mutation
    # of i-th gene happens with probability of mutationRate.
    def Mutate(self):
        pass

   

У класса должны быть следующие поля:

Формат выходных данных

Код решения должен содержать только определение и реализацию класса.


Задача F. dir*

Входной файл:Стандартный вход   Ограничение времени:1 сек
Выходной файл:Стандартный выход   Ограничение памяти:512 Мб

Условие

То же для произвольного встроенного класса (Вывести сначала все публичные атрибуты класса в алфавитном порядке, а затем все приватные атрибуты, тоже в алфавитном порядке, каждый с новой строки.)

Формат входных данных

Входные данные содержат одну строку — название класса, список методов которого необходимо вывести.


0.317s 0.015s 23