Сколько слайдов поместится в песню
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее... |
Эта задача не очень сложная, но зато она может найти практическое применение. Суть в следующем. Моя жена любит создавать слайд-шоу и в качестве звукового сопровождения обычно ставит какую-нибудь песню. Сложность заключается в том, что подобрать время отображения одного слайда бывает непросто, потому что либо музыка заканчивается раньше, либо слайды уже закончились, а музыка ещё звучит.
Например, песня длится 3 минуты и 12 секунд (то есть 192 секунды). В презентации 23 слайда. Тогда время отображения каждого слайда должно быть:
192 / 23 = 8,34 секунды
Однако сложность заключается в том, что в программе PowerPoint, в которой жена делает презентации, нельзя установить для слайда время 8,34. Там можно устанавливать только целые значения. Например, 8 или 9 секунд. Но, если мы поставим для каждого слайда 8 секунд, то
8 * 23 = 184
То есть слайды закончатся раньше, чем музыкальное сопровождение, на 8 секунд. А это не очень хорошо будет смотреться.
Если же поставить для каждого слайда 9 секунд, то
9 * 23 = 207
В этом случае будет другая неприятность - музыка уже закончится, а слайды ещё будут показываться.
Есть следующие способы решения:
- Добавить или удалить слайды так, чтобы общее время показа было равно времени звучания песни.
- Увеличить или уменьшить время звучания нескольких слайдов так, чтобы общее время показа было равно времени звучания песни.
Например, в первом случае (см. выше), надо
- Либо добавить один слайд в презентацию и установить для него время показа 8 секунд.
- Либо для любых восьми слайдов увеличить время показа на одну секунду (либо для четырёх - на две и т.п.).
Однако подбор и расчёт, этих, казалось бы, простых вещей, отнимает время и силы. Поэтому я и решил написать программку, которая бы могла делать одно из следующих:
- Определять время показа одного слайда по заданному пользователем времени звучания песни и количеству слайдов. Если время звучания песни не делится без остатка на количество слайдов, то программа должна давать советы по решению этого вопроса (например, предлагать варианты: изменить время для нескольких слайдов или изменить количество слайдов).
- Определять количество слайдов по заданному пользователем времени звучания песни и времени показа одного слайда. Если в итоге не удаётся получить целое количество слайдов, то программа должна давать советы по решению этого вопроса (например, предлагать варианты: изменить время показа каждого или нескольких слайдов).
Пожалуй, все способы решения уже раскрыты. Осталось только выполнить всё это в виде исходного кода программы. Я сделаю это на Паскале и С++. Программа будет консольным приложением.
ПРИМЕЧАНИЕ
Программа относительно сложная, поэтому все сообщения она выводит на русском языке.
В консольных приложениях Lazarus это сделать не так просто. Есть несколько способов.
Я использовал вот этот.
Экраны см. ниже:
Рис. 1. Главный экран.
Рис. 2. Режим вычисления времени показа одного слайда в презентации.
Рис. 3. Режим вычисления количества слайдов.
Конечно, программа далека от совершенства. Например, здесь не выполняются все нужные проверки. И если пользователь вместо цифры введёт букву, то программа завершится аварийно. Но это, если хотите, можете исправить сами. Я же не стал загромождать исходный код разными проверками на ошибки и защиту от дурака.
Исходные коды программ не привожу на странице, но вы можете
(ВНИМАНИЕ! На архиве будет пароль: 123)
А пока всё. Надеюсь, что эта задачка, а также сама программа, окажется вам полезной. Не забывайте делиться этой страницей в соц. сетях, а также подписывайтесь на канал в Ютубе и группу В Контакте:
Вступить в группу "Основы программирования"
Подписаться на канал в РУТУБ Подписаться на Дзен-канал Подписаться на рассылки по программированию |
Как стать программистом 2.0
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее... |
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее... |