Практическое программирование на не вполне знакомом языке, страница 2

4. Результат функции - это выходная переменная, которую формирует функция и значение которой используется затем в том месте программы, где она вызывается. Результат, как любая другая переменная, должен быть определенного типа. В данном случае -вещественное число -минимальный элемент массива. Сразу огорчим: массив не может быть результатом функции, только простые переменные.

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

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

7. После открывающейся скобки в теле функции присутствуют определения локальных переменных. Это переменные, которые "известны" только данной функции и являются ее собственностью. Более того, они создаются в памяти при входе в тело функции и исчезают при выходе. Локальными переменными пользуется функция при необходимости иметь собственные данные.

8. Вне тела функции можно определить глобальные переменные. Этими переменными могут пользоваться все функции, следующие за ними по тексту. Глобальные переменные представляют собой общие данные программы.

9. Сразу после определения функции и далее по тексту до конца программы ее можно вызывать из любой другой функции. Вызов функции -это выполнение ее тела с заданными значениями формальных параметров.

10. Значения формальных параметров, с которыми будет выполняться тело функции при вызове, определяются списком фактических параметров, которые следуют в вызове функции вслед за ее именем, разделенные запятыми и заключенные в скобки.

11. Перед вызовом функции фактические параметры, согласно списка, копируются в соответствующие формальные параметры. В данной точке программы это соответствует действию nn=10, где nn -формальный параметр, 10 -фактический параметр - целая константа. Таким образом, функция получает на вход данные через фактические параметры, которые она "видит" как соответствующие им формальные.

12. Если формальный параметр является массивом, то действует исключение из общего правила. Функция не создает собственный массив (в данном случае А[]), а "отображает" пока неизвестным нам образом свой массив на тот, который является фактическим параметром (в данном случае B[]). То есть вместо массива A[] транслятор создает указатель на произвольный массив, который будет "подсунут" функции при ее вызове. Поскольку массив A[] "ненастоящий", размерность его может быть переменной и ее можно не указывать. На месте фактического параметра -массива в вызове функции указывается только его имя (без скобок).

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

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

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

Шаг 3. Операции и выражения