- •О.Ф.Тарасов, о.В.Алтухов
- •1 Заняття № 1 Вивчення інтегрованого середовища с
- •1.1 Теоретичні відомості
- •1.2 Хід роботи
- •1.3 Вимоги до звітів
- •1.4 Питання для контролю і самостійної роботи
- •2 Заняття № 2 Функції введення/виведення даних printf( ), scanf( ). Лінійні обчислювальні процеси
- •2.1 Теоретичні відомості
- •2.2 Хід роботи
- •2.3 Індивідуальне завдання до заняття №2
- •2.4 Питання для контролю і самостійної роботи
- •3 Заняття № 3 Розробка програм зі скалярними типами даних
- •3.1 Теоретичні відомості
- •Приклад
- •3.2 Хід роботи
- •3.3 Індивідуальне завдання до заняття № 3
- •3.4 Питання для контролю і самостійної роботи
- •4 Заняття № 4 Розробка програм з циклічними обчислювальними процесами
- •4.1 Теоретичні відомості
- •Алгоритм роботи оператора циклу for ( )
- •4.2 Хід роботи
- •4.3 Індивідуальне завдання до заняття № 4
- •4.4 Питання для контролю і самостійної роботи
- •5 Заняття № 5
- •Розгалуження обчислювального процесу.
- •Оператори, які реалізують розгалуження: if... Else, switch,
- •Умовна операція ( ? : )
- •5.1 Теоретичні відомості
- •Умовна тернарна операція ( ? : )
- •Оператор варіанта switch
- •Приклад
- •5.2 Хід роботи
- •5.3 Індивідуальне завдання до заняття № 5
- •5.4 Питання для контролю і самостійної роботи
- •6 Заняття № 6 Операції с, їхні пріоритети і використання. Перетворення типів
- •Пріоритет операцій і порядок виконання (асоційованість)
- •(Новий_тип) Операнд
- •Приклад
- •6.2 Хід роботи
- •6.3 Індивідуальне завдання до заняття № 6
- •6.4 Питання для контролю і самостійної роботи
- •7 Заняття № 7
- •7.1 Теоретичні відомості
- •Оголошення функцій (створення прототипів)
- •([ Список_типів_параметрів ])
- •Синтаксис визначення функцій
- •[ Return Значення_типу_що_повертається ]
- •Використання локальних і глобальних перемінних у функціях. Виклик функції
- •Приклад
- •7.2 Хід роботи
- •7.3 Індивідуальне завдання до заняття № 7
- •7.4 Питання для контролю і самостійної роботи
- •8 Заняття № 8
- •8.1 Теоретичні відомості
- •Основні операції з покажчиками
- •Покажчики і цілі величини
- •Динамічне розміщення покажчиків у пам'яті
- •Приклад
- •Приклад
- •8.2 Хід роботи
- •8.3 Індивідуальне завдання до заняття № 8
- •8.4 Питання для контролю і самостійної роботи
- •9 Заняття № 9
- •9.1 Теоретичні відомості
- •Приклад
- •9.2 Хід роботи
- •9.3 Індивідуальне завдання до заняття №9
- •9.4 Питання для контролю і самостійної роботи
- •10 Заняття № 10
- •10.1 Теоретичні відомості
- •Приклад
- •10.2 Хід роботи
- •10.3 Індивідуальне завдання до заняття № 10
- •10.4 Питання для контролю і самостійної роботи
- •Заняття №11 Обробка символьних даних
- •Теоретичні відомості
- •Індивідуальне завдання до заняття №11
- •Питання для контролю і самостійної роботи
- •Приклад
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •Теоретичні відомості
- •Приклад
- •Індивідуальне завдання до завдання №13
- •Питання для контролю і самостійної роботи
- •Заняття № 14 Розробка програм зі складеними типами даних
- •Структури
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •Заняття № 15 Використання покажчиків для роботи зі складеними типами даних (2години)
- •Теоретичні відомості
- •Приклад
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •Використання покажчиків для роботи з функціями
- •Покажчики як параметри функції
- •[Const ] Тип * Ім'я_покажчика
- •Приклад
- •Хід роботи
- •Індивідуальне завдання до заняття №16
- •Питання для контролю і самостійної роботи
- •Використання функцій високого і низького рівня для роботи з потоками (файлами)
- •Функції для роботи з файлами
- •Хід роботи
- •Індивідуальне завдання до заняття №17
- •Питання для контролю і самостійної роботи
- •Розробка програм із багатофайловою структурою. Заголовочні файли. Класи пам'яті перемінних і функцій
- •Керування многофайловими проектами
- •Використання адміністратора проектів
- •Приклад
- •Основний файл проекту
- •Заголовний файл
- •Хід роботи
- •Індивідуальне завдання до заняття №18
- •Питання для контролю і самостійної роботи
- •Графічні функції
- •Графічні примітиви
- •Хід роботи
- •Індивідуальне завдання до заняття №19
- •Питання для контролю і самостійної роботи
- •Заняття№20 Розробка програм з використанням класів
- •Теоретичні відомості
- •Оголошення і визначення класу
- •Тіло класу
- •Інкапсуляція. Керування доступом до членів класу
- •Використання даних-членів класу
- •Хід роботи
- •Індивідуальне завдання до заняття №20
- •Питання для контролю і самостійної роботи
- •Заняття№21 Використання конструкторів і деструкторів у класах
- •Теоретичні відомості
- •Ініціалізація об'єктів класу
- •Деструктори
- •Виклик деструкторів
- •Хід роботи
- •Питання для контролю і самостійної роботи
- •"Друзі" класів (friend)
- •Хід роботи
- •Індивідуальне завдання до заняття №22
- •Контрольні питання для підготовки і самостійної роботи
- •Віртуальні базові класи
- •Віртуальні деструктори
- •Хід роботи
7.4 Питання для контролю і самостійної роботи
Поясніть синтаксис оголошення, визначення і виклику функції.
Чи завжди останнім оператором функції повинний бути оператор return?
Як називається передана у функцію локальна перемінна – аргумент чи параметр ?
Які типи перемінних завжди передаються за адресою ?
Які типи перемінних можна передати у функцію за значенням ?
Якщо перемінна передається у функцію №2 за значенням і там змінюється, чи буде змінена перемінна у функції №1, яка її визвала ?
Якщо перемінна передається у функцію №2 за адресою чи за посиланням і там змінюється, чи буде змінена перемінна у функції №1, яка її визвала ?
Як оголосити тип значення, що повертається функцією ?
Який тип значення, що повертається, використовується за умовчанням ?
У чому різниця між оголошенням та визначенням функцій ?
Де розміщується оголошення і визначення функцій ?
Де розміщується оголошення і визначення бібліотечних функцій ?
У чому різниця між формальними і фактичними параметрами ?
У чому різниця між звичайними і inline функціями ?
Чи має ім'я функції тип і який це тип ?
Які класи пам'яті використовуються при оголошенні функції ?
Який клас пам'яті функцій використовується за умовчанням ?
Як вставити файл оголошення бібліотечних функцій у програму ?
8 Заняття № 8
Розробка програм з покажчиками
(2 години)
Ціль роботи: вивчити конструкції й оператори мови С для роботи з покажчиками, навчитися правильно застосовувати покажчики.
8.1 Теоретичні відомості
Самим могутнім інструментом у С, безумовно, є покажчики (pointers), і для того, щоб навчитися програмувати у С, необхідно опанувати умінням використовувати ці покажчики.
За допомогою покажчиків у С можна: одержувати доступ до адрес пам'яті об'єктів і маніпулювати з ними, будувати одномірні, двовимірні і багатомірні масиви, створювати динамічні структури даних, покажчики допомагають передавати масиви, структури і функції в інші функції і т.д.
Розглянемо основні поняття і принципи роботи з покажчиками. Покажчик - це адреса пам'яті, розподіленої для іншої перемінної заданого типу. Значення покажчика повідомляє про те, де розташований об'єкт даних, але не говорить про його вміст.
Синтаксис оголошення покажчиків:
Тип * Ім'я_покажчика
Читається даний запис так:
Ім'я_покажчика є покажчиком на Тип. Символ «*» (зірочка) говорить про те, що приведена перемінна є покажчиком на заданий тип.
Приклад
int * x; //x - це покажчик на тип int (цілий тип)
Таким чином, можна оголосити покажчик на будь-який тип: стандартний чи створений користувачем, у тому числі може бути оголошений покажчик на покажчик, на будь-який тип - void. Покажчик на тип void може бути перетворений у покажчик будь-якого іншого типу.
Приклади припустимих виразів з покажчиками:
int *x; |
void *y; |
y = x; |
(float *) y; |
|
Розмір покажчика, тобто розмір ділянки пам'яті, відведеної під адресу, залежить від моделі пам'яті, у якій пишеться програма. Відзначимо їхню назву і вкажемо розмір покажчиків у байтах: малюсінька (2 байти), маленька (2), середня (4), компактна (4), велика (4), величезна (4).
Для вказівки розміру покажчика використовують модифікатори:
near (2 байти), far (4 байти), huge (4 байти).
Покажчик може використовуватися як константний, котрий зв'язаний з однією постійною адресою пам'яті. Покажчик може бути зв'язаний і з константами. Можливо також використання константного покажчика на константний тип:
float const ptr; // Константний покажчик
const float ptr; // Покажчик на константний тип
сonst float сonst ptr;