> For the complete documentation index, see [llms.txt](https://timosii.gitbook.io/py_tutorial/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://timosii.gitbook.io/py_tutorial/osnovy-algoritmov/vvedenie.md).

# Введение

**Алгоритм** — последовательность инструкций, которые нужно исполнить, чтобы решить чётко сформулированную задачу

* Задачи описываются исходя из *ввода* и *вывода* и алгоритм становится способом превращения ввода в вывод. При этом формулировка должна быть точной и недвусмысленной — это помогает избежать неверной интерпретации
* Перед реализацией в коде алгоритм нужно *спроектировать,* т.е. выбрать подходящую последовательность инструкций для решения задачи. Есть разные способы проектирования алгоритмов — когда мы проговариваем вслух последовательность действий это тоже проектирование. Но облегачает эту задачу использование *псевдокода*
* Люди придумали алгоритмы для наиболее частых задач: поиска, сортировки и т.д. Изучение алгоритмов *не привязано к конкретному языку программирования* — оно позволяет развить алгоритмическое мышление и этот навык помогает в том числе в обычной жизни

### Псевдокод

* Чтобы понять, как работает алгоритм, нам необходимо перечислить шаги, которые он выполняет. Для этого используется *псевдокод* — язык, которым пользуются разработчики для описания алгоритмов. Он игнорирует многие детали, необходимые в языках программирования.
* **Суть** псевдокода — чтобы его понимание человеком было легче, чем понимание той же программы, написанной на языке программирования
* Для псевдокода нет строгих правил. Рассмотрим *пример использования псевдокода*:

```
ЕСЛИ число1 больше числа2
    ЕСЛИ число1 больше числа3
        ВЫВОД("самое большое число — число1")
    ИНАЧЕ
        ВЫВОД("самое большое число — число3")
```

* Псевдокод должно быть удобно читать — используйте отступы и пустые строки
* Подробно и последовательно описывайте действия программы

***Практика:***

* При помощи псевдокода напишите алгоритм работы функции определения четности числа. Число передаётся в качестве аргумента. Результат — булево значение.
