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

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

[Const]<тип>*<имя указателя>

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

int funct (float *, int *); // передача покажчиків на тип float і на тип int

void loadMy (Myst * pmy); // передача покажчика рmу натіп структур типу Муst.

У прикладі оголошена структура типу Myst і оголошена функція loadMy (). Функція має формальний параметр-покажчик pmy на тип Мyst.

Оголошено покажчик pfunc на функцію, яка вимагає два параметри типу int і не повертає значення (void). Типи і кількість параметрів, а також тип значення повинні створити. Для використання покажчика оголосимо функцію

і здійснимо її виклик

Покажчики як параметри функції

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

Для передачі аргументів на функцію використовують:

1 Покажчики на прості типи даних, як параметри функції.

2 Покажчики на масиви (передавати за значенням можна).

3 Покажчики на перелічуваних типи як параметри функції.

4 Покажчики на структури і об'єднання як параметри функції.

5 Покажчики на функції (передавати за значенням можна).

Ініціалізація покажчика на функцію:

Загальний синтаксис для виклику функції з використанням покажчика:

a = (* search) (pstr); // виклик функції linesearch () за допомогою покажчика.

Розробив Петров Ю.В.

Оголосити задані функції і покажчик на функцію цього типу,

виконати визначення функцій. Оголосити масиви і покажчики

на них, виконати ініціалізацію відповідно до заданих

залежностями і використанням покажчиків. Для одного з

масивів виділити пам'ять в купі. Вивести значення елементів

масивів на екран. Здійснити виклик функцій із застосуванням

покажчика. Вивести результати роботи функцій на екран. * /

const int kx = 6, ky = 6, kw = 8, a1 = 3, a2 = 9,

b1 = 6, b2 = 5, c1 = 6, c2 = 10;

// Обчислює суму негативних елементів масиву

float summa (int, float *);

// Обчислює твір позитивних елементів масиву

float prois (int, float *);

float y [ky + 2]; // + 2 елементи масиву для зберігання

// результатів роботи функцій

float * px = new float [kx + 2]; // Виділення пам'яті для масиву в "купі"

for (i = 0; i

printf ( "x [.] =% 6.2f% p \ n", i, * px, px);

gotoxy (25,1); printf ( "Масив y [] \ n");

for (i = 0; i

px- = kx; // Установка покажчика на нульовий елемент масиву

ps = summa; // Зв'язування покажчика з функцією summa ()

printf ( "Сума: x [.] =% 6.2f", kx, (* ps) (kx, px));

printf ( "Сума: y [.] =% 6.2f \ n", ky, (* ps) (ky, y));

ps = prois; // Зв'язування покажчика з функцією prois ()

printf ( "Твір: x [.] =% 8.2f", kx + 1, (* ps) (kx, px));

printf ( "Твір: y [.] =% 8.2f \ n", ky + 1, (* ps) (ky, y));

delete [] px; // Звільнення пам'яті, виділеної в "купі" для масиву

float summa (int kol, float * Arr) // Визначення функції

for (int i = 0; i

float prois (int kol, float * Arr) // Визначення функції

for (int i = 0; i0) s * = Arr [i];

Масив x [] масив y []

x [0] = -45.00 0AD0 y [0] = 0.03

x [1] = -33.00 0AD4 y [1] = 5.55

x [2] = -15.00 0AD8 y [2] = -4.29

x [3] = 9.00 0ADC y [3] = -1.00

x [4] = 39.00 0AE0 y [4] = 7.78

x [5] = 75.00 0AE4 y [5] = 1.74

Сума: x [6] = -93.00 Сума: y [6] = -5.29

Твір: x [7] = 26325.00 твір: y [7] = 2.52 * /

1 Вивчити теоретичні відомості.

2 Відповідно до індивідуальним завданням з лабораторної роботи №7. розробити алгоритм.

3 Оголосити покажчики на функції. Використовувати покажчики для виклику відповідних функцій. Використовувати оператор switch для вибору варіанту функцій.

4 Розробити і набрати програму на комп'ютері, усунути помилки.

5 Отримати результат.

6 Оформити звіт.

7 Підготуватися до захисту лабораторної роботи, вивчивши контрольні питання.

Індивідуальне завдання до лабораторної роботи №16

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

Таблиця 16.1 - індивідуальні завдання

Вимоги до змісту звіту приведені в лабораторній роботі №1.

Контрольні питання для підготовки і самостійної роботи

1 Чи можна використовувати покажчики для передачі даних в функції?

2 Які типи даних можна передати в функцію з використанням покажчиків?

3 Чи можна змінювати значення даних у функції при використанні покажчиків при наявності модифікатора const.

4 Чи можна повертати покажчики з функцій?

5 Як оголосити покажчик на функцію?

6 Чи можна використовувати покажчики для роботи з функціями різного типу?

7 Який тип має ім'я функції?

8 Як зв'язати покажчик з конкретною функцією?

9 Як використовувати покажчики для виклику функції?

10 Як обмежується доступ до членів класу?

11 Як зв'язати і використовувати покажчик на функцію?

12 Як викликати функцію з використанням покажчика?

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

Використання функцій високого і низького рівня для роботи з
потоками (файлами)

Мета роботи: навчитися використовувати функції високого і низького рівня при роботі з файлами.

Схожі статті