Введение в написание программ
Алгоритмы
Думаю, что в школе вы сталкивались с понятием алгоритма, и даже если нет, то вы точно имеете представление о том, что это такое. Но на всякий случай вспомним определение из Википедии.
Алгоритм — конечная совокупность точно заданных правил решения произвольного класса задач или набор инструкций, описывающих порядок действий исполнителя для решения некоторой задачи.
Не буду сильно распинаться и только добавлю следующую схему:
Перед нами простой алгоритм описанный с помощью "Блок-схемы". Какие основные элементы можно выделить из схемы?
- Оранжевые блоки - инструкции, описывающие что следует делать.
- Фиолетовые блоки - блоки ветвления, в которых мы проверяем некоторое утверждение и действуем в зависимости от верности утверждения.
- Синяя область - Обозначает цикл, список действий которые надо выполнять до выполнения какого-то условия.
Должен предупредить
Цикл в этой блок схеме обозначен.. так скажем не канонично.. Для циклов есть более правильное обозначение. Ознакомиться с ним вы можете на этой странице:
В ходе нашей работы нам предстоит описывать алгоритмы в тысячи шагов. Это кажется чем-то очень сложным, но в действительности, у нас будут инструменты которые облегчат их написание.
Программа
Компьютерная программа — комбинация компьютерных инструкций и данных, позволяющая аппаратному обеспечению вычислительной системы выполнять вычисления или функции управления;
Если проще, то программа - это алгоритм(скорее всего очень длинный) + данные. Данные могут приходить из внешнего мира, или быть зашиты в программу.
Как программа выполняется на компьютере?
Если отбросить все лишнее, и посмотреть как работают наши компьютеры, то схема будет простой.
CPU действует относительнsо примитивно.. внутри него есть специальные ячейки, в которые можно ложить значения, называются они регистрами. Например для того чтобы сложить два числа вам потребуется положить эти числа в специальные регистры и вызвать команду суммирования, после этого в определенном регистре будет лежать результат сложения.
Надеюсь, что на этом этапе более-менее понятно. Но вопрос.. хорошо, у нас есть регистры и команды которые процессор выполняет, но где лежат эти команды? Команды лежат в оперативной памяти, а у процессора есть специальный регист(PC
), который хранит адрес команды которую он исполняет. После исполнения команды, в регистер ложится значение адреса следующей инструкции(команды).
Теперь мы можем представить как выглядят эти команды: