Создание и использование функций в языке Си

Содержание

Слайд 2

Функция Функция – это именованный логически целостный фрагмент программы. Данные могут

Функция

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

в функцию и функция может возвращать значение.
Программа на языке Си состоит из функций - базовых блоков в которых выполняются все операции. Функции могут быть размещены как в одном файле программы, так и в разных файлах. Концепция функции в языке Си покрывает все типы подпрограмм в других языках программирования: функции и процедуры.
Слайд 3

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

Функция

Можно перечислить основные удобства использования функций:
функции позволяют писать модульные программы;
функции позволяют

избежать дублирования кода в одной программе;
несколько программ могут совместно использовать код одной функции;
программы легче читаются, так как детали “скрыты” внутри функций;
программы легче пишутся, поскольку функции позволяют разбить большие задачи на более простые задачи.
Слайд 4

Функция Стандартный вид объявления функций следующий: спецификатор_типа имя_функции (список параметров) {

Функция

Стандартный вид объявления функций следующий:
спецификатор_типа имя_функции (список параметров)
{
тело функции

}
Спецификатор_типа определяет тип возвращаемого функцией значения с помощью оператора return. Это может быть любой допустимый тип. Если тип не указан, предполагается, что функция возвращает целочисленные значения.
Слайд 5

Функция Список параметров - это разделенный запятыми список переменных, получающий значение

Функция

Список параметров - это разделенный запятыми список переменных, получающий значение аргументов

при вызове функции. Функция может быть без параметров и в таком случае список параметров должен состоять из ключевого слова void.
Имя функции является идентификатором. Подобно другим идентификаторам имя может содержать буквы, цифры, символ подчеркивания, но не может начинаться с цифры.
Слайд 6

Функция Имя функции считается внешним идентификатором; оно может использоваться внутри любой

Функция

Имя функции считается внешним идентификатором; оно может использоваться внутри любой другой

функции (или внутри определяемой функции).
Пример:
double area_circle(double radius)
{
return 3.14159*radius*radius;
}
Слайд 7

Функция Оператор объявления прототипа функции имеет следующий вид: возвращаемый_тип имя_функции (список

Функция

Оператор объявления прототипа функции имеет следующий вид:
возвращаемый_тип имя_функции (список объявлений типов

параметров);
Пример: double area_circle(double rad);
/* это определение функции*/
Любая вызывающая функция должна быть проинформирована о типе возвращаемого значения и о типах каждого из аргументов путем использования оператора объявления прототипа функции.
Слайд 8

Если объявление прототипа функции задано, то компилятор проверяет правильность использования функции.

Если объявление прототипа функции задано, то компилятор проверяет правильность использования функции.

В противном случае подобные ошибка дадут о себе знать только при выполнении программы. Если определение функции предшествует вызову, то объявление прототипа функции не требуется.

Функция

Слайд 9

Объявление может быть сделано перед вызывающей функцией или внутри ее: int

Объявление может быть сделано перед вызывающей функцией или внутри ее:
int main()
{
double

area_circle(double); /* это объявление функции*/
...
}
Объявление функции area_circle() известно только той функции, в которой оно сделано, то есть функции main(). Если расположить строку с объявлением функции перед функцией main(), то эта функция будет известна всем функциям, расположенным в исходном файле после него.
double area_circle (double); /*
и это объявление функции*/
int main ()
{...}
Слайд 10

Если при определении функции она будет объявлена с другим типом возвращаемого

Если при определении функции она будет объявлена с другим типом возвращаемого

значения (например, float), будет выдано сообщение об ошибке, состоящей в повторном объявлении функции.
В объявлении прототипа функции могут указываться необязательные (фиктивные) имена.
Для функций, не возвращающих никакого значения, используется тип данных void. Для такой функции при неумышленном использовании оператора присваивания:
X = f();
во время компиляции будет выдано сообщение, указывающее на ошибку в операции присваивания.
Слайд 11

Пример: #include int main( ) { double area_circle(double); /* это объявление

Пример:
#include
int main( )
{
double area_circle(double);
/* это объявление функции*/

double rad = 50.5, area;
area=area_circle(rad);
printf("Area is %f\n",area);
}
double area_circle(double radius)
/* это определение функции*/
{
return 3.14159*radius*radius;
}
Слайд 12

Реализация программы с объявлением функции

Реализация программы с объявлением функции

Слайд 13

Реализация программы без предварительного объявления функции

Реализация программы без предварительного объявления функции 

Слайд 14

Пример функции перед функцией main()

Пример функции перед функцией main() 

Слайд 15

Пример функции внутри функции main()

Пример функции внутри функции main() 

Слайд 16

Вообще оператор return имеет два назначения. Во-первых, немедленный выход из функции.

Вообще оператор return имеет два назначения. Во-первых, немедленный выход из функции.

То есть он осуществляет выход в вызывавший функцию код. Во-вторых, может использоваться для возврата значения. Когда используется оператор return в main(), программа возвращает код завершения вызывавшему процессу (операционной системе). Возвращаемое значение должно быть целого типа. Большинство операционных систем, трактуют 0 как нормальное завершение программы. Остальные значения воспринимаются как ошибки. Если не определено возвращаемое значение, то в операционную систему будет передано неизвестное значение. Поэтому гораздо полезнее использовать оператор return. 
Слайд 17

Пример. Табуляция функции (из практического задания) без использования функции СИ.

Пример. Табуляция функции (из практического задания) без использования функции СИ. 

Слайд 18

Пример. Табуляция функции (из практического задания) c использованием функции

Пример. Табуляция функции (из практического задания) c использованием функции

Слайд 19

Замечания к построению алгоритма нахождения корня

Замечания к построению алгоритма нахождения корня

Слайд 20

Замечания к построению алгоритма нахождения корня

Замечания к построению алгоритма нахождения корня

Слайд 21

Замечания к построению алгоритма нахождения корня

Замечания к построению алгоритма нахождения корня

Слайд 22

Замечания к построению алгоритма нахождения корня

Замечания к построению алгоритма нахождения корня

Слайд 23

Замечания к построению алгоритма нахождения корня

Замечания к построению алгоритма нахождения корня