Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОД_ЛАБ.doc
Скачиваний:
4
Добавлен:
14.11.2019
Размер:
1.04 Mб
Скачать

Теоретичні відомості.(«с») Функції в мові Сі.

Використання в програмах завершених модулів, що призначені для вирішення деяких локальних задач, дозволяє значно спростити час розробки програм і підвищити їх ефективність. Такі завершені модулі називаються підпрограмами. До них можна багаторазово звертатися за іменем, передаючи вхідні дані і одержувати результати. В мові С використовується тільки один тип підпрограм – функції. С-програма – це сукупність функцій, одна з яких – main().

Треба відрізняти оголошення функції і опис функції. Якщо функція оголошена, то інші функції можуть містити звертання до неї.

Оголошення функції.

Основна форма опису функції має вигляд :

тип <ім’я функції>(список параметрів)

{

тіло функції

}

Тип визначає тип значення, яке повертає функція за допомогою оператора return. Якщо тип не вказаний, то за замовчуванням він буде int. Список параметрів складається з переліку типів і імен параметрів, розділених комами. Функція може не мати параметрів, але круглі дужки обов’язкові.

Приклад вірного переліку параметрів:

F(int x, int y, float z)

Неправильно f(int x,x, floatz);

Прототипи функцій.

До першого виклику функції треба повідомити про тип результату і кількість та типи аргументів. Для цього в Сі використовується поняття прототипу функції, який задається так:

Тип <ім’я функції> (список параметрів);

Використання прототипу функції є оголошенням функції.

Найчастійше він співпадає з заголовком функції, але не завжди. Імена формальних параметрів у прототипі ігноруються компілятором, тому вони не грають ніякої ролі.

Наприклад:

Int func(int a,float b,char*c);

Або

Int func(int,float,char*) – однакові прототипи.

Приклад:

#include<stdio.h>

float sqr(float a); /*прототип(оголошення)*/

main()

{

float b;

b=5.2;

printf(“квадрат числа %f рівний %f”,b,sqr(b));

}

float sqr(float a) /*опис функції*/

{

return a*a;

}

цей короткий приклад містить прототип функції sqr(), на початку, і опис її.

Якщо функція не має аргументів,то в прототипі бажано вказувати void замість аргументів. Наприклад:func(void).

Область дії і область видимості змінних.

Область дії-це правила, які встановлюють, які дані доступні з даного місця програми. В мові Сі кожна функція – це окремий блок програми. Попасти в тіло функції не можна інакше, як через її виклик. З точки зору області дії відрізняють три типи змінних: глобальні, локальні і формальні параметри.

Локальні змінні - це змінні оголошені всередині блоку, або функції. У С є правило: змінна може бути оголошена всередині будь-якого блоку програми. Локальна змінна доступна всередині блоку, де вона оголошена. (область дії – блок).

Приклад:

#include <stdio.h>

void f(void);

main (void)

{

int i;

i=1;

f () /* звертання до функції */

printf(“у функції main значеня i = %d\n”,i);

}

void f (void)

{

int i;

i =10;

printf(“у функції f значення i= %d \n”,i);

}

Значення і в main() не змінюється.

Формальні параметри – це змінні оголошені при описі, як аргументи. Їх області дії – в тілі функції. ­­­­

Глобальні змінні – це змінні, оголошені поза межами функції. Їх область дії – вся програма.

Самі функції завжди глобальні, бо в мові С заборонено визначати функції всередині інших функцій.