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

Лабораторна робота №5

Лабораторна робота №5 Функції Структури, об’єднання та типи означені програмістом

Мета роботи: — вивчення логічної організації програми і використання функцій у С/C++;

навчитися працювати зі складними типами даних при створенні програм на С/С++.

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

Процес розробки програмного забезпечення припускає поділ складної задачі на набір простіших задач і завдань. У C++ підтримуються функції як логічні одиниці (блоки тексту програми), які служать для виконання конкретного завдання. В термінології ООП функції – це методи, за допомогою яких об’єкти опрацьовують повідомлення.

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

Синтаксис функцій

В C++ функції мають такий синтаксис:

тип_результату ім’я_функції(список_параметрів)

{

//декларації

//оператори

return вираз;

}

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

Список параметрів може бути порожнім (void), або містити один чи більше параметрів, які відповідають аргументам даної функції при фактичному її виклику. Параметри в списку розділяються комою, кожен з них має такий синтаксис:

тип_параметра [&]ім’я_параметра

Необхідно дотримуватись таких правил відносно параметрів функції:

  1. Кожен параметр має мати власний тип_параметра. Не можна використовувати один і той же тип_параметра, щоб оголосити декілька параметрів (як при оголошенні змінних).

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

  3. Аргумент для параметра передається копіюванням, інакше говорять “за значенням”, якщо ви не вставляєте оператор звертання за адресою ( & ) після типу параметра. Коли параметр передає копію аргументу, то функція може змінювати тільки цю копію аргументу, яку ми безпосередньо використовуємо в межах функції. Початкове ж значення аргументу залишиться незміненим. Якщо ми використовуємо оператор &, то аргумент передається “через посилання”, оголошуючи параметр посиланням на аргумент. В цьому випадку параметр стає спеціальним псевдонімом аргументу. Будь-які зміни, які функція вносить в параметр, так само вносяться і в аргумент.

  4. Параметри-посилання отримують аргументи, які є іменами змінних. Не можна використовувати вираз чи константу як аргумент, який відповідає параметру-посиланню, так як вираз не має адреси.

  5. Параметри-копії приймають аргументи, які є константами, змінними або виразами. Тип аргументу повинен відповідати типу параметру або бути узгодженим з ним. Можна використовувати перетворення типів, щоб повідомити компілятору, як привести тип аргументу до відповідного типу параметра.

Наступні приклади показують різницю між параметрами-посиланнями і параметрами-копіями.

Нехай необхідно описати функцію, в яку передаються дві змінні цілого типу (в вигляді параметрів), і у функції ці змінні обмінюються своїми значеннями. Після виконання функції, змінні мають обмінятися значеннями.

Варіант №1:

void swap (int a, int b)

{ int temp;

temp = a;

a = b;

b = temp; }

//основна програма – main:

void main()

{ int a = 10, b = 20;

swap(a,b);}

Ця програма буде виконуватись з логічною помилкою. Після виконання функції нічого не зміниться: а = 10, b = 20.

Варіант №2:

void swap (int& a, int& b)

{ int temp;

temp = a;

a = b;

b = temp; }

//основна програма – main:

void main()

{ int a = 10, b = 20;

swap(a,b);}

Після завершення цієї програми: а = 20, b = 10.

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