Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа ПЗ C++4.doc
Скачиваний:
2
Добавлен:
12.09.2019
Размер:
240.13 Кб
Скачать

Лаборатора робота «Основи програмування та алгоритмічні мови»

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

Тема: «Використання вказівників у функціях» Мета заняття:

Закріплення теоретичних знань щодо створення динамічних масивів, використанні масивів у якості параметрів функцій, використанні вказівників на функції, оволодіння практичними вміннями та навичками розв’язування задач з курсу чисельних методів з використанням формальних та фактичних функцій

Теоретичні питання для самостійної підготовки:

  1. Використання масивів у якості параметрів функцій.

  2. Динамічне виділення пам’яті. Динамічні масиви.

  3. Вказівники на функцію. Масиви вказівників на функцію.

Методичні рекомендації:

При розробці багатомодульної програми треба враховувати наступні особливості конструкцій мови:

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

  • При використанні формальних масивів треба пам’ятати, що: а) формальний масив розташовується у фактичному масиві; б) функції можуть мати і свої, не формальні робочі масиви; останні повністю визначаються у самій функції. Робочі масиви краще за все розташовувати у вільному полі пам’яті, замовляючи для них пам'ять у самій функції та звільняючи цю пам'ять при виході з функції; в) іменовані константи у вимірах масивів повинні отримувати необхідні значення в раніш наведених командах define.

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

  • Аргументи обчислювального процесу функцій можна долучати до складу формальних параметрів чи передавати через зовнішні імена. Який з цих способів має переваги один перед одним? На це питання не можливо відповісти однозначно. В кожному окремому випадку ця проблема розв’язується відносно ситуації. Наприклад, передача всієї інформації через зв'язок формальних та фактичних параметрів більш наочна, але надмірне перевантаження цього зв’язку доводить до того, що одні й ті ж самі незмінні величини у передачах приймають участь багаторазово. Тому використовувати цю чи іншу форму передачі треба в розумних межах. Так, декілька функцій, які викликає одна формальна функція, крім загальних аргументів, містить аргументи, які відрізняються один від одного, то останні потрібно передавати через зовнішні імена. Більш того, їх може і не мати функція, в якій описана формальна функція. Передача деяких аргументів через зовнішні імена особливо необхідна у тих випадках, коли функція-посередник є стандартною функцією, яка не може мати зовнішніх змінних, і всі аргументи повинна отримувати через свої формальні параметри.

  • Не можна безвідповідально відноситися до питання привласнення розименованим формальним вказівникам та посиланням нових значень. У цих випадках при привласненні формальному параметрові нового значення відповідний фактичний параметр при поверненні отримає значення, яке відрізняється від його значення на вході. Значить, якщо фактичний параметр використовується для задання аргументу обчислень програми, а не для повернення результату обчислень, то відповідному формальному вказівникові не можна привласнювати нове значення. Це легко зробити, об’являючи їх у списку формальних параметрів вказівниками типу const. Ігнорування цього правила може довести до «побічного» ефекту.