КАТЕГОРИИ: Архитектура-(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) |
Основные определения. 9.1. Основные определения
ЛЕКЦИЯ № 9
ТЕМА: ПОДПРОГРАММЫ (ФУНКЦИИ) в С/С++.
СОДЕРЖАНИЕ
9.1. Основные определения. 9.2. Передача параметров в подпрограммы. 9.3 Область видимости переменных в функциях С/С++, 9.4. Перегрузка функций в C++. Подпрограмма – именованная, логически законченная группа операторов языка, которую можно вызвать для выполнения любое количество раз из различных мест программы. В языке С/С++ подпрограммы реализованы в виде функций. Функция принимает параметры и возвращает единственное скалярное значение. Как известно, программа на С/С++ состоит из одной или нескольких функций. Функция должна быть описана перед своим использованием.
Описание функции состоит из заголовка и тела функции. Заголовок_функции { тело_функции } Заголовок функции имеет вид type имя_функции ([список параметров])
type – тип возвращаемого функцией значения; Тип функции показывает, какое значение возвращает функция: целое, вещественное, строковое и так далее. Если тип функции не указан, то подразумевается, что функция возвращает целое значение типа int. список параметров – список параметров (аргументов) содержит перечень типов и имен величин, разделенных запятыми, и заключенных в скобки. Если функция не имеет параметров, то скобки все равно необходимы, хотя в них ничего не указывается, то есть в скобках в этом случае будет пустое место. Например: fun1(int a, int b, float d);
В случае, если вызываемые функции определены до функции main, структура программы будет такой. директивы компилятора ... Тип_результата f1(Список_переменных) { Операторы } Тип_результата f2(Список_переменных) { Операторы } ... Тип_результата fn(Список_переменных) { Операторы } int main(Список_переменных) { Операторы основной функции, среди которых могут операторы вызова функций f1, f2,..., fn }
В случае, если вызываемые функции определены после функции main или даже в другом файле, необходимо до первого вызова функции сообщить программе тип возвращаемого функцией значения, а также количество и типы ее аргументов. Подобное сообщение называется прототипом функции.
директивы компилятора ... Тип_результата f1(Список_переменных); Тип_результата f2(Список_переменных); ... Тип_результата fn(Список_переменных); int main(Список_переменных) { Операторы основной функции, среди которых могут операторы вызова функций f1, f2,..., fn } Тип_результата f1(Список_переменных) { Операторы } Тип_результата f2(Список_переменных) { Операторы } ... Тип_результата fn(Список_переменных) { Операторы }
Прототипы функции. Прототип функции имеет следующий вид Использование прототипа называют еще объявлением функции или просто ее declaration. Прототип может полностью совпадать с заголовком функции, хотя при объявлении функции компилятору необходимо знать только имя функции, количество аргументов и их типы и тип возвращаемого функцией значения. Поэтому имена аргументов как имена формальных параметров не имеют никакого значения и игнорируются компилятором.
int fun1(int x, int y, char* c); или int fun1(int, int, char*); Если возврата функции не требуется, то тип возвращаемого значения функцией – void. Возврат значений с помощью оператора return. Для того, чтобы функция вернула какое-либо значение, в ней должен быть оператор возврата return значение;
Если тип возвращаемого значения функцией – void, то оператор возврата просто – return и его можно даже опустить в теле функции. Return вызывает немедленный выход из функции и возврат в основную подпрограмму. С помощью оператора return из функции возвращается единственное значение. Это может быть число, адрес, структура.
Пример. Подпрограмма для вычисления определенного интеграла методом Ромберга.
Параметры 1. float (*f)(float) – указатель на функцию, возвращающую тип float и имеющую один формальный параметр (float). 2. float a –нижний предел интегрирования; 3. float b– верхний интегрирования.
float Romberg (float (*f)(float),float a, float b) { float d,s,h,rombint; int m,n,i,j,k; float t[15];
k =12; d = b - a; t[0] =(f(a) + f(b)) / (float)2.0; n = 1; for (i = 1; i < k+1; i ++) { s = (float) 0.0; n = 2 * n; h = d / n; for (j = 1; j <= n; j = j + 2) s = s + f(a + j * h); t [i+1-1]= (2* s/n + t [i-1]) / (float)2.0;
m = 1; for (j = i; j >= 1; j --) { m = 4 * m; t[ j -1] = t [j ] + (t[j ] - t [j - 1])/ (m - 1); } } rombint = t[0] * d;
return (rombint); }
Дата добавления: 2014-01-07; Просмотров: 189; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |