Шаг 42.
Общие сведения о функциях

    С этого шага мы начинаем знакомиться с организацией и использованием функций пользователя.

    Принципы программирования на языке C++ основаны на понятии функции. В представленных ранее примерах мы уже воспользовались несколькими функциями: printf(), scanf(). Эти функции являются системными, однако в предыдущих примерах мы создали и несколько своих собственных функций под общим именем main(). Заметим, что выполнение программы всегда начинается с операторов, содержащихся в функции main(), затем последняя вызывает другие функции. Теперь мы переходим к вопросу о том, как создавать свои собственные функции.

    Что же такое функция? Функция - самостоятельная единица программы, спроектированная для реализации конкретной задачи. Функции в языке C++ играют ту же роль, какую играют функции, подпрограммы и процедуры в других языках, хотя детали их структуры могут быть разными. Вызов функции приводит к выполнению некоторых действий. Например, при обращении к функции printf() осуществляется вывод данных на экран. Другие же функции позволяют получать величины, используемые затем в других частях программы.

    Почему мы пользуемся функциями?

    Во-первых, они избавляют нас от "повторного" программирования. Если конкретную задачу необходимо выполнить в программе несколько раз, то мы напишем соответствующую функцию только один раз, а затем будем вызывать ее всегда, когда это требуется.

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

    Предположим, например, что мы хотим написать программу, которая делает следующее:

    Соответствующую программу можно спроектировать так:

   main ()
   {
      int list[50];
      readlist (list);    /* Ввод набора чисел.     */
      sort (list);        /* Сортировка этих чисел. */
      average (list);     /* Поиск их среднего.     */
   }

    Разумеется мы должны еще запрограммировать три функции: readlist(), sort(), average(), но... это уже детали. Используя смысловые имена функций мы четко определяем, что программа делает и как она организована. После этого можно заниматься каждой функцией отдельно и совершенствовать ее до тех пор, пока она не будет правильно выполнять требуемую задачу. Дополнительное преимущество данного подхода состоит в том, что если мы создадим функции достаточно общего вида, то их можно будет использовать и в других программах.

    Что нам требуется знать о функциях? Нужно знать:



    На следующем шаге мы рассмотрим первую из перечисленных задач: каким образом определяются функции.


Предыдущий шаг Содержание Следующий шаг