Python питон
добавим в класс note сравнение нот. сравнивать будем по высоте, без учёта длительности, причём будем считать большей ту ноту, чей тон выше (частота колебаний больше).
также добавим возможность транспонирования звука (переноса выше или ниже) с сдвигов > > вверх и < < вниз на гарантированно целое положительное значение. например, если «до» сдвинуть вправо на три тона ( > > 3), получится «фа». сдвиг должен работать циклически: если сдвинуть ту же «до» на тон вниз ( < < 1), должна получиться «си». а если сдвинуть «си» на один тон выше ( > > 1) — опять «до».
и ещё один новый метод — get_interval, позволяющий получить значение интервала между двумя нотами: «прима», «секунда», «терция», «кварта», «квинта», «секста» или «септима», где «прима» — интервал между двумя равными по тону нотами, а «септима» — максимальный доступный на нашем ксилофоне интервал — между «до» и «си».
в решении нужно объявить и можно использовать следующие константы (тестирующая система будет импортировать их из вашего кода):
n = 7
pitches = ["до", "ре", "ми", "фа", "соль", "ля", "си"]
long_pitches = ["до-о", "ре-э", "ми-и", "фа-а", "со-оль", "ля-а", "си-и"]
intervals = ["прима", "секунда", "терция", "кварта", "квинта", "секста", "септима"]
формат ввода
каждый тест представляет собой код, в котором будет использоваться ваш класс.
1 пример
ввод
from solution import (
note, n, pitches,
long_pitches, intervals
)
fa1 = note("фа", true)
fa2 = note("фа")
print(fa1 == fa2)
print(fa1 > fa2)
print(fa1 < fa2)
print(fa1 < = fa2)
la = note("ля", true)
print(fa1 < la)
вывод
true
false
false
true
true
2 пример
ввод
from solution import (
note, n, pitches,
long_pitches, intervals
)
fa2 = note("фа")
la = note("ля", true)
print(la > > 1)
print(la > > 2)
x = fa2 < < 4
print(x)
вывод
си-и
до-о
си
3 пример
ввод
from solution import (
note, n, pitches,
long_pitches, intervals
)
fa1 = note("фа", true)
fa2 = note("фа")
la = note("ля", true)
print(la.get_interval(fa1))
print(fa1.get_interval(fa2))
print(fa1.get_interval(note('си'
вывод
терция
прима
кварта
несмотря на то, что для правильной работы класса не обязательно реализовывать все шесть операций сравнения, рекомендуется всё же делать это (либо использовать functools.
/ PascalABC.Net 3.0, сборка 1066
var
n:BigInteger;
begin
var s:=ReadlnString('Введите натуральное число: ');
If BigInteger.TryParse(s,n) then begin
var c:=ReadChar('Введите проверяемую цифру: ');
Writeln(c, ' встречается в ',s,' ',s.Where(x->x=c).Count,' раз');
Writeln('Максимальная цифра числа: ',s.Where(x->x=s.Max).Distinct);
Writeln('Перевертыш: ',s.Inverse);
end
else Writeln('Ошибка при вводе числа')
end.
Тестовое решение:
Введите натуральное число: 355678679650768680078676985643546809678546263435
Введите проверяемую цифру: 4
4 встречается в 355678679650768680078676985643546809678546263435 4 раз
Максимальная цифра числа: [9]
Перевертыш: 534362645876908645346589676870086867056976876553
Задача 3
// PascalABC.Net 3.0, сборка 1066
begin
var m:int64:=-1;
var n:int64:=0;
Writeln('Принимаются неотрицательные целые числа');
while (n>=0) and (m<n) do begin
m:=n;
n:=ReadInteger('Введите число: ')
end;
if m>=n then Writeln('Последовательность невозрастающая')
else Writeln('Последовательность возрастающая')
end.
Тестовое решение:
Принимаются неотрицательные целые числа
Введите число: 4
Введите число: 6
Введите число: 12
Введите число: 83
Введите число: 170
Введите число: 214
Введите число: 170
Последовательность невозрастающая
Отчасти, так и есть. Когда дело доходит до изобретений, без экспериментов и изменений в дизайне не обойтись. Но путь к творению, как правило, долгий и терпкий. Инженеры и любители сотни лет корпели над экзоскелетами и персональными реактивными ранцами, а их все нет и нет. И процесс включает намного больше людей, чем просто одного гения.
Читая о десяти лучших и прекраснейших изобретениях мира, становится понятно, что ничто не появляется на пустом месте. Любое творение науки и техники рождается из предыдущих наработок, которые складывались в течение десятков или сотен (или тысяч) лет. У каждого изобретения есть свои проблемы, а порой какая-нибудь штука пылится в сундуке, пока не появится другое изобретение (подумайте, например, о космическом лифте). Часто бывает, что лавры славы собирает не изобретатель, которому первому пришла в голову идея, а тот, кто создал ключевой элемент, улучшение, дополнение к изначальной конструкции.
Как и со многими изобретениями в этом списке, человек, который изобрел, по нашему мнению, печатный станок (Иоганн Гутенберг в 1430-х годах), просто улучшил уже существующие технологии и сделал их полезными и достаточно эффективными, чтобы они приобрели популярность. Мир уже пользовался бумагой и блочной печатью — китайцы дошли до этого еще в начале 11 века — но их сложный язык не дал технологии распространиться. Марко Поло привез идею в Европу в 1295 году.Холодильник — отличная штука, использующая веществ поглощать и выгружать тепло, когда меняется давление и состояние вещества (как правило, из газа в жидкость и наоборот). Сложно выделить одного изобретателя холодильника, поскольку эта идея была широко известна и постепенно улучшалась в течение почти 200 лет. Некоторые указывают на конструкцию устройства для сжатия пара, созданную Оливером Эвансом в 1805 году, другие отмечают дизайн настоящего предшественника современного холодильника вроде того, что у вас на кухне, созданный Карлом фон Линде в 1876 году. Десятки изобретателей, включая Альберта Эйнштейна, улучшали или дополняли конструкцию холодильника много лет.Может быть, нечестно объединять телеграф, радио и телевидение в одном «изобретении», но развитие коммуникационных технологий повышало полезность и эффективность сферы в целом с тех пор, как Сэмюэль Морзе изобрел электрический телеграф в 1836 году (работая над совершенно другим, разумеется). Телефон по своей сути повторил и улучшил эту идею, обеспечив людей голосовой связью по медному проводу, в отличие от сугубо текстовых сигналов, прописанных кодом Морзе. Эти методы связи работали от пункта к пункту и требовали обширной инфраструктуры проводов для функционирования.