
- •Лабораторна робота №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
- •Порядок виконання
- •Завдання
- •Теоретичні відомості
- •Контрольні запитання
Маніпулятори
Незважаючи на гнучкість і великі можливості керування форматами за допомогою компонентних функцій класу ios, їхнє застосування достатнє громіздко. Більш простий спосіб із зобов'язання параметрів і прапорів форматування забезпечують маніпулятори, до можливостей яких ми перейдемо.
Маніпуляторами називають спеціальні функції, що дозволяють програмісту змінювати стани і прапори потоку. Особливість маніпуляторів і їхня відмінність від звичайних функцій полягає в тому, що їх імена (без параметрів) і виклики (з параметрами) можна використовувати в якості правого операнда для операції обміну. У якості лівого операнда в цьому вираженні, як звичайно, використовує- потік (посилання на потік), і саме на цей потік впливає маніпулятор.
Маніпулятори бібліотеки класів ios мови С++ поділяються на дві групи: маніпулятори з параметрами і маніпулятори без параметрів (табл. 13.3, 13.4).
Таблиця 13.3 - Маніпулятори без параметрів
dec |
при введенні і виведення встановлює прапор десяткової системи числения; |
hex |
при введенні і виведення встановлює прапор шістнадцяткова системи числення; |
oct |
при введенні і виведення встановлює прапор восьмеричної системи числення; |
Ws |
діє тільки при введенні і передбачає витяг із вхідного потоку пробільных символів (пробіл, знаки табуляції ‘\t’ і ‘\v’, символ перекладу рядка '\n', символ повернення каретки '\г', символ перекладу сторінки ‘\f’); |
endl |
діє тільки при вивід, забезпечує включення у вихідний потік символу нового рядка і скидає буфер (вивантажує вміст) цього потоку; |
ends |
діє тільки при виведення і забезпечує включення в потік нульової ознаки кінця рядка |
flush |
діє тільки при виведення й очищає вихідний потік,тобто скидає його буфер (вивантажує вміст буфера). |
Не всі перераховані маніпулятори діють як на вхідні, так і на вихідні потоки, ws діє тільки при введенні; endl, ends, flush - тільки при виведення.
setbase(int n) |
установлює підстава (n) системи числення. Значеннями параметра n можуть бути: 0, 8, 10 чи 16. При використанні параметра 0 підстава числення при виведення вибирається десятичним. При введенні параметр 0 означає, що цілі десяти десятичні цифри з вхідного потоку повинні оброблятися правилам стандарту ANSI мови Сі |
reaetiosf lags (long L)
|
скидає (очищає) окремі прапори стану потоці» введення і виведення на основі бітового представлення значення параметра L (скидає прапори відповідно до одиничних бітів); |
setiosf lags (long L) |
встановлює окремі прапори стану (форматні бити потоків введення-виведення на основі бітового представлення значення параметра l (установлюються прапори у відповідності c одиничними бітами параметра); |
setfill(int n)
|
значення параметра n надалі використовується в якості кода символу-заповнювача, що міститься в незайнята позиціях поля при введенні значення. (Див. компонент х_fiel класу ios); |
setprecision (int n) "n~ |
визначає за допомогою значення параметра n точність представлення дійсних чисел, тобто максимальна кількість цифр дробової частини числа при введенні і виведення. (Див. компонент x_precision класу ios); |
setw(int n) |
значення параметра n задає мінімальну ширину поля в) вода. (Див. компонент x_width класу ios) |
Таблиця 13.4 - Маніпулятори з параметрами визначені у файлі iomanip.h
Маніпулятори dec, hex, oct, що задають основу системи числення, змінюють стан потоку, і ця зміна залишається в силі до наступного явної зміни.
Маніпулятор endl рекомендується використовувати при кожнім виведення. Наприклад, його використання просте необхідно в такому операторі:
cout « "Чекайте! Йде набір статистики." « endl;
При відсутності endl тут не можна гарантувати, що повідомлення користувачу не залишиться в буфері потоку cout до закінчення набору статистики.
Рекомендується за допомогою маніпулятора flush скидати буфер вхідного потоку при виведення на екран підказки до наступного введення інформації:
cout « "Уведіть назву файлу:" « flush;
cin » fileName; // Тут fileName - символьний масив
За допомогою маніпуляторів можна керувати представленням інформації у вихідному потоці. Наприклад, маніпулятор setw(int n) дозволить виділити для числового значення поле фіксованої ширини, що зручно при печатці таблиць.