- •Робочий зошит з предмету програмування та алгоритмічні мови
- •Тема 1.1. Поняття алгоритму. Базові структури алгоритмів.
- •Способи подання алгоритмів.
- •Базові структури алгоритмів
- •Розгалужені (умови):
- •Циклічні:
- •Тренувальні вправи
- •Практична робота №1 (4 години)
- •Хід роботи
- •Тема 1.2. Побудова блок-схем алгоритмів.
- •Практична робота №2 (4 години)
- •Хід роботи
- •Виконання завдань
- •Висновки до практичної роботи №2 Література до розділу
- •Лекція №3 (2 години)
- •Опорний конспект
- •Алфавіт
- •Коментарі
- •Ключові слова
- •Директиви препроцесора
- •Загальна структура програми.
- •Сталі та змінні.
- •Контрольні запитання
- •Лекція №4 (2 години)
- •Тема 2.2. Головна функція main (). Типи даних. Опорний конспект Головна функція main ().
- •Типи даних.
- •Цілі типи
- •Дійсні типи
- •Символьний тип (char)
- •Логічний тип (bool)
- •Типи користувача
- •Контрольні запитання
- •Лекція №5 (2 години)
- •Опорний конспект
- •Команда присвоєння. Правила узгодження типів.
- •Вирази Арифметичні операції
- •Команда присвоєння, суміщена з арифметичною операцією.
- •Математичні функції.
- •Контрольні запитання
- •Практична робота №3 (2 години)
- •Хід роботи Домашнє завдання
- •Виконання завдань
- •Додаткові завдання
- •Контрольні запитання
- •Висновки до практичної роботи №3
- •Лекція №6 (2 години)
- •Тема 2.4. Потоки введення - виведення даних. Адреси даних, вказівники, динамічна пам'ять. Опорний конспект Потоки.
- •Команда введення даних.
- •Команда виведення даних.
- •Керуючі послідовності.
- •Адреси даних.
- •Вказівники.
- •Динамічна пам’ять. Команди new і delete.
- •Контрольні запитання
- •Лабораторна робота№1 (2 години)
- •Виконання завдань
- •Результати роботи програми:
- •Результати роботи програми:
- •Результати роботи програми:
- •Тестові приклади
- •Результати роботи програми:
- •Контрольні запитання
- •Висновки до лабораторної роботи №1
- •Лекція №7 (2 години)
- •Тема 2.5. Файли. Опорний конспект
- •Зчитування даних із файлу.
- •Виведення даних у файл.
- •Ознаки.
- •Контрольні запитання
- •Лабораторна робота №2 (4 години)
- •Хід роботи
- •Контрольні запитання
- •Висновки до лабораторної роботи №2
- •Тема 3.1.Умовні оператори. Оператори вибору switch.
- •Кома як команда.
- •Логічні вирази та логічні операції.
- •Команда розгалуження if (якщо).
- •Команда вибору (switch).
- •Команда безумовного переходу goto.
- •Контрольні запитання
- •Лабораторна робота №3 (4 години)
- •Хід роботи
- •Контрольні запитання
- •Висновки до лабораторної роботи №3
- •Лекція №9 (2 години)
- •Тема 3.2. Оператори циклу Опорний конспект
- •Команда циклу з лічильником for.
- •Контрольні запитання
- •Лабораторна робота №4 (4 години)
- •Контрольні запитання
- •Висновки до лабораторної роботи №4
- •Розділ іv. Складені типи даних Лекція № 10
- •Опорний конспект
- •Тренувальні вправи
- •Тренувальні вправи
- •Контрольні запитання
- •Завдання та методичні вказівки для самостійної роботи студента
- •Завдання для самовдосконалення
- •Лабораторна робота №5 (6годин)
- •Виконання роботи Контрольні запитання
- •Висновки до лабораторної роботи №5
- •Лекція № 11
- •Опорний конспект
- •Тренувальні вправи
- •Задачі для самостійного розв’язання
- •Контрольні запитання
- •Завдання для самовдосконалення
- •Лабораторна робота №6 (6годин)
- •Виконання роботи Контрольні запитання
- •Висновки до лабораторної роботи №6
- •Література
Динамічна пам’ять. Команди new і delete.
Принцип динамічної організації пам’яті полягає у тому, що для змінних надається пам’ять за необхідністю (за вказівкою програміста). Далі ці змінні опрацьовують і в потрібний момент пам’ять вивільняють (знову за вказівкою програміста). Такі змінні називаються динамічними.
Для роботи з динамічними змінними використовують вказівники. Для виділення динамічної пам’яті застосовується команда new так:
<тип вказівника> *<назва> = new <тип змінної>; |
Дія команди new. Для відповідного типу змінної автоматично надається необхідна неперервна ділянка пам’яті. Команда new повертає обсяг цієї ділянки, а вказівник вказує на її початок. Наприклад, щоб зарезервувати у пам’яті комп’ютера область для зберігання значення цілого типу, застосовують таку команду:
int *prt2 = new float(3.14);
У адресу, на яку показує prt2, буде занесене число 3,14.
З динамічною змінною можна виконувати операції, визначені для даних відповідного базового типу.
Після опрацювання динамічних змінних пам’ять необхідно вивільнити, а відповідний вказівник занулити. Якщо цього не зробити, то пам’ять можна вичерпати. Вивільняють пам’ять за допомогою команди
delete <назва вказівника>; |
Щоб вказівник не вказував на жодну ділянку пам’яті, його необхідно занулити такою командою:
<назва вказівника> = NULL; |
Значенням (адресою) такого вказівника буде нульова адреса 0х00000000. Тут не можна бути розміщене значення жодного даного.
Довідка. Замість значення NULL можна записати <назва вказівника> = 0.
Приклад 7. Розглянемо, як відбувається розподіл пам’яті. Надамо пам’ять для двох змінних цілого типу та присвоїмо їм деякі значення. Пізніше вивільнимо пам’ять.
#include <iostream.h>
void main()
{
int *c1 = new int;____________________________________________________________
*c1 = 5;_____________________________________________________________________
int *c2 = new int(7);__________________________________________________________
cout << *c1 << “\t” << *c2 << “\n”;______________________________________________
c1 = c2;_____________________________________________________________________
cout << *c1 << “\t” << *c2 << “\n”;______________________________________________
delete(c2);__________________________________________________________________
cout << *c1 << “\n”;__________________________________________________________
}
Контрольні запитання
№ |
Питання |
Відповідь |
1 |
Для чого призначена функція clrscr()? |
|
2. |
Для чого використовують команду endl? |
|
3. |
Яку бібліотеку необхідно під єднати, щоб працювала функція getch()? |
|
4. |
Вказівник – це … |
|
5. |
Як описуються вказівники? |
|
6. |
Як дізнатися адресу даного у пам'яті? |
|
7. |
Які змінні називають динамічними? |
|
8. |
З допомогою якої команди вивільняють пам'ять? |
|
9. |
Коли вказівник не вказуватиме на жодну ділянку памяті? |
|