Хотите я на простом примере докажу вам, что ваша жизнь имеет много общего с программированием? Вот простой пример. Каждый день люди выполняют множество действий, зачастую эти действия элементарны и просты. Вы просыпаетесь, чистите зубы общаетесь с близкими, заправляете постель, готовите завтрак. Это первая часть вашего путешествия длинною в день. Из дней складываются недели, месяцы и годы. В итоге вы проживаете всю свою жизнь оставив потомство, которое станет частью общества. Так стоп! Ну а программирование тут причем?
Выше описанные действия ни что иное, как свод последовательностей, которые приводят к определённому результату. Единственное отличие от программ заключается в том, что результат в жизни вы выбираете сами, а результат выполнения программы выбирает программист.
Если разложить любую программу на составляющие, то мы обнаружим, что она состоит из процедур и функции, которые содержат определённую последовательность действий. Процедуры и функции объединяются в модули или классы, в зависимости от языка программирования.
В чем отличие процедур от функции? Процедуры – это своего рода набор действий, которые выполняются и жизненный цикл процедуры прекращается до дальнейшего востребования. Функции – это аналоги процедур, только они могут возвращать значения, грубо говоря показывать своему создателю чего они достигли, при выполнении свода команд, которые в них содержатся.
У процедур и функции есть параметры – это данные, которые мы присылаем при обращении к процедуре или функции, для дальнейшей работы с ними. К примеру, я хочу сложить 2 + 2 и у меня есть процедура, которая содержит простую формулу сумма = слагаемое 1 + слагаемое 2. Если мы обратимся к процедуре и передадим ей значения слагаемое 1 = 2, а слагаемое 2 = 2, то процедура подставит их в формулу и сумма будет равна 4. Но что толку? Ведь мы хотели получить сумму, а не просто посчитать ее, для этого используем функцию, которая вернет нам сумму.
Если перевести на язык жизни, то когда вы идете чистить зубы у вас есть зубная щетка, паста, вода и набор движений. Сложив это все вместе вы получите процедуру, которую выполните и получите результат.
Если к вам обратится человек и спросит: «сколько в твоем ящике карандашей?», вы откроете ящик, пересчитаете карандаши и скажете точное число.
Когда вы чистили зубы, происходила процедура, а когда вас спросили про карандаши это была функция. Естественно у процедур и функции еще много особенностей, которые не охватишь в одной статье, но основополагающие таковы. В следующий раз, когда будете что-то делать, задумайтесь: «Процедура — это? Или функция?».)