Читать «Теоретический минимум по Computer Science. Все что нужно программисту и разработчику» онлайн - страница 2
Фило В. .
Да пребудет с вами сила!
1 Рисунок использован с согласия .
2 См., например, .
Глава 1. Основы
Компьютерам нужно, чтобы мы разбивали задачи на посильные для них части. Тут нам понадобится немного математики. Не паникуйте, это не высшая математика — написание хорошего программного кода редко требует знания сложных уравнений. В главе 1 вы найдете набор инструментов для решения разных задач. Вы научитесь:
Этого достаточно, чтобы переводить мысли в вычислимые решения.
1.1. Идеи
Оказавшись перед сложной задачей, поднимитесь над ее хитросплетениями и изложите все самое важное на бумаге. Оперативная память человеческого мозга легко переполняется фактами и идеями. Многие подходы к организации работы предполагают изложение мыслей в письменной форме. Есть несколько способов это сделать. Сначала мы посмотрим, как пользоваться блок-схемами для представления процессов. Затем узнаем, как конструировать программируемые процессы на псевдокоде. Мы также попробуем смоделировать простую задачу при помощи математических формул.
Блок-схемы
Когда разработчики «Википедии» обсуждали организацию коллективной работы, они создали блок-схему дискуссии. Договариваться проще, если все инициативы перед глазами и объединены в общую картину (рис. 1.1).
Компьютерный код, как и изображенный выше процесс редактирования вики-страницы, по существу является процессом. Программисты часто пользуются блок-схемами для изображения вычислительных процессов на бумаге. Чтобы другие могли понимать ваши блок-схемы, вы должны соблюдать следующие рекомендации3:
• записывайте состояния и инструкции внутри прямоугольников;
• записывайте принятие решений, когда процесс может пойти различными путями, внутри ромбов;
• никогда не объединяйте инструкции с принятием решений;
• соединяйте стрелкой каждый последующий шаг с предыдущим;
• отмечайте начало и конец процесса.
Рис. 1.1. Редакционный процесс в «Википедии»4
Рассмотрим составление блок-схемы на примере задачи поиска наибольшего из трех чисел (рис. 1.2).
Рис. 1.2. Поиск наибольшего из трех чисел
Псевдокод
Так же, как блок-схемы,