- •1. Лабораторна робота 1. "Структури: складені типи даних"
- •Теоретичні відомості
- •1.1.1. Структури
- •1.1.2. Робота з масивом структур
- •1.2. Постановка задачі
- •1.3. Варіанти
- •1.4. Методичні вказівки
- •Постановка задачі.
- •2. Лабораторна робота 2 "Динамічні структури даних"
- •2.1. Теоретичні відомості
- •2.1.1. Списки
- •2.1.2. Стеки
- •2.1.3. Черги
- •2.2. Постановка задачі
- •2.3. Варіанти завдань
- •3.1.2. Члени класу
- •3.1.3. Доступ до членів класу
- •3.1.4. Черги-масиви
- •3.1.5. Стеки-масиви
- •3.2. Постановка задачі
- •3.3. Варіанти завдань
- •3.4. Методичні вказівки
- •4. Лабораторна робота 4. "Перезавантаження конструкторів"
- •4.1. Теоретичні відомості
- •4.1.1. Перезавантаження конструкторів
- •4.1.3. Операції з матрицями
- •4.2. Постановка задачі
- •4.3. Варіанти завдань
- •4.4. Методичні вказівки
- •5. Лабораторна робота 5. "Перезавантаження операторів. Дружні функції"
- •5.1. Теоретичні відомості
- •5.1.1. Дружні функції
- •5.1.1. Перезавантаження операторів
- •5.1.2. Операторні функції для комплексних чисел
- •5.2. Постановка задачі
- •5.3. Варіанти завдань
- •5.4. Методичні вказівки
- •6. Лабораторна робота 6. "Спадкування. Віртуальні функції"
- •6.1 Теоретичні відомості
- •6.1.1. Спадкування й модифікатори спадкування
- •6.1.2. Віртуальні функції
- •6.1.3. Відділення інтерфейсу від реалізації
- •6.2. Постановка задачі
- •6.3. Варіанти завдань
- •6.4. Методичні вказівки
- •7. Лабораторна робота 7. "Шаблони"
- •7.1. Теоретичні відомості
- •7.1.1. Шаблони функцій
- •7.1.2. Шаблони класів
- •7.1.3. Приклад. Методи шаблона вектора
- •7.1.4. Приклад. Шаблон класу зв'язного списку
- •7.2. Постановка задачі
- •7.3. Варіанти завдань
- •7.4. Методичні вказівки
- •8. Лабораторна робота 8. "Файловий введення-виведення"
- •8.1. Теоретичні відомості
- •8.1.2. Потоки й файли
- •8.1.3. Текстові файли. Форматоване введення-виведення
- •8.1.4. Неформатоване двійкове введення-виведення
- •8.1.5. Файли довільного доступу
- •8.2. Постановка задачі
- •8.3. Варіанти завдань
- •8.4. Методичні вказівки
- •Література
3.1.5. Стеки-масиви
Оголосимо константну змінну capacity, що задає максимальний розмір стека-масиву, і тип даних el, що визначає тип елементів масиву:
const int capacity = 128;
typedef int el;
Оголошення класу стека запишемо у вигляді:
class Stack {
public:
Stack();
bool empty();
void push(const el & value);
el top();
void pop();
private:
el myArray[capacity]; //Масив елементів типу el
int myTop; //Вершина стека
};
Конструктор створює порожній стек:
Stack :: Stack() {
myTop=-1;
}
Функція empty визначає, чи є стек порожнім:
bool Stack :: empty(){
return (myTop == -1);
}
Функція push додає елемент до стека:
void Stack :: push(const el & value) {
if (myTop < capacity - 1) { //Якщо стік не повний
++myTop; //Зсув вершини стека
myArray[myTop] = value; //Запис значення value
}
else
cerr << "Stack is full!\n";
}
Функція pop видаляє елемент із стека:
void Stack :: pop() {
if (myTop >= 0) // Якщо стік не порожній
myTop--; //Зсув вершини стека
else
cerr << "Stack is empty -і can't remove a value" << endl;
}
Функція top повертає значення елемента у вершині стека (без видалення елемента):
el Stack :: top() {
if (myTop >= 0) // Якщо стік не порожній
return myArray[myTop];
else {
cerr << "Stack is empty!" << endl;
return(0);
}
}
3.2. Постановка задачі
Створити клас, зазначений у варіанті завдання, і скласти програму, що ілюструє роботу функцій класу.
3.3. Варіанти завдань
Реалізувати стек для статичного масиву дійсних чисел. Створити клас стека з функціями-членами: запис у стек, видалення із стека, читання елемента у вершині стека, визначення довжини стека.
На основі статичного масиву створити клас стека цілих чисел. Функції-члени: заповнення всього стека випадковими числами, видалення елементів із стека, перегляд вмісту стека.
На основі статичного масиву створити клас стека символів. Функції-члени: запис у стек, видалення із стека, визначення довжини стека. попарне зчитування елементів.
На основі статичного масиву створити клас черги цілих чисел. Функції-члени: додавання в чергу, видалення із черги, виведення всіх елементів черги на екран.
На основі статичного масиву створити клас черги випадкових чисел. Функції-члени: додавання в чергу, видалення із черги, виведення першого елемента черги на екран, визначення довжини черги.
На основі статичного масиву створити клас черги Реалізувати додавання елемента в чергу, виведення елементів черги на екран, а також видалення елемента із черги, якщо користувач угадав, що елемент-кандидат на видалення є прописна або мала літера.
На основі статичного масиву створити клас стека символів. Функції-члени: запис у стек, видалення із стека, перегляд елементів стека. Створити новий стек, у який записати вихідні елементи у зворотному порядку.
На основі статичного масиву створити клас стека символів. Функції-члени: запис у стек, видалення елемента із стека, перегляд елементів стека. Створити новий стек, у який записати тільки голосні букви з вихідного стека.
На основі цілочисельного масиву створити клас стека. Функції-члени: додавання й видалення елемента із стека, а також зведення в ступінь (основа – передостанній елемент, показник ступеня – останній елемент стека).
На основі цілочисельного масиву створити клас стека. Функції-члени: заповнення всього стека випадковими числами, видалення елемента із стека, перегляд вмісту стека, а також створення нового стека, у який копіюються елементи в непарних позиціях.
На основі цілочисельного масиву створити клас стека. Функції-члени: заповнення всього стека випадковими числами, видалення елемента із стека, перегляд вмісту стека, створення копії стека, очищення стека.
На основі цілочисельного масиву створити клас стека. Функції-члени: заповнення стека випадковими числами, видалення із стека, перегляд умісту стека. Скласти програму, що за допомогою двох стеків моделює роботу черги.
На основі статичного масиву створити клас черги цілих чисел. Функції-члени: додавання в чергу, видалення із черги, перегляд черги, створення копії черги, перегляд копії.
На основі статичного масиву створити клас черги цілих чисел. Функції-члени: додавання в чергу, видалення із черги, перегляд черги. Створити чергу з інверсним порядком елементів.
На основі дійсного масиву створити клас стека. Функції-члени: додавання й видалення елемента із стека, а також арифметичне додавання й віднімання значень елементів (результат записується у вершину стека).
Для масиву цілих чисел створити клас стека. Функції-члени: додавання й видалення елемента із стека, інкрементування й декрементування елемента, а також перегляд стека.
На основі дійсного масиву створити клас стека. Функції-члени: додавання й видалення елемента, перегляд стека. Припустити, що в стек записуються сторони прямокутника. Визначити функцію обчислення площі прямокутника. Проілюструвати застосування всіх функцій стека.
На основі дійсного масиву створити клас стека. Функції-члени: додавання й видалення елемента, перегляд стека. Припустити, що в стек записуються сторони трикутника, визначити функцію обчислення площі трикутника. Проілюструвати застосування всіх функцій стека.
На основі цілочисельного масиву створити клас стека. Функції-члени: додавання, видалення елемента із стека, а також чотири арифметичні операції (додавання, віднімання, множення й цілочисельне ділення) із записом результату у вершину стека.
На основі масиву дійсних чисел створити клас стека. Функції-члени: додавання елемента в стек, очищення стека, а також чотири арифметичні операції (додавання, віднімання, множення й ділення) із записом результату у вершину стека. Скласти програму калькулятора, який управляється за допомогою меню й виводить на екран результат операції.
Створити клас стека на основі масиву випадкових чисел. Функції-члени: додавання, видалення елемента із стека, перегляд вмісту стека. Заповнити стек випадковими числами й створити два нових стеки: в один помістити парні числа вихідного стека, а в іншій - непарні.
Створити клас черги на основі масиву випадкових чисел. Функції-члени: додавання, видалення елемента із черги, перегляд черги. Заповнити чергу випадковими числами й створити дві нових черги: в одну помістити парні числа вихідної черги: в іншу – непарні.
Створити клас стека на основі масиву випадкових чисел від –M до M. Функції-члени: додавання, видалення елемента, перегляд стека. Заповнити стек числами й створити два нових стеки, в один із яких помістити від'ємні числа вихідного стека, а в іншій – невід'ємні.
Створити клас черги на основі масиву випадкових чисел від –M до M. Функції-члени: додавання, видалення елемента, перегляд черги. Заповнити чергу числами й сформувати дві нових черги, в одну з них помістити від’ємні числа вихідної черги, а в іншу – невід’ємні.