Слайд 21.Описание функции
Заголовок
name_fun(арг1,арг2,…арг n)
Описание локальных переменных
Операторная часть
{
описание 1;
.
. .
описание m;
оператор_1;
. . .
оператор_k;
}
Слайд 3где:
int
float
void
список формальных аргументов
с указанием их типов
name_fun
( арг1, арг2,… арг n)
Слайд 4 1. Если функция описана как void и не возвращает
значений,
то ее вызов будет самостоятельным оператором и имеет вид:
name_fun
( аргf1, аргf2,… аргfn)
где:
аргf1, аргf2,… аргfn список фактических аргументов
ВЫЗОВ ФУНКЦИИ
Слайд 5Пример:
составить функцию, которая определяет
большее значение из двух заданных чисел
f = max(x,y)
и печатает результат в самой функции.
void f_max (float a, float b)
{
float max;
if(a>b) max = a;
else max = b;
printf (“\n %4.1f”, max);
}
int main()
{ float x, y, z;
scanf(“%f%f”,&x,&y);
f_max(y, x);
}
Слайд 62. Если в описании функции указан тип,
то вызов функции
не является самостоятельным оператором,
а должен записываться внутри какого-либо другого
оператора,
например, оператора присваивания, условного оператора и т.п.
b=name_fun ( аргf1, аргf2,… аргfn)
Слайд 7Пример:
составить функцию, которая определяет большее
значение из двух заданных
f = max(x, y)
и распечатать результат в основной программе.
float fmax (float a, float b)
{
float max;
if(a>b) max = a;
else max = b;
return max;
}
void main()
{
float x, y, z;
scanf(“%f%f”,&x,&y);
z =f max(y, x);
printf(“\n%4.1f”, z);
}
Слайд 8Месторасположение описания функций
1) Описание функции до основной программы
/*описание функции*/
void myfun
( int x, int y)
{
. . .
}
/*основная программа*/
int main()
{. .
.
/*вызов функции*/
myfun (x, y);
. . .
}
Слайд 9
2)Описание функции идет после основной программы
/*объявление прототипа функции (указание заголовка)*/
void
myfun (int x, int y);
/*основная программа*/
int main()
{. . .
/*вызов функции*/
myfun
(x, y);
}
/*описание функции*/
void myfun ( int x, int y)
{
. . .
}
Слайд 10ВАРИАНТЫ ОПИСАНИЯ И ИСПОЛЬЗОВАНИЯ ФУНКЦИЙ.
Слайд 11Функция не возвращает значений.
при
описании должен быть указан функции void;
вызов функции является самостоятельным
оператором.
Слайд 12 а)Функция не имеет аргументов
Пример1: Рассчитать y
= x*sin(x) для 6 значений, начиная с х=0 с шагом
dx=0.1. Результаты распечатать в самой функции.
void prim ()
{
int i, n=6;
float x=0, y;
for (i=1; i<=n; i++)
{
y=x*sin(x);
printf (“%f %f\n”, x, y);
x+=0.1;
}
}
void main ()
{
prim();
}
Слайд 13б)Функция имеет аргументы
Пример2: Рассчитать y = x*sin(x) для n значений,
начиная с х=0 с шагом dx=0.1.Результаты распечатать в самой функции.
В качестве передаваемого аргумента используем количество вычислений n.
void prim (int n)
{ int i;
float x=0, y;
for(i=1; i<=n; i++)
{
y=x*sin(x);
printf(“%f_%f\n”,x, y);
x=x+0.1;
}
}
Слайд 152.Функция возвращает одно значение через свое имя.
при описании
должен быть указан конкретный тип функции;
внутри функции должна
быть описана дополнительная переменная,
тип который совпадает с типом функции и которая по сути хранит
результаты вычислений;
внутри функции должен присутствовать оператор return;
вызов функции не является самостоятельным оператором.
Слайд 16Пример:
составить функцию, которая определяет большее
значение из трех заданных
чисел f = max(x, y,z)
и распечатать результат в основной
программе.
float fmax (float a, float b, float c)
{
float max;
if(a>b) max=a;
else max=b;
if(c>max) max=c;
return max;
}
int main()
{
float x, y, z, rez;
scanf(“%f%f%f”, &x,&y,&z);
rez=fmax(y,x,z);
printf(“\n rez =%4.1f”, rez);
}