С этого шага мы начинаем знакомиться с организацией и использованием
функций
пользователя.
Принципы программирования на языке C++ основаны на понятии функции. В представленных ранее примерах мы уже воспользовались несколькими функциями: printf(), scanf(). Эти функции являются системными, однако в предыдущих примерах мы создали и несколько своих собственных функций под общим именем main(). Заметим, что выполнение программы всегда начинается с операторов, содержащихся в функции main(), затем последняя вызывает другие функции. Теперь мы переходим к вопросу о том, как создавать свои собственные функции.
Что же такое функция? Функция - самостоятельная единица программы, спроектированная для реализации конкретной задачи. Функции в языке C++ играют ту же роль, какую играют функции, подпрограммы и процедуры в других языках, хотя детали их структуры могут быть разными. Вызов функции приводит к выполнению некоторых действий. Например, при обращении к функции printf() осуществляется вывод данных на экран. Другие же функции позволяют получать величины, используемые затем в других частях программы.
Почему мы пользуемся функциями?
Во-первых, они избавляют нас от "повторного" программирования. Если конкретную задачу необходимо выполнить в программе несколько раз, то мы напишем соответствующую функцию только один раз, а затем будем вызывать ее всегда, когда это требуется.
Во-вторых, мы можем применять одну и ту же функцию, например printf(), в различных программах. Даже в том случае, когда некоторая задача выполняется только в одной программе, лучше оформить ее решение в виде функции, поскольку функции повышают уровень модульности программы и, следовательно, облегчают ее чтение, внесение изменений и коррекцию ошибок.
Предположим, например, что мы хотим написать программу, которая делает следующее:
Соответствующую программу можно спроектировать так:
main () { int list[50]; readlist (list); /* Ввод набора чисел. */ sort (list); /* Сортировка этих чисел. */ average (list); /* Поиск их среднего. */ }
Разумеется мы должны еще запрограммировать три функции: readlist(), sort(), average(), но... это уже детали. Используя смысловые имена функций мы четко определяем, что программа делает и как она организована. После этого можно заниматься каждой функцией отдельно и совершенствовать ее до тех пор, пока она не будет правильно выполнять требуемую задачу. Дополнительное преимущество данного подхода состоит в том, что если мы создадим функции достаточно общего вида, то их можно будет использовать и в других программах.
Что нам требуется знать о функциях? Нужно знать:
На следующем шаге мы рассмотрим первую из перечисленных задач: каким
образом определяются функции.