книга заданий пайтон. книга практических заданий, pyton. Сборник упражнений Введение в язык Python с задачами и решениями Бен Стивенсон Москва, 2021 удк 004. 438Python
Скачать 2.24 Mb.
|
Упражнение 42. Узнать частоту по ноте(Решено. 39 строк) В табл. 2.6 перечислены частоты звуков, относящихся к одной октаве, начиная с до. Таблица 2.6. Частоты нот одной октавы
Пусть ваша программа запрашивает у пользователя обозначение ноты и показывает ее частоту согласно приведенной таблице. После этого вы можете доработать свою программу таким образом, чтобы она поддерживала все октавы, начиная от субконтроктавы (C0) до пятой октавы (C8). И хотя можно это реализовать путем добавления бесконечного количества блоков if, это будет довольно громоздким, недостаточно элегантным и просто неприемлемым решением данной задачи. Вместо этого при расчетах лучше использовать отношения между одними и теми же нотами в соседствующих октавах. К примеру, частота любой ноты октавы n будет составлять ровно половину от частоты той же ноты октавы n + 1. Используя это соотношение, вы без труда сможете добавить в свою программу учет всех нот любой октавы без присутствия бесчисленных условных блоков. Подсказка. Пользователь должен вводить ноту вместе с номером нотации октавы. Начните с разделения буквы, обозначающей ноту, и цифры, соответствующей номеру октавы. Затем определите частоту введенной ноты по представленной выше таблице и разделите ее на 24–x, где x – номер октавы в научной нотации, введенный пользователем. Это позволит умножить или разделить на два число из таблицы нужное количество раз. Упражнение 43. Узнать ноту по частоте(Решено. 42 строки) В предыдущем упражнении мы определяли частоту ноты по ее названию и номеру октавы. Теперь выполним обратную операцию. Запросите у пользователя частоту звука. Если введенное значение укладывается в диапазон ±1 Гц от значения в таблице, выведите на экран название соответствующей ноты. В противном случае сообщите пользователю, что ноты, соответствующей введенной частоте, не существует. В данном упражнении можно ограничиться только нотами, приведенными в таблице. Нет необходимости брать в расчет другие октавы. Упражнение 44. Портреты на банкнотах(31 строка) Во многих странах существует традиция помещать портреты своих бывших политических лидеров или других выдающихся личностей на банкноты. В табл. 2.7 приведены номиналы банкнот США с изображенными на них людьми. Таблица 2.7. Банкноты США
Напишите программу, которая будет запрашивать у пользователя номинал банкноты и отображать на экране имя деятеля, портрет которого размещен на соответствующем денежном знаке. Если банкноты введенного номинала не существует, должно выводиться сообщение об ошибке. Примечание. Хотя банкноты номиналом два доллара очень редко можно встретить в США, официально они существуют и могут быть использованы при любых расчетах. Также в начале прошлого века в Америке были выпущены в обращение банкноты номиналом $500, $1000, $5000 и $10 000, хотя с 1945 года они не печатались, а в 1969 году и вовсе были выведены из обращения. Так что их мы не будем рассматривать в данном упражнении. |