Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lexzii_08 / lexs_4_func.DOC
Скачиваний:
18
Добавлен:
17.05.2015
Размер:
113.15 Кб
Скачать

Приклади визначення функцій

Приклад 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.

Соседние файлы в папке lexzii_08