Этого достаточно, чтобы переводить мысли в вычислимые решения.
1.1. Идеи
Оказавшись перед сложной задачей, поднимитесь над ее хитросплетениями и изложите все самое важное на бумаге. Оперативная память человеческого мозга легко переполняется фактами и идеями. Многие подходы к организации работы предполагают изложение мыслей в письменной форме. Есть несколько способов это сделать. Сначала мы посмотрим, как пользоваться блок-схемами для представления процессов. Затем узнаем, как конструировать программируемые процессы на псевдокоде. Мы также попробуем смоделировать простую задачу при помощи математических формул.
Блок-схемы
Когда разработчики «Википедии» обсуждали организацию коллективной работы, они создали блок-схему дискуссии. Договариваться проще, если все инициативы перед глазами и объединены в общую картину (рис. 1.1).
Компьютерный код, как и изображенный выше процесс редактирования вики-страницы, по существу является процессом. Программисты часто пользуются блок-схемами для изображения вычислительных процессов на бумаге. Чтобы другие могли понимать ваши блок-схемы, вы должны соблюдать следующие рекомендации[3]:
• записывайте состояния и инструкции внутри прямоугольников;
• записывайте принятие решений, когда процесс может пойти различными путями, внутри ромбов;
• никогда не объединяйте инструкции с принятием решений;
• соединяйте стрелкой каждый последующий шаг с предыдущим;
• отмечайте начало и конец процесса.
Рис. 1.1. Редакционный процесс в «Википедии»[4]
Рассмотрим составление блок-схемы на примере задачи поиска наибольшего из трех чисел (рис. 1.2).
Рис. 1.2. Поиск наибольшего из трех чисел
Псевдокод
Так же, как блок-схемы,
function maximum(A, B, C)
····if A > B
·········if A > C
··············max ← A
·········else
··············max ← C
····else
·········if B > C
··············max ← B
·········else
··············max ← C
····print max
Заметили, что этот пример полностью игнорирует синтаксические правила языков программирования? В псевдокод можно вставлять даже разговорные фразы! Когда вы пишете псевдокод, дайте своей творческой мысли течь свободно — как при составлении блок-схем (рис. 1.3
Рис. 1.3. Псевдокод в реальной жизни[6]
Математические модели
Математические модели имеют большое преимущество: их можно приспособить для компьютеров при помощи четко сформулированных математических методов. Если ваша модель основана на графах, используйте теорию графов. Если она задействует уравнения, используйте алгебру.
Загон для скота
Начнем с того, что именно требуется определить;
l
w
100 = 2
Подберем
Подставив
Да это же квадратное уравнение! Его максимум легко найти при помощи
1.2. Логика