
- •Лабораторна робота №1
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості Масиви динамічної пам'яті
- •Приклад виконання завдання 1
- •Лістинг програми
- •Приклад виконання завдання 2
- •Лістинг програми
- •Приклад виконання завдання 3
- •Лістинг програми
- •Контрольні запитання
- •Лабораторна робота №2
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Читання і запис текстових файлів
- •Читання і запис бінарних файлів
- •Відкриття бінарних файлів
- •Файли з послідовним доступом
- •Запис даних у файл з послідовним доступом
- •Файли з довільним доступом
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №3
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Завдання 3
- •Теоретичні відомості
- •Обмеження доступу до членів класу
- •Специфікатори доступу
- •Вбудовані функції-члени
- •Приклад виконання завдання 1.
- •Приклад виконання завдання 2.
- •Приклад виконання завдання 3.
- •Контрольні запитання
- •Лабораторна робота №4
- •Порядок виконання роботи
- •Завдання 2
- •Теоретичні відомості Конструктори і деструктори
- •Правила роботи з конструкторами і деструкторами
- •Варіант 10. Розробити описовий алгоритм, схему алгоритму і написати метод для підрахування кількості слів в текстовому файлі.
- •Приклад виконання завдання 2
- •Контрольні запитання
- •Лабораторна робота №5
- •Порядок виконання роботи
- •Завдання 1
- •Завдання 2
- •Теоретичні відомості Принципи спадкування в ооп
- •Оголошення похідних класів
- •Конструктори похідного класу
- •Функції члени похідного класу
- •Заборонені члени класу (Protected)
- •Приклад виконання Завдання 1
- •Контрольні запитання
- •Лабораторна робота №6
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Перевантаження операторів
- •Приклад виконання завдання 1
- •Приклад виконання завдання 2
- •Приклад виконання завдання 3
- •Приклад виконання завдання 4
- •Контрольні запитання
- •Лабораторна робота №7
- •Порядок виконання роботи
- •Завдання 1.
- •Завдання 2.
- •Теоретичні відомості
- •Структура наслідування класів
- •Постановка задачі
- •Розробити клас трикутника, чотирикутника, кола, точки
- •Контрольні запитання
- •Лабораторна робота №8
- •Порядок виконання роботи
- •Завдання 1
- •Контрольні запитання
- •Лабораторна робота №9
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Множинне спадкування
- •Контрольні запитання
- •Лабораторна робота №10
- •Порядок виконання роботи
- •Завдання 1
- •Теоретичні відомості Шаблони
- •Параметризовані класи
- •Визначені об’єкти-потоки
- •Операції поміщення та вилучення
- •Приклад виконання Завдання з варіанту 2
- •Контрольні запитання.
- •Лабораторна робота №11
- •Порядок виконання
- •Завдання 1
- •Завдання 2
- •Завдання 3 Варіант 1. Задача “Банківське переведення” (дата, час, № рахунку, розмір рахунку).
- •Ітератори
- •Для роботи з вектором необхідно:
- •Приклад роботи з вектором
- •Алгоритми
- •Застосування алгоритмів до вектора
- •Приклад 1 виконання Завдання 1
- •Приклад 2 виконання Завдання 2
- •Приклад 3 виконання завдання №3
- •Контрольні запитання
- •Завдання 1
- •Теоретичні відомості Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №13
- •Порядок виконання
- •Завдання 2.
- •Теоретичні відомості
- •Стандартні потоки для базових класів
- •Форматування даних при обмінах з потоками
- •Маніпулятори
- •Приклад розробки програми
- •Контрольні запитання
- •Лабораторна робота №14
- •Порядок виконання
- •Завдання
- •Теоретичні відомості
- •Контрольні запитання
Завдання 3
Розробити функцію для визначення елемента кратного 5 і метод-член класу, який використовує цю функцію для визначення кількості і суми елементів даного одновимірного динамічного масиву, кратних п’яти.
Розробити функцію для визначення елемента кратного 7 і метод-член класу підпрограму, яка використовує цю функцію для визначення кількості і суми елементів даного одновимірного динамічного масиву, кратних семи.
Розробити функцію визначення елемента кратного 9 і підпрограму, що використовує цю функцію для визначення кількості і суми елементів даного одновимірного динамічного масиву, кратних дев’яти.
Розробити функцію визначення елемента кратного 11 і підпрограму, що використовує цю функцію для визначення кількості і суми елементів даного одновимірного динамічного масиву, кратних одинадцяти.
Розробити функцію визначення елемента кратного 12 і підпрограму, що використовує цю функцію для визначення кількості і суми елементів даного одновимірного динамічного масиву, кратних дванадцяти.
Розробити функцію визначення кубічного кореня з заданого члена і підпрограму, що використовує цю функцію для перетворення кожного елемента одновимірного динамічного масиву.
Розробити функцію визначення квадратного кореня з заданого члена і підпрограму, що використовує цю функцію для перетворення кожного парного елемента одновимірного динамічного масиву.
Розробити функцію визначення а3 для заданого елемента а і підпрограму, що використовує цю функцію для перетворення кожного елемента заданого одновимірного динамічного масиву.
Розробити функцію визначення а2 для заданого елемента а і підпрограму, що використовує цю функцію для перетворення кожного елемента заданого одновимірного динамічного масиву.
Розробити функцію визначення парного елемента і метод, що використовує цю функцію для визначення суми, кількості і середнього арифметичного всіх парних елементів динамічного масиву.
Розробити функцію визначення непарного елемента і метод, що використовує цю функцію для формування нового динамічного масиву, що містить тільки парні елементи вихідного одновимірного динамічного масиву.
Теоретичні відомості
Клас - це користувальницький тип, що поєднує дані і функції в єдине ціле.
Розглянемо клас, CTіme, що містить дані-члени класу: year, month, day, hour, minute і функції-члени класу для їхнього введення, виведення та обробки.
Class CTime {
Ключове слово public – специфікатор доступу
дані-члени
void Display (void); }; функція-член
Опис класу схожий на опис структури. Специфікатор доступу publіc - контролює можливість використання членів класу в зовнішніх програмах, і відкриває доступ до всіх членів класу, що знаходяться за ним, для всіх користувачів класу, тому такі члени класу називаються відкритими.
Дані-члени класу можуть бути: перемінними, покажчиками, посиланнями, масивами, структурами, об'єктами класу, і т.д.
Функції-члени
класу описані в тілі класу прототипами
функцій і виконують деякі операції над
даними-членами класу.
Рисунок 1 -
Приклад
include iostream.h
include stdio.h
class CTime {
public: // специфікатор
int year;
int month;
int
day;
int
hour;
int
minute;
void
Display ( void );
// функція-член
};
int main ()
{
CTime object1; // об’єкт типу CTime; екземпляр типу класа
object. month=7; // ініціалізація даних-членів об’єкта;
object.
day=14;
object. year=2003; ініціалізація
object. hour=8;
object. minute=30;
object. Display (); // виклик функції-члена
cout \ n The end ;
return 0;
}
void CTime :: Display ( void )
{
char s [32];
sprintf(s,“Data:02d/02d/04dTime:02d:02d\
n”=,month, day, year, hour, minute );
cout s ;}
У даному прикладі клас CTіme - усього лише шаблон, схема, що описує формат членів класу, для роботи з ним необхідно створити об'єкт цього класу ( у прикладі це object ).
При ініціалізації даних-членів класу використовується оператор крапки (object.day) для доступу до членів об'єкта класу.
Варто пам'ятати, що оператор крапки виконують для посилань на відкриття дані члени класу аналогічно посиланням на члени структури.
Якщо таким членом є функція, то С++ викликає функцію, що виконує деякі операції над даними-членами об'єкта класу.
Наприклад, якщо в програмі оголосити інші об'єкти класу CTіmе
CTіme today;
CTіmе tomorrow;
CTіmе yesterday;
то для цих об'єктів функцію Dіsplay можна викликати в такий спосіб: today. Dіsplay (); - відображення значення об'єкта класу today; tomorrow. Dіsplay (); - відображення значення об'єкта класу tomorrow;
yesterday. Dіsplay (); - відображення значення об'єкта класу yesterday;
Доступ до даних-членів класу, специфікатори доступу.
В одному класі можуть бути присутнім дані-члени, для деяких з який доступ відкритий, а для деяких - закритий. Для організації доступу використовують специфікатори доступу: prіvate - доступ закритий; publіc - доступ відкритий.
Звичайно prіvate використовується для даних-членів класу з метою сховати від користувача деталі збереження даних в об'єктах, у той же час забезпечуючи їх методами використання цих даних. У результаті можна модернізувати способи збереження й обробки даних у середині класу, не переписуючи при цьому методи доступу і виклику їх у зовнішньому коді.