Опубликован: 28.04.2014 | Доступ: свободный | Студентов: 987 / 89 | Длительность: 01:30:00
Специальности: Программист
Лекция 7:

Процедуры и функции. Функции

< Лекция 1 || Лекция 7: 123

Вызов функции

Объявление функции является декларацией и не производит никаких вычислений. Для того чтобы функция действовала необходимо ее вызвать, задав в момент вызова значения фактических аргументов, которые и будут участвовать в выполнении. Синтаксически вызов функции похож на заголовок функции:

<имя функции> (<список фактических параметров>)

Фактический параметр, в отличие от формального параметра, заданного именем, может быть сколь угодно сложным выражением, содержащем, например, вызовы других функций. На вызов функции накладываются понятные, но довольно строгие ограничения. Вызов функции должен соответствовать ее объявлению. Это означает совпадение имени функции в точке вызова с именем, заданным при объявлении. Списки формальных и фактических параметров должны совпадать по числу параметров, а типы выражений, задающих фактические аргументы в точке вызова должны соответствовать типам формальных параметров, указанных в объявлении функции. Если формальный параметр имеет тип double, то в момент вызова ему нельзя передать значение типа string, хотя можно передать значение типа int.

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

Приведем примеры нескольких вызовов функции Quadrat:

double z; z = Quadrat(7);
double x = 5.5, y = 7.5, z = Quadrat(x + y);

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

double a = 3, b = 4, c = Math.Sqrt(SumAB(Quadrat(a), Quadrat(b)));

Одно из главных, хотя и не единственное достоинство процедур и функций в том, что один раз написав объявление функции, вызывать ее можно многократно. Как следствие, это позволяет существенно сокращать код программного проекта, что также способствует повышению надежности проекта, его корректности. Существует правило хорошего стиля программирования – "в проекте не должно быть дублирующего кода". Действительно, если такой код появляется, то это фрагмент кода следует оформить в виде процедуры или функции, тогда код будет присутствовать в одном экземпляре, а в нужных местах будет вызываться соответствующий метод (процедура или функция).

Задание

Задание 1

Постройте консольный и Windows проект, в котором используется функция, вычисляющая сумму целых чисел от 1 до N.

Задание 2

Постройте консольный и Windows проект, в котором используется функция, вычисляющая максимум из трех переменных – a, b, c.

< Лекция 1 || Лекция 7: 123
Дмитрий Лубченков
Дмитрий Лубченков
Николай Молдован
Николай Молдован