Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прилож В2 Описание языка С ч 2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
382.46 Кб
Скачать

45

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ В

6. Функции в языке с

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

В языке С любая программа – это функция с именем main().

Виды функций: 1. Стандартные функции; 2. Функции, разработанные программистом.

Стандартные функции – это готовые к использованию функции, например sin(x), cos(x), scanf(...), printf(...) и другие. Они размещены в библиотеках языка С. Для их использования необходимо: а) подключить соответствующий заголовочный файл с помощью директивы препроцессора #include; б) вызвать требуемую стандартную функцию, указав ее имя и задав значения параметров.

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

Например: заданы три массива А(10), В(15), С(30). Для каждого массива определить среднее значение: sa, sb, sc.

Для использования функций в программе необходимо:

  1. Описать функцию.

  2. Сделать к ней обращение (вызвать функцию) и задать конкретные параметры для вычисления.

6.1 Описание функции

Форма описания функции:

тип имя (тип1 арг1, тип2 арг2, ...) /*заголовок функции*/

{

описание 1; /*описание

... внутренних переменных,

описание M; массивов*/

оператор 1; /*выполняемая

... часть*/

оператор N;

}

Заголовок функции:

тип – это тип возвращаемого функцией значения (результата) через ее имя.

Определенный тип – int, float, char,...

Неопределенный тип – void

Если тип не указан, то по умолчанию – int.

main()  int main()

void main()

имя – это идентификатор для обозначения функции

типI аргI,... – описания аргументов функции

типI тип аргумента

аргI имя аргумента

Функция может не иметь аргументов: тип имя ()

Примеры:

float my_func1(int k, float c, float d, char q)

{

...

}

void ftc(float a[], float *ptk, int n, long s)

{

...

}

Нельзя написать:

float my_func1(int k, float c,d, char q)

{...}

Описание функции может быть записано до или после функции main(), но не внутри ее:

1. До main():

При этом ничего дополнительно не надо записывать, т. к. компилятор сначала рассматривает f1(), а потом main().

2. Функция – после main()

void f1(int, float, chat, float *); /*прототип функции*/

Void main()

{

/*прототип функции можно поместить здесь*/

...

вызов f1(...);

...

}

/*описание функции f1*/

void f1(int k, float x, char p, float *ptm)

{

...

}

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

При вызове функции, ей задаются конкретные аргументы (фактические параметры), для которых функция выполняет вычисления. Есть 2 формы вызова функций:

1. Функция имеет тип void. Вызов является самостоятельным оператором:

имя (факт_арг1,факт_арг2,...);

Фактические аргументы должны соответствовать списку аргументов в описании функции (по количеству, порядку следования, типам).

float z=1.5;

float *pts;

f1(20,z,’A’,&z);

f1(30,*pts,’N’,pts);

2. Функция имеет определенный тип (не void). Вызов не является самостоятельным оператором. Он записывается внутри другого оператора (присваивания, if, printf, ...):

u=имя(факт_арг1,факт_арг2,...);

if(имя(факт_арг1,факт_арг2,...)...){...}

float fsum(float a, float b)

{

return a+b;

}

/*Вызов float fsum :*/

float x=5.5,y=7.1,z;

z=fsum(x,y); /* z==12.6 */