ЗМІСТ
ВСТУП
РОЗДІЛ 1 Функції
1.1 Модульна структура програм і способи інформаційного зв’язку модулів
1.2 Визначення, оголошення та виклик функції
1.3 Організація та активація функцій з іеформаційним зв’язком через аргументи і параметри. Передача значень функції
1.4 Використання вказівників при роботі з функцією, з даними аргумента і параметрами. Передача вказівників
1.5 Передача за посиланням
1.6 Організація та активація функцій з інформаційним зв’язком через зовнішні змінні
1.7 Рекурсивні функції
1.8 Вбудовані функції
1.9 Перевантажені функції
РОЗДІЛ 2 Програмні модулі
2.1 Завдання 1 Структури
2.1.1 Постановка завдання
2.1.2 Програма та програмна реалізація
2.1.3 Тестування завдання
2.2 Завдання 2 Фукція
2.2.1 Постановка завдання
2.2.2 Програма та програмна реалізація
2.2.3 Тестування завдання
2.3 Завдання 3 Масиви
2.3.1 Постановка завдання
2.3.2 Програма та програмна реалізація
2.3.3 Тестування завдання
2.4 Завдання 4 Операції над лінійним списком
2.4.1 Постановка завдання
2.4.2 Програма та програмна реалізація
2.4.3 Тестування завдання
2.5 Програма-монітор
2.5.1 Постановка завдання
2.5.2 Програма та програмна реалізація
2.5.3 Тестування завдання
ВИСНОВКИ
ПЕРЕЛІК ПОСИЛАНЬ
ДОДАТКИ
В теоретичній роботі розглядається організація функцій у прграмах і реалізація звернень до них.
1.1 Модульна структура програм і способи інформаційного зв’язку модулів
Програмне забезпечення автоматизованих комплексів задач має, як правило, модульну структуру, тобто складається з послідовності окремих модулів, упорядкованих за певною системою. У різних інструментальних системах програмування модуль постає у вигляді певної структурної одиниці: блоку, підпрограми, функції. У мові С++ модулем є функція.
Проектування програмного забезпечення здійснюється за заздалегідь вибраною проектувальником стратегією. Найчастіше використовується стратегія низхідного структурного проектування, під час якого розробка починається з визначення загальної функції, або ж мети, яка повинна бути реалізована ком-плексом загалом, а потім реалізовується покрокова деталізація цієї функції доти, доки весь комплекс не буде описаний достатньою мірою докладно.
На кожному кроці одну чи кілька окремих підцілей функцій представляють або за допомогою окремих модулів, або груп модулів. При цьому з’являється необхідність у деталізуванні нових функцій і т. д.
Зрештою, загальна функція програмного комплексу виражається за допомогою еквівалентної структури відповідним чином сполучених підфункцій. Кожна з таких підфункцій вирішує лише частину задачі, однак вона є простішою від початкової функції і часто допускає подальше розбиття, об’єднання та пере-вірку. Описаний процес не повинен бути чисто формальним. Якщо отримана на якомусь кроці функція достатньо проста, то її не слід штучно ускладнювати шляхом подальшого розбиття.
Після того, як визначена функціональна структура програмного комплексу, з’ясовується технологія обробки даних, тобто здійснюється вибір пакетної або діалогової технології. У теперішній час найчастіше використовується діалогова технологія, при якій доступ користувача до процесу обробки даних різко розширюється, тобто користувач отримує можливість звертатися послідовно до модулів, що обробляють кожен крок. Інтерфейс користувача, тобто його зв’язок з процесом обробки даних, у цьому варіанті доцільно реалізувати на основі системи меню різного рівня ієрархії.
Програмний комплекс мовою С++ являє собою множину функцій, між якими реалізуються визначені інформаційні зв’язки і які активізуються в наперед визначеній та ієрархічно упорядкованій послідовності. Після визначення модульної структури програмного комплексу програміст вирішує питання про структуру вхідних та вихідних даних, які мають бути строго уніфіковані в межах задач, про склад робочих змінних та класи використовуваної пам’яті. Для вибору класу пам’яті для кожної конкретної змінної аналізуються можливості передавання її значення в інші модулі, вимоги до збереження її значення в мо-мент завершення певного модуля.
Область дії змінних вибирається в межах викорис-товуваного програмістом класу пам’яті, визначає вид інформаційного зв’язку між окремими модулями. Якщо програма використовує автоматичні чи реєстрові змінні, то міжмодульний зв’язок повинен бути організований через аргументи і параметри, які без-посередньо вказуються у процесі звертання до функції і в заголовковій її частині. У цьому разі йдеться про використання функції з параметрами.
При використанні вказаних вище видів змінних може виникнути ситуація, коли необхідно активізувати функцію без передавання аргументів, тобто між модулями не існує інформаційного зв’язку. В цьому випадку функція оформлюється як функція без параметрів і в момент її активізації список аргументів не описується. Якщо програміст використовує зовнішні змінні, то інформаційний зв’язок між модулями здійснюється на їх основі без передавання аргументів та параметрів. У цьому разі говорять про використання функції без параметрів.
1.2 Визначення, оголошення та виклик функції
Функція — це логічно самостійна частина програми, котрою можуть передаватися параметри і яка може повертати значення. Кожна функція повинна мати ім’я для виклику функції. Ім’я одної з функцій — main( ) — має бути присутнім у кожній програмі, і воно зарезервоване.
При роботі з локальними змінними інформаційний зв’язок є єдиним видом міжмодульного зв’язку. З використанням функцій у мові С++ пов’язані три поняття: визначення функції; оголошення функції; виклик.
Визначенням функції називається код, який описує те, що робить функція. Визначення функції потрібно проводити за такою схемою:
<тип вертаного значення> <ім’я функції> (<список параметрів>)
{
<тип> <внутрішні змінні>;
<оператори;
[return(вираз);]
}
Перед першою фігурною дужкою стоїть заголовок визначення функції, між фігурними дужками міститься тіло визначення функції. Тіло функції — це складовий оператор, що містить операто-ри, які визначають дії функції. Синтаксис мови С++ забороняє всередині визначення функції поміщати визначення ще однієї функції. Тексти всіх функцій повинні бути записані послідовно, один за іншим.
void fun (int х, float у) // заголовок функції
{ // початок тіла функції
...
} // кінець тіла функції
Тип вертаного функцією значення вказує тип даних результату, що повертається із функції оператору її виклику. В С, якщо тип значення, що повертається функцією, не заданий, то функція за замовчуванням повертає значення int. В С++ необхідно явно оголошувати тип значення, що повертається функціями. Якщо функція не вертає значення, то її тип повинен бути вказаний як void.
Ім’я функції формується за правилами написання ідентифікатора. Потрібно пам’ятати, що синтаксис мови С++ чутливий до регістра символів, тому
int Fun( )
int fun( )
int FUN( )
відносяться до заголовків трьох різних функцій.
Список параметрів — інакше його називають списком формальних параметрів — розділений комами список змінних, які приймають значення в момент активізації функції під час її виклику. Як об’єкти списку можуть використовуватися прості змінні, масиви, вказівники, а також типи, що визначаються користувачем. Список параметрів може бути відсутнім, тоді список параметрів задається як void. Список параметрів береться в круглі дужки, після яких точка з комою не ставиться. С++ відрізняється від С способом завдання порожнього списку параметрів. У С порожній список параметрів означає, що перевірка аргументів відсутня, при виклику функції може бути переданий будь-який аргумент. У С++ це означає відсутність аргументів, наступні два оголошення еквівалентні.
Наприклад,
int fun ( );
int fun (void);
Усі об’єкти списку мають бути описані відповідними типами безпосередньо в списку параметрів перед відповідним елементом списку.
float Sum (float v, int d)
Потім записується складний оператор, у якому описуються змінні, що беруть участь у розрахунках усередині функції і за необхідності оператор повернення значення return. Оператор return може повертати в точку виклику функції лише одне значення, яке може бути виразом, змінною, константою чи вказівником. Крім передачі значень оператор return завершує виконання функції і передає керування наступному оператору викличної функції, навіть у тому разі, якщо він не є останнім. Коли функція не повертає ніякого значення, то вираз в операторі відсутній, у цьому випадку оператор return можна опустити.
Звертання до функції має бути реалізоване з іншої функції, в якій обов’язково повинен міститися опис типів вертаного функцією значення і бути вказане ім’я функції зі списком аргументів (або ж фактичних аргументів чи фактичних параметрів) у потрібному місці будьякого виразу.
<ім’я функції> (<список аргументів>);
Аргументи повинні бути попередньо описані. У списку аргументів вони знаходяться у тій самій послідовності, що й у списку параметрів функції. Аргументи передаються з викличної функції в функцію, що викликається, за значенням, тобто обчислюється значення кожного виразу, що представляє аргумент, і це значення використовується в тілі функції замість відповідного формального параметра.