Лабораторная работа: Работа с функциями в языке программирования Си

{int y;

y=(x<0)?–x:x; /*Определение абсолютной величины числа*/

return (y); /*Возвращает значение у вызывающей программе*/

}


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

Пример 2. Оформить в виде функции вычисление f=Öx + y/z.

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

Программа имеет вид:

#include <stdio.h>

main()

{ double f,x=5.5,y=10.1,z=20.5, vv() /*объявлены переменные и функция vv*/

f=vv(x,y,z); /*обращение к функции vv*/

printf("lf",f); /*вывод результата */

}

/*функция */

double vv(x,y,z)

double x,y,z; /*объявление переменных функции */

{double f;

f=sqrt(x)+y/z; /*вычисление значения функции */

return(f); /*возврат вычисленного значения функции */

}


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

Пример 3. В приведенной ниже программе вводятся некоторые значения переменных а и b, потом в функции izm они меняются местами.

#include <stdio.h>

main()

{int a,b;

scanf ("%d %d", &a, &b);

izm (&a, &b); /*обращение к функции izm; аргументами являются адреса переменных a и b*/

printf("%d, %d",a, b); /*вывод на экран измененных значений */

К-во Просмотров: 235
Бесплатно скачать Лабораторная работа: Работа с функциями в языке программирования Си