Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Для обращения к функции используется имя функции.

Формат вызова:

Имя_функции (список),

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

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

Выполнение вызова функции происходит следующим образом.

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

Пример программы

Найти корни уравнения x = sin2 x / 4 + 0, 27 методом итераций с точностью e.

Расчетная формула x 1 = sin2 x 0 / 4 + 0, 27, где условие нахождения искомого корня | x 1x 0| < e – x 0 - начальное значение корня уравнения (обычно принимается равным нулю), x 1 - значение корня уравнения на следующей итерации, e - заданная точность вычисления корня (например, 0.001).

В программе используется старый стиль определения функции:

#include < stdio.h>

#include < math.h> /*Подключение стандартных библиотек*/

#define EPS 0.001 /*Задание точности вычисления корня*/

float root(x, E) /*Заголовок функции с именем root*/

float x, E; /*Описание аргументов функции*/

{ /*Тело функции*/

float x1;

for (x1=pow(sin(x), 2)*.25+.27;

fabs (x1− x)> E;

x=x1,

x1=pow(sin(x), 2)*.25+.27);

return (x1);

} /*Завершение описания функции root*/

int main()

{

float x0;

printf (" \n Введите значение x0");

scanf (" %f", & x0);

printf (" \n Корень уравнения %f", root(x0, EPS));

//Вызов функции root()

return 0;

}

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.