Программирование. Как работает компьютер. Что такое алгоритм.
Алгоритмы
Что такое алгоритм. Само слово произошло от имени известного математика Аль-Хорезми, который является основателем алгебры - вот он на советской марке (у меня есть такая в коллекции) :
А означает оно простую последовательность действий приводящую к решению поставленной задачи.
К примеру мы хотим выпить чаю, наш алгоритм может быть таким:
- Прийти на кухню
- Проверить есть ли в чайнике вода
- Если воды нет, то налить, перейти к шагу четыре
- Проверить горячая ли вода в чайнике
- Если вода холодная, вскипятить чайник
- Взять кружку
- Положить в кружку чайный пакетик
- Налить в кружку кипятка
- Если любим сладкий чай, положить сахар по вкусу, иначе перейти к шагу 12
- Взять ложечку, сделать ей полный круг внутри кружки
- Повторить шаг 10 несколько раз до полного растворения сахара
- Кружка горячего чая готова.
В данном алгоритме у нас получилось 12 шагов, и есть две основные структуры наших будущих программ: ветвление (наши шаги 3, 4, 9, где есть условия) и цикл (повторяющиеся действия - шаг 10, 11).
Каждый алгоритм обязательно должен иметь какие-то выходные данные, иначе это будет бесполезный алгоритм. В нашем случае это горячая кружка чая.
Большинство программ состоят из таких вот шагов и структур. Конечно для компьютерных программ нам ещё нужны будут переменные и сравнения, а также дополнительные структуры для удобства работы, мы рассмотрим их позже.
А сейчас мы рассмотрим как наши алгоритмы работают внутри компьютеров, для этого надо понимать как он устроен и как он выполняет наш алгоритм.
Устройство компьютера
Основные компоненты в компьютере это память (RAM) и процессор (CPU), а также устройства ввода - вывода такие как монитор, клавиатура, принтер.
Наши алгоритмы и их переменные (данные, которые нужны им для работы) хранятся в памяти компьютера, процессор читает память и начинает выполнять наш алгоритм по шагам. А управляющие структуры говорят что делать дальше, прочитать из памяти следующую порцию данных или вывести что-то на монитор пользователя или считать информацию, которую пользователь вводит с помощью клавиатуры.
Теоретическая часть на этом заканчивается. На следующем уроке мы подробнее разберём управляющие структуры и напишем пока на бумаге формальный алгоритм для нашей первой игры "Быки и коровы".
Немного ссылок для тех кто хочет почитать подробнее:
- Аль-Хорезми (полное имя Мухаммад ибн Муса аль-Хорезми аль-Маджуси)
- Алгоритмы на википедии
- Машина Тьюринга - универсальный компьютер для выполнения алгоритмов
Теги которые я буду использовать и по которым можно будет найти мои статьи:
Программированиеигр,
JavaScript,
Phaser.js.
P. S. Данный пост также написан на телефоне, с использованием редактора Markor.
P. P. S. Прошу прощение за такой рисунок, большинство рисунков я буду рисовать сам, чтобы не было плагиата.
P. P. P. S. Я ничего не сказал про самый первый рисунок - это графическое представление алгоритма в виде блок-схемы. Если вам интересно узнать об этом больше, пишите в комментариях.