Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Функции и процедуры в программировании

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

Что такое функция

Это часть компьютерной программы, выполняющая какое-либо определённое действие.

К примеру, одна функция подсчитывает количество продаваемых слонов, другая вычисляет прибыль от торговли, третья формирует отчётность, четвёртая, будучи шпионской закладкой в проприетарном софте, отправляет Большому Брату сведения о деятельности вашей фирмы («собирает анонимную статистику»), пятая подключается к постороннему серверу и тащит оттуда рекламу, ну и так далее.

Иными словами, функция ответственна за один из этапов обработки информации. В языке программирования C++ её структура выглядит следующим образом:

Тип_возврата_значения Уникальное_имя_функции(параметры)
 {
объявления_используемых_переменных;
операторы;
 }

Тип возврата ставится перед именем функции через пробел. Само имя должно быть уникальным (в масштабе всей программы) и очевидным для читающего код. То есть, содержать в себе слова, недвусмысленно подсказывающие, какое именно действие выполняется. Например, count_elephants().

Круглые скобки, прилепленные к имени, предназначены для параметров. То бишь, для информации, которую функция получает от программы (от других функций).

int count_elephants()
{
int count = 2;
cout << "Слонов было" << count << endl;
count++;
cout << "После рождения слонёнка стало" << count << endl;
return 0;
}

(Данный код не имеет никакой практической ценности и приводится исключительно в качестве иллюстрации.)

Что такое процедура

Теперь представьте себе, что какое-нибудь действие нужно выполнять несколько раз. Что делать программисту? Копировать одно и то же многократно? Тогда код раздуется, и в нём будет трудно разобраться. К тому же, если возникнет необходимость что-то подправить, то редактировать доведётся все копии фрагмента.

Следовательно, выполнение действия целесообразно выделить в маленькую подпрограмму — процедуру. Чтобы основная программа вызывала её столько раз, сколько понадобится.

Рассматривая разные коды, вы наверняка видели перед именем функции слово void («пустота»), указывающее, что возвращать значение не нужно. (Тогда и оператор return в конце тела функции не требуется.)

Так вот, в C++ процедуры являются именно такими «пустотными» функциями («void function»). Последовательность действий при её создании может быть примерно такой:

  1. создаём «пустотную» функцию:
    void count_ivory()
    {
    int count = 3; 
    cout << "Количество хоботов" << count << endl; 
    count = count*2; 
    cout << "Количество бивней" << count << endl;
    }
  2. вызываем её из других мест столько раз, сколько понадобится:
    int main()
    {
      // здесь может быть какой-нибудь код
    count_ivory() //вызов процедуры
      // ещё какой-нибудь код, сколь угодно много
    count_ivory() // снова вызов
      // и ещё больше всякого кода
    return 0;
    }

Параметры, содержащиеся в подпрограммах, именуют формальными, а передаваемые им при вызове — фактическими. Причём, в процессе вызова фактические подменяют собой формальные, за счёт чего обрабатываются именно те данные, с которыми требуется что-то сделать.

Прочее

В объектных языках программирования есть так называемые классы (абстрактные типы данных с интерфейсом и средствами реализации), в состав которых запросто могут входить и функции, и процедуры. Их там называют единым термином «методы».

Если открыть в архиваторе что-то написанное на Java, какой-нибудь *.jar, то можно увидеть, как много внутри всяких *.class, оформленных отдельными файлами.

Имена функций используются: 1) для создания документации; 2) для API, то бишь, интерфейса для подключения к программе или целой операционной системе всяких приложений. Поэтому имеет смысл ещё раз напомнить о том, что оные имена следует давать вразумительные и по-возможности соответствующие выполняемым действиям.

Резюмируем

Итак, функции — это своеобразные контейнеры для группировки алгоритмов. Они:

  1. ответственны за конкретные задачи;
  2. взаимодействуют с другими объектами;
  3. являются концептуальной основой современного программирования, как бы пафосно сие ни звучало.

Процедуры — фактически те же функции, хоть и «пустотные», ничего не возвращающие (в этом заключается их основное отличие). Этакие вспомогательные инструменты, предназначенные для выполнения рутинных действий, а также для экономии места, сил и времени.

Автор: vanilinkin, специально для xBB.uz, 12.10.2012


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2012-10-12 14:09:37

Метки материала: программирование, функции, процедуры, в программировании, функции и процедуры, программировании, алгоритм, программное обеспечение, информационные технологии, исходный код, ит, it, компьютерные технологии, software, разработка по, программы для компьютера

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.