Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab10.doc
Скачиваний:
2
Добавлен:
13.09.2019
Размер:
439.3 Кб
Скачать

Міністерство освіти і науки, молоді та спорту України Технічний коледж національного університету водного господарства та природокористування Лабораторна робота № 10

з курсу “Основи програмування та програмного забезпечення”

Рівне 2012

Лабораторна робота № 10 “Програми з використанням нестандартних функцій та програм” з курсу “ Основи програмування та програмного забезпечення”

Упорядники: Пастушенко В.Й., Шатний С.В.

Робота 10. Програми з використанням нестандартних функцій і підпрограм.

10.1. Мета роботи

Навчитися оголошувати та викликати нестандартні функції та підпрограми в мові С.

10.2. Теоретичні відомості

Функції в мові С

Функції - це будівельні блоки мови С, самостійні одиниці програми, спроектовані для рішення конкретних задач, що звичайно повторюються декілька разів.

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

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

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

{

тіло функції

}

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

У списку параметрів для кожного параметра повинний бути зазначений тип. Приклад правильного списку параметрів:

t(int х, int у, float z)

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

f(int x, у, float z)

Приведемо приклад функції, що реалізує зведення числа а в натуральний степінь b:

float step(float a, int b)

{

float i;

if(a<0) return (-1); /* основа негативна */ а=1;

for(i=b;i;i--) a*=a;

return a;

}

Ця функція повертає значення -1, якщо основа негативна, і аn - якщо основа невід’ємна.

Оператор return має два використання.

По-перше, цей оператор викликає негайний вихід із поточної функції і повернення в програму, що викликає.

По-друге, цей оператор може використовуватися для повернення значення функції.

Відразу слід зазначити, що в тілі функції може бути декілька операторів return, але може і не бути жодного. У цьому випадку повернення в програму , що викликає , відбувається після виконання останнього оператора тіла функції.

Інший приклад - функція для знаходження найбільшого з двох чисел:

max(int a, int b)

{

int m;

if(a>b) m=a;

else m=b;

return m;

}

Можливо також написати цю функцію без використання додаткової перемінної:

max(int a, int b)

{

if(a>b) return a;

else return b;

}

Можна ще коротше:

max(int a, int b)

{

if(a>b) return a;

return b;

}

А можна і так:

max(int a, int b)

{

return (a>b)? a: b;

}

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

Використання функцій, що повертають покажчики, має деякі особливості. Покажчики не є ні типом ціле (int), ні типом беззнакове ціле (unsigned int). Їхніми значеннями є адреси пам'яті даних визначеного типу. Відповідно повинна бути описана і функція. Розглянемо приклад опису функції, що повертає покажчик на тип char. Ця функція знаходить у рядку перший пробіл і повертає його адресу.

char* find(char* string)

{

int i=0;

while (siring[i] != ' ')&&(string[i] != '\0') i++;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]