
- •Лабораторна робота № 1
- •Хід роботи.
- •Лабораторна робота №2
- •Хід роботи.
- •Лабораторна робота №3
- •Хід роботи:
- •Питання для самоконтролю знань:
- •Лабораторна робота № 4
- •Хід роботи
- •Лабораторна робота № 5
- •Лабораторна робота №6
- •Хід роботи:
- •Лабораторна робота 7
- •Хід роботи
- •Лабораторна робота №8
- •Хід роботи.
- •Лабораторна робота №9
- •Хід роботи.
- •Лабораторна робота №10
- •Хід роботи.
Питання для самоконтролю знань:
Що містить ім’я масиву при статичному виділенні пам’яті.
Засоби виділення пам’яті для розташування значень масиву.
Переваги динамічного розподілу пам’яті.
Звільнення зайнятої пам’яті.
Доступ до значення масиву через вказівник на пам’ять.
Адресна арифметика.
Унарні операції над вказівниками.
Знайти помилки у наведених фрагментах програмного коду.
Int *pInt;
pInt = g;
cout<<”значення = ”, &pInt;
Лабораторна робота № 4
Тема: Розробка програм з функціями
Мета: Закріпити теоретичні знання, навчитися розробляти програми з функціями.
Хід роботи
Розробити функцію на мові С\С++ для введення значень масиву з клавіатури.
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Дано наступний код програми. Визначте, чи вірно розроблена функція, виправите помилки.
int* foo(int n)
{
int *x = (int*)malloc (n*2); // 2 – размерность типа int
return x;
}
….
int main()
{
int *x = foo(10);
std::cout << *x;
return 0;
}
____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Чи є помилка у наступній функції, як що є, по поясніть яка.
int* foo()
{
int x=2;
return &x;
}
Які з наступних декларацій є невірними? Перевірте, використовуючи середовище програмування. Зафіксуйте помилки, поясніть їх.
int func (int);
int func (…);
int func (int a);
int func (int a, …);
int func (int a, float);
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Які оголошення призведуть до помилки компіляції. Перевірте, поясніть висновки.
void fool (int n, int a[]) {} /*1*/
void foo2 (int n, int a[*]) {} /*2*/
void foo3 ( int a[], int n) ; /*3*/
void bar (int a[0]) {} /*4*/
________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Дослідництво:
Розробити функцію, яка б приймала два значення у якості вхідних параметрів (кількість елементів масиву, та адресу пам’яті, де розташовані елементи) обчислювала кількість нульових елементів.
У головній функції викликати дану функцію для одного масиву даних. Проаналізувати та зафіксувати результати.
Внести зміни у попередньо розроблений код таким чином, щоб розроблена функція викликалась не менш ніж для трьох масивів. Проаналізувати та зафіксувати результати виконання.
Зробити висновок про вплив модифікатора static на вміст та модифікацію змінної.
Завдання.
Розробити функцію, яка б визначала кількість звернень (викликів) до неї. Привести повний код функції та програму, що демонструє її використання.
___________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Висновки ____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
Питання для самоконтролю знань
Дати визначення поняттю функція.
Типи та класифікація функцій.
Навести синтаксис оголошення функції.
Привести приклад функції, що має вхідні параметри, що передаються за значенням.
Дайте визначення поняттю формальні та реальні параметри.
Обґрунтуйте доцільність використання передачі параметрів по вказівникам та посиланням.