Различают линейные, разветвляющиеся и циклические алгоритмические конструкции.
*Линейный* алгоритм — алгоритм, в котором действия выполняются последовательно друг за другом.
```text
1. взять кружку
2. положить пакетик с чаем
3. налить кипяток
```
--
*Разветвляющийся* алгоритм — алгоритм, в котором действия выполняются по одной возможных ветвей решения задачи в зависимости от некоторого условия.
```text
если a>b то
max:=a
иначе
max:=b
```
--
*Циклический* алгоритм — алгоритм, в котором некоторая часть действий (тело цикла) выполняется многократно.
```text
пока чай не сладкий
положить 1 чайную ложку сахара
размешать
```
```text
выполнить 3 раза
положить 1 чайную ложку сахара
размешать
```
Циклический алгоритм может быть определен через *рекурсию* (вызов функцией самой себя) и наоборот.
```text
Алгоритм ДобавлятьСахар:
если чай не сладкий
положить 1 чайную ложку сахара
размешать
вызвать ДобавлятьСахар
```
---
##### Задания для практики
1. Придумайте алгоритм вычисления функции `|__ sqrt(n) __|` и запишите его на естественном языке.
2. Напишите алгоритм для получения всех делителей числа на псевдокоде и нарисуйте его схему алгоритма.
3. Напишите алгоритм для получения разложения числа на простые множители на псевдокоде и нарисуйте его схему алгоритма.