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: ля, соль, ми, до-о
ля, соль, ми, соль
289
465
Ответы на вопрос:
Бір ғылыми жәнне қағидалар бойынша құрылған ЭЕМ нің барлық типтері мен модельдері
Объяснение:
осы дурыс
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
meriko208.02.2022 15:13
-
hopelless212424.11.2022 21:37
-
oleshckewitchd01.03.2022 05:21
-
iskandarova17426.06.2023 19:50
-
elyaivanova8510.01.2021 19:29
-
юляФ102.12.2022 19:14
-
ваня125912.01.2022 20:23
-
elenamatveeva302.03.2020 11:25
-
школа555330.06.2023 23:24
-
F228o228X18.08.2022 17:10
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.