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

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

< Лекция 1 || Лекция 7: 123
Аннотация: Основная цель этого курса – научиться программировать в процедурах и функциях. На этом уроке рассматриваются функции. Показано, как функции определяются в математике и как они объявляются в программах. Рассмотрен синтаксис объявления. Показано, как функции, для которых задано их объявление, могут быть неоднократно вызваны в процессе работы программы. Оператор вызова метода класса (процедуры или функции) является базисным оператором в ООП. На примерах решения конкретной задачи показано объявление и вызов простой функции в консольном и Windows проектах. Еще одна задача, предполагающая введение функции, предлагается для самостоятельной работы.

Основная цель нашего курса – научиться программированию в процедурах и функциях. Формально, в языке C# нет понятий "процедура" и "функция". В языке используется общее понятие – "метод класса". Фактически, метод может быть реализован либо как функция, либо как процедура. Этот урок мы посвятим функциям.

Проект для лекции Lesson4.zip

Функции в математике

Функции в математике являются одним из основных понятий. Рассмотрим, как в математике определяется функция от одного аргумента: y = F(x).

Будем полагать, что заданы два множестваX и Y. Множество X будем называть областью определения, а множество Y – областью значений функции F. Для каждого элемента x из области определения функция F задает элемент y из области значений. Другими словами, функция F задает отображение элементов множества X на элементы множества Y. Важно понимать, что функция задает однозначное отображение – каждому элементу x из области определения X соответствует в области значений Y ровно один элемент.

Заметим, что для функций разрешается отображать разные элементы множества X на один и тот же элемент y из множества Y.

Множества X и Y могут совпадать. В этом случае функция строит отображение множества на себя - X отображается в X.

Отображение F задает взаимно однозначную функцию, если разные элементы из множества X отображаются в разные элементы множества Y, то есть справедлива импликация:

x1 ≠ x2  => F(x1) ≠ F(x2)

В этом случае у функции F существует обратная функция: x = F-1(y).

Рассмотрим некоторые примеры. Пусть X и Yмножества целых чисел. Функция y = x +1 каждое целое число отображает в следующее целое, на единицу больше числа x. Это взаимно однозначная функция. Обратная к ней функция x = y – 1 отображает число y в предыдущее число, на единицу меньше, чем число y.

Отображение y = x2 также является функцией, но на множестве целых чисел эта функция не является взаимно однозначной, поскольку два значения, например, 5 и -5 отображаются в одно и то же значение 25. Но если в качестве множеств X и Y рассматривать множества целых неотрицательных чисел, то существует обратная функция x = \sqrt y, где рассматривается так называемый арифметический корень, принимающий только положительные значения, так что корень из 25 равен числу 5.

Более общим понятием, играющим важную роль как в математике, так и в программировании является понятие "отношение". Бинарное отношение R, также, как и функция от одного аргумента, задается на двух множествах X и Y. Отношение R задает, какие пары элементов, взятые из двух множеств, принадлежат отношению, что обычно записывается в виде >. Отношение, в отличие от функции, не требует единственности элемента y для заданного x. Классическим примером отношения на множестве целых чисел является отношение "больше": x >> y. Пары <5, 3>, <5, 0>, <5, -10> принадлежат этому отношению. Для отношения "больше" существует обратное отношение "меньше".

Заметьте, каждая функция задает отношение, но не каждое отношение определяет функцию.

Определение функции обобщается на случай функции от n аргументов. В этом случае областью определения является декартово произведение n множеств: X1 * X2 * ... * Xn.

Функция F(x1, x2, ..., xn) каждой совокупности из n значений, каждой n-ке значений <x1, x2, ...? xn> ставит в соответствие единственный элемент y из множества значений Y.

Более подробные сведения об отношениях и функциях с примерами и упражнениями приведены в курсе "Введение в логику", опубликованном на сайте intuit.ru.

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