КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Результат работы программы
Пример функции вычисления факториала Х1 5 - Старый стиль определения функции Современный стиль определения функции Определение функции Каждая функция в языке Си должна быть определена, т. е. должны быть указаны: • тип функции; • имя функции; • информация о формальных параметрах; • тело функции. Существует два формата определения функции — современный стиль определения функции и старый стиль определения функции [5].
тип функции имя функции (имена формальных параметров через запятую) объявление формальных параметров; { /* тело функции */ return (<выражение>); } Пример float у; y=x+z; return(у] } Различают системные (в составе систем программирования) и собственные функции. Разбиение программ на функции дает следующие преимущества: • Функцию можно вызывать из разных мест программы, что позволяет избежать повторного программирования. • Одну и ту же функцию можно использовать в разных программах. • Функции повышают уровень модульности программы и облегчают её проектирование. • Использование функций облегчает чтение и понимание программы, ускоряет поиск и исправление ошибок. Функцию можно представить в виде некоторого «черного ящика», у которого несколько входов и один выход (рис. 1.1). В «черный ящик» поступает информация, обрабатывается и выдаётся результат. Для программиста неважно, что происходит внутри функции, ему необходимо только знать входы и выход. Использование подобного подхода позволяет на стадии проектирования сконцентрировать внимание на общей структуре программы. В языке Си нет требования, чтобы определение функции обязательно предшествовало её вызову. Функции могут определяться как до функции main, так и после её. Нельзя определять одну функцию внутри другой. Возврат значения в вызвавшую функцию осуществляется с помощью оператора return. Фактические Формальные параметры параметры
~ Х1'
в к =г : ж I « 9 Г- Х2 Хп
ЧЁРНЫЙ ЯЩИК типФункция (тип Х1, тип Х2....... тип Хп) { тело функции } Р Возврат значения в точку вызова return <выражением Рис. 1.1. Схема работы функции #include <stdio.h> /* Определение функции factorial()*/ double factorial(double i) { double j,k; k=l; for (j=2;j<i+l;j=j+l) k=k*j; return k; /* Возврат в программу */ /^вычисленного значения */ } /* Главная функция*/ main() { double i; printf("\n Введите целое число\п"); scant("%lf",&i); printf("\n%lf!=%lf\n",i, factorial (i)); } Введите целое число 7.0000001=5040.000000 Вызов функций Общий вид вызова функции имя функции(<список фактических параметров>); Фактический параметр — это величина, которая присваивается формальному параметру при вызове функции. Таким образом, формальный параметр — это переменная в вызываемой функции, а фактический параметр — это конкретное значение, присвоенное этой переменной вызывающей функцией. Фактический параметр может быть константой, переменной или выражением. Фактический параметр сначала вычисляется, а затем его значение передается в функцию. Если в функцию требуется передать несколько параметров, то они записываются через запятую [5]. Возврат значения в точку вызова Функция может передать в вызывающую программу только одно значение, для этого используется оператор return. return(<выражение>); Действие оператора следующее: значение выражения, заключенного в скобки, вычисляется и передается в вызывающую функцию. Возвращаемое значение может использоваться в вызывающей программе как часть некоторого выражения. Оператор return оказывает и другое действие. Он завершает выполнение функции и передает управление следующему оператору в вызывающей функции. Оператор return не обязательно должен находиться в конце тела функции. Пример использования return в середине функции void function() { return; } В примере оператор return завершает выполнение функции function и передает управление в вызывающую функцию. Никакое значение при этом не передается. Вызов функции зависит от того, возвращает она значения или нет. Если функция возвращает значения, то её вызов производится из математических и логических выражений. Пример функции определения максимума из двух чисел: а = b*max(xy);
Функции могут и не возвращать значения, а просто выполнять некоторые вычисления. В таком случае указывается пустой тип данных void, и отсутствует оператор return. Пример функции, не возвращающей значения: spravka(a);
Дата добавления: 2014-11-29; Просмотров: 393; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |