*Словесный* — алгоритм описывается на естественном языке.
||font-size:85%|1. Твердый сыр натереть на мелкой терке.\
2\. Холодное сливочное масло так же натереть, каждый раз обваливая масло в муке.\
3\. Смешать натертый сыр со сливочным маслом и мукой, по желанию добавить щепотку соли.\
4\. Соединить все ингредиенты в ком, вымешивать тесто не нужно.\
5\. Поместить тесто в пакет или в пищевую пленку и оставить в холодильнике на 20 минут.\
6\. Разделить тесто на 4 части и каждую раскатать в круглый пласт толщиной 0,5 см, присыпая тесто мукой.\
7\. Вырезать печенье (здесь необходима иллюстрация!).\
8\. Выпекать сырное печенье в разогретой духовке при температуре 180-200 градусов в течение 12-15 минут, до золотистости.||
--
*Псевдокод* — для записи используется комбинация из конструкций языка программирования и
естественного языка; можно описывать действия над любыми объектами.
```
добавить стартовую вершину в очередь
while очередь не пуста do
w=вершина из очереди
for v in соседние c w вершины do
if не посещалась v then
добавить v в очередь
```
--
*Графический* — алгоритм описывается с помощью набора графических изображений, каждое из которых подразумевает выполнение
определенного действия. Порядок действий задается стрелками (линиями).
||font-size:85%|Существует много вариантов: схемы ISO 5807:1985 (ГОСТ 19.701-90),
ДРАКОН-схемы, диаграммы деятельности UML, диаграммы потоков данных (DFD),
для программирования микроконтроллеров (SFC, FBD), для описания бизнес-процессов (IDEF0, BPMN) и т.д.||
--
*Диаграмма* — структура алгоритма показывается с помощью вложенных блоков, что позволяет избавиться от стрелок.
||font-size:85%|Пример диаграммы Нэсси-Шнейдермана показан на левом рисунке.
Для обучения основам программированию такая форма записи более удобна (на правом рисунке тот же алгоритм в Scratch) и
также применяется в системах визуального программирования
для непрограммистов (Blockly, App Inventor, Hopscotch и др.)||
*Программный* — алгоритм записывается на языке программирования, который может быть
проинтерпретирован машиной или автоматизированно переведен в машинный код.
Ассемблер:
```text
L1: ADD AX,BX
DIV AX,2
JNZ L1
```
Язык высокого уровня
```text
m=arr[0]
for e in arr:
if e > m:
m = e
```