Приклади визначення функцій
Приклад 1
# include <stdio.h>
# include <conio.h>
/* Заголовок функції визначає тип результату int, по замовчуванню формальні і фактичні параметри x i y – типу int */
//----Функція обчислення суми двох значень;
static add (int, int y) // Заголовок функції
{ return (x+y); } //функція повертає х+у
//----головна функція:
void main ( )
{
clrscr( );
print f (“ %d \n”, add(2,3)); // виклик функції
print f (“ \n Для завершення програми натисніть будь-яку клавішу \n”)
getch( );
}
Приклад 2
#include<stdio.h>
#include<conio.h>
//функція визначення покажчика на більш короткий
//рядок і його виведення:
char *minstr(char s1[],char s2[])
{
int i:=0;
while (s1[i]!=’\0’ && s2[i]!=’\0’) i++;
if (s1[i]==’\0’) return (s1); else return (s2);
}
void main ()
{
clrscr();
printf(“%s\n”, minstr(“aaa”,”bbbb”));
printf(“\n Для завершення програми натисніть будь-яку клавішу \n”);
getch();
}
Форма оператора return:
return (вираз);
Де вираз – визначає значення поверненого результату, дужки не обов’язкові, але можливі варіанти, коли вони обов’язкові, інакше виконання програми припиняється без будь-яких пояснень.
Приклади оператора return для повернення результату:
return(х*х); return у; return(*s); return(0);
Приклад програми використовує функцію для обчислення кубів чисел. Результат функції сube повертається за допомогою оператора return в точку виклику. Фактичними значеннями параметра х функції сube є:
pi – константа;
y—значення змінної типу float;
u вираз: 2*cos(pi-0.3).
#include<conio.h>
#include<math.h>
#include<stdio.h>
FILE *frz;
#define pi 3.1415926 //pi—глобальна константа
void main()
{ double cube(double x); //визначення функції cube
double y;
frz=fopen(“can”,”w”);
clrscr();
fprintf(frz,”\n Пи в кубе = %f\n”,cube(pi));
y = .2*cos(pi-0.3);
fprintf(frz,”y=.2*cos(pi-0.3) в кубе =%f\n”, cube(y));
fprintf(frz,” ‘.2*cos(pi-0.3) ‘в кубе = %f\n, cube(.2*cos(pi-0.3)));
getch();
}
// ---- функція обчислення кубів:
double cube(double x) // заголовок функції cube
{ return x*x*x;
} // формування повертаємого результату
Результат виконання програми:
Пи в кубе = 31.006275
y=.2*cos(pi-0.3) в кубе = -0.006975
‘.2*cos(pi-0.3)’ в кубе = -0.006975
Програма з функцією min для вибору найменшого з трьох значень.
#include<conio.h>
#include<stdio.h>
void main()
{ int min(int v1, intv2, intv3);
clrscr();
printf(“\n Найменше значення =%d”, min(-12,15,10));
getch();
}
//-----функція вибору min значення:
min(int v1, intv2, intv3) // результат цілий по замовчуванні
{if (v1<=v2 && v1<=v3) return v1;
if (v2<=v1 && v2<=v3) return v2;
return v3;
}
Оголошення функції – це її заголовок, після якого стоїть символ ; тому в процесі відлагодження чергової функції доцільно спочатку написати і відкомпілювати текст, а потім заголовок функції скопіювати для оголошення.
Приклади оголошення функцій:
void p(stud *str); // функція не повертає результат
void obr(float a[m][n],float b[m]); // функція не повертає результат
int add(int I, int j); //результат типу int
double cube(double x); // результат типу double
char *str(char *c); //результат—покажчик на тип char
// функція без параметрів і не повертає результат
void draw(void);
int ptr(void *c); // параметр – покажчик на будь-який тип
int (*fptr) (i int, j int); /* fptr- покажчик-змінна на функцію, яка повертає результат типу int */
FILE *funt(); //повернений результат – покажчик на файл
ff(int i); // по замовчуванню повернений результат типу int
Схема виклику одних функцій іншими:

Для виклику F1 із main в main треба оголосити F1. Для виклику F3 із F1 в F1.Треба оголосити F3. Для виклику F2 із F3 оголошення F2 не потрібно, тому що її текст розташований в файлі до текста F3, з якої викликається F2.
