k-tree
Электронный учебник

Программа

Любая машина, будь то электронная кофе-машина или марсоход, выполняет действия по некоторому алгоритму. Например, если зёрен в машине нет — она просит вас их засыпать. Сигнал до марсохода идёт до 20 минут, поэтому он не может получать указания в режиме реального времени и действует самостоятельно на основании заложенной в него программы, изредка получая и отправляя сигналы на землю.

Любое программирование, будь то космический аппарат, сложная игра в 3D или веб-сайт, предназначена для выполнения тех действий, которые человек смог автоматизировать. В целом, программа — это чёрный ящик, у которого есть владелец (программист) и пользователь. Пользователь вносит информацию в этот чёрный ящик посредством ввода: клавиатуры, мыши, голоса, сенсорного экрана и других. Результат возвращается в виде вывода: на экране монитора, в динамиках, в виде автоматически открывающейся двери и других источниках осязаемой для человека информации.

Со стороны программиста, программа — это способ автоматизировать некоторый процесс, для чего имеется набор различных инструментов, который определяет язык программирования и среда, в которой выполняется программа.

Расскажу на примере написания простейшей программы для кофе-машины. Для приготовления кофе потребуется сам кофе в зёрнах и вода, значит нужно два устройства ввода (устройство ввода всегда подразумевает ввод в программу): весы для кофе и объёма воды, также, пользователю нужно нажать кнопку — это взаимодействие с программой, а значит также требует одно устройство ввода, итого три устройства ввода. Теперь мне нужно сигнализировать пользователю, что кофе готов, не хватает зёрен или воды, итого — три устройства вывода.

Теперь необходимо построить алгоритм, алгоритм — это инструкция для процессора, программа на языке программирования — это запись алгоритма на данном языке. Языков много (не 100 и даже не 1000), сфер применения — невообразимо много, но всех объединяет одно — алгоритм и блок-схема!

Блок-схема — это запись алгоритма на общедоступном языке. В конечном счёте алгоритм пишут для процессора, любой процессор умеет не так много, но тем не менее достаточно ёмко: считывать и записывать данные с помощью устройств ввода-вывод, перемещаться внутри программы с помощью условий, выполнять арифметические операции.

Небольшое отступление: как работают устройства ввода. У процессора есть каналы ввода (называются порты), процессор работает на определённой частоте, предположим, 4.8 MHz (4 800 000 импульсов в секунду), каждый из этих импульсов он проверяет поступила ли информация через устройство ввода. То есть, он не сидит без дела пока вы не нажмёте клавишу, он 4 800 000 раз в секунду проверил, нажали вы кнопку или нет.

Итак, у нас есть ввод, вывод, условие с перемещением по программе и выполнение операций — это элементы блок-схемы, для каждого есть своё обозначение:

Алгоритм

Алгоритм — это инструкция для исполнителя, исполнитель в нашем случае процессор, поэтому в инструкции мы можем использовать три блока, соответствующие возможностям процессора. Блоки указаны на рис. 1 (есть и другие, но мы не будем их рассматривать в рамках данной главы).

Я хочу изготовить кофе-машину, которая по нажатию кнопки приготовит кофе, в целом процесс будет происходить в таком порядке: пользователь нажимает кнопку, кофе-машина проверяет, что все элементы в норме и запускает варку, если есть проблемы — сообщает об этом пользователю. Теперь как это выглядит на схеме.

Внимательно изучите схему и попробуйте составить свою (я использую программу yEd или бумагу и ручку), если нет идей для процесса, попрактикуйтесь на следующих:

  • Будильник
  • Робот-пылесос
  • Автоматическое отключение утюга
  • Переход дороги
  • Заваривание чая
  • Проветривание комнаты

Разработка блок-схемы позволяет абстрактный процесс перенести в линейный, блок-схема отображает алгоритм и всегда разрабатывается до написания программы.

Для разбора пишите в тг @zakhar_it


Вам понравилась статья? /

Seen: 5 860

Рейтинг: 5 (2 голоса)