## <ins>Что такое программирование?</ins> *"Программирование — процесс создания **компьютерных программ**."* \- **Wiki** Нужно узнать что мы создаем, чтобы знать как оно устроено и уметь это создавать. - [Программирование](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5#%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%87%D0%B0%D0%BD%D0%B8%D1%8F) / [Computer programming](https://en.wikipedia.org/wiki/Computer_programming) * * * ## <ins>Что такое программа и компьютерная программа?</ins> ***Программа*** — термин, в переводе означающий «предписание», то есть заданную последовательность действий. Данное понятие непосредственно связано с понятием *алгоритм*. (Здесь я затрагиваю понятие "программа" вне компьютера.) **Компьютерная программа** \- это последовательность или набор инструкций на языке программирования, предназначенных для выполнения компьютером. Пример программы **"Заварки чая"**, который мы используем в повседневной жизни: 1. Возьмите чайник и налейте в него нужное количество воды. 2. Включите плиту и поставьте чайник на нее. 3. Дождитесь, пока вода закипит. 4. Возьмите кружку и в нее положите чайный пакетик или чайную ложку с чаем. 5. Если вы хотите заварить чай с молоком или сахаром, добавьте их в кружку. 6. Когда вода закипит, выключите плиту и снимите чайник с плиты. 7. Налейте горячую воду из чайника в кружку с чаем. 8. Подождите несколько минут, чтобы чай заварился. 9. Если вы используете чайный пакетик, удалите его из кружки с помощью ложки или щипцов для чая. 10. Перемешайте чай, если добавляли молоко или сахар, и подайте на стол. Для описания какой-либо программы в повседневной жизни нам хватает родного языка, на котором мы говорим и выражаем свои мысли. Если мы захотим объяснить нашу программу иностранцу, то нам придётся изучить слова и грамматические правила родного языка этого иностранца, чтобы уметь описать ему нашу программу. Так же с компьютером. Компьютер для нас в роли иностранца, которому мы должны объяснить нашу программу. Тот же самый пример, но уже на понятном компьютеру языке (обратите внимание, что это лишь примерный перевод программы на языке программирования): ``` function brewTea() { // Step 1 takeKettle(); fillWater(kettle, desiredAmountOfWater); turnOnStove(); placeKettleOnStove(stove, kettle); waitForBoiling(kettle); // Step 2 takeCup(); putTea(cup, teaBagOrTeaSpoon); if (needMilkOrSugar) { addMilkOrSugar(cup); } // Step 3 turnOffStove(); removeKettleFromStove(stove, kettle); pourHotWater(kettle, cup); // Step 4 waitMinutes(3); if (usingTeaBag) { removeTeaBag(cup); } // Step 5 stirTea(cup); serveTea(cup); } brewTea(); ``` Изучение языка программирования будет намного проще, чем, допустим, задача изучения иностранного языка. На самом деле язык программирования характеризуется словарем из нескольких десятков слов и правил грамматики. - [Computer program](https://en.wikipedia.org/wiki/Computer_program) Значит для создания компьютерной программы нам нужно понять что это за ***последовательность или набор инструкция на языке программирования***. * * * ## <ins>Алгоритм</ins> **Алгоритм** \- это совокупность точно заданных набор инструкций, которые описывают порядок действий исполнителя для решения определённой задачи. ![Image](https://www.c-programming-simple-steps.com/images/go-to-work-algorithm.png) Пример **алгоритма**. Можно увидеть, что всё выполняется последовательно. Как тогда реализовать алгоритм? Для этого нам нужно понять основной принцип работы программирования. Основной принцип работы программирования называется "**Алгоритмизация**". ***Алгоритмизация*** \- У нас есть задача, которую нужно решить. Сначала описываем задачу, это у нас в программировании будет **input** (входные данные). Сам процесс решения задачи назовём **алгоритм** (Процесс решения). Полученное решение задачи в идеале будет называться **output** (Выходные данные). ==**Input → Algorithm → Output**==