?>
Python питон создайте класс melody, который будет моделировать процесс подбора мелодии. для этого нужно уметь: преобразовывать мелодию в строку, записывая ноты через запятую, первая нота с заглавной буквы, добавлять ноту в конец уже имеющейся мелодии — метод append, заменять последнюю ноту другой — метод replace_last (без проверки её существования), удалять последнюю ноту — remove_last (также без проверки), начинать всё с начала (стирать все ноты) — метод clear, возвращать длину мелодии (количество нот в ней) при вызове функции len от неё, а также транспонировать всю мелодию вверх или вниз (сдвиги > > и < < ), если это удаётся сделать внутри одной октавы (без циклического сдвига), если же хотя бы одна нота выходит за пределы октавы, возвращать копию исходной мелодии. используйте те же константы, что и для предыдущей (тестирующая система будет импортировать их из вашего кода): n = 7 pitches = ["до", "ре", "ми", "фа", "соль", "ля", "си"] long_pitches = ["до-о", "ре-э", "ми-и", "фа-а", "со-оль", "ля-а", "си-и"] intervals = ["прима", "секунда", "терция", "кварта", "квинта", "секста", "септима"] формат ввода каждый тест представляет собой код, в котором будут использоваться ваши классы. 1 пример ввод from solution import ( note, melody, n, pitches, long_pitches, intervals, ) melody = melody([note('фа'), note('ми'), note('ре'), note('до'), note('ля' print(melody) melody.replace_last(note('си', true)) print(melody) melody.remove_last() print(melody) melody.append(note('соль', true)) melody.append(note('соль', true)) print(melody) вывод фа, ми, ре, до, ля фа, ми, ре, до, си-и фа, ми, ре, до фа, ми, ре, до, со-оль, со-оль 2 пример ввод from solution import ( note, melody, n, pitches, long_pitches, intervals, ) melody = melody([note('до'), note('ми'), note('соль', print(melody, len(melody)) print( len( melody.clear() print(melody, len(melody)) вывод до, ми, со-оль 3 0 0 3 пример ввод from solution import ( note, melody, n, pitches, long_pitches, intervals ) melody = melody([note('ля'), note('соль'), note('ми'), note('до', print(melody) print(melody() > > 2) melody_up = melody > > 1 melody_down = melody < < 1 melody.replace_last(note('соль')) print('> > 1: ', melody_up) print('< < 1: ', melody_down) print(melody) вывод ля, соль, ми, до-о > > 1: си, ля, фа, ре-э < < 1: ля, соль, ми, до-о ля, соль, ми, соль
Ответы
Для начала найдем, сколько информации несет каждый символ: мощность алфавита 256, находим количество информации по формуле N = 2i, где N - мощность алфавита, i - количество информации в битах, которое несет каждая буква.
256 = 28, значит каждый символ несет 8 бит информации, или 1 байт.
2. В одной строчке 70 символов, значит, 70 * 1 = 70 байт несет каждая строчка.
3. На одной странице 30 строк, поэтому 30 * 70 = 2100 байт несет каждая страница.
5. Пять страниц текста содержит 2100 * 5 = 10500 байт информации.
ответ: 10500 байт.