Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет_2 часть_укр.doc
Скачиваний:
1
Добавлен:
09.11.2019
Размер:
938.5 Кб
Скачать

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. Варіанти завдань

  1. Реалізувати стек для статичного масиву дійсних чисел. Створити клас стека з функціями-членами: запис у стек, видалення із стека, читання елемента у вершині стека, визначення довжини стека.

  2. На основі статичного масиву створити клас стека цілих чисел. Функції-члени: заповнення всього стека випадковими числами, видалення елементів із стека, перегляд вмісту стека.

  3. На основі статичного масиву створити клас стека символів. Функції-члени: запис у стек, видалення із стека, визначення довжини стека. попарне зчитування елементів.

  4. На основі статичного масиву створити клас черги цілих чисел. Функції-члени: додавання в чергу, видалення із черги, виведення всіх елементів черги на екран.

  5. На основі статичного масиву створити клас черги випадкових чисел. Функції-члени: додавання в чергу, видалення із черги, виведення першого елемента черги на екран, визначення довжини черги.

  6. На основі статичного масиву створити клас черги Реалізувати додавання елемента в чергу, виведення елементів черги на екран, а також видалення елемента із черги, якщо користувач угадав, що елемент-кандидат на видалення є прописна або мала літера.

  7. На основі статичного масиву створити клас стека символів. Функції-члени: запис у стек, видалення із стека, перегляд елементів стека. Створити новий стек, у який записати вихідні елементи у зворотному порядку.

  8. На основі статичного масиву створити клас стека символів. Функції-члени: запис у стек, видалення елемента із стека, перегляд елементів стека. Створити новий стек, у який записати тільки голосні букви з вихідного стека.

  9. На основі цілочисельного масиву створити клас стека. Функції-члени: додавання й видалення елемента із стека, а також зведення в ступінь (основа – передостанній елемент, показник ступеня – останній елемент стека).

  10. На основі цілочисельного масиву створити клас стека. Функції-члени: заповнення всього стека випадковими числами, видалення елемента із стека, перегляд вмісту стека, а також створення нового стека, у який копіюються елементи в непарних позиціях.

  11. На основі цілочисельного масиву створити клас стека. Функції-члени: заповнення всього стека випадковими числами, видалення елемента із стека, перегляд вмісту стека, створення копії стека, очищення стека.

  12. На основі цілочисельного масиву створити клас стека. Функції-члени: заповнення стека випадковими числами, видалення із стека, перегляд умісту стека. Скласти програму, що за допомогою двох стеків моделює роботу черги.

  13. На основі статичного масиву створити клас черги цілих чисел. Функції-члени: додавання в чергу, видалення із черги, перегляд черги, створення копії черги, перегляд копії.

  14. На основі статичного масиву створити клас черги цілих чисел. Функції-члени: додавання в чергу, видалення із черги, перегляд черги. Створити чергу з інверсним порядком елементів.

  15. На основі дійсного масиву створити клас стека. Функції-члени: додавання й видалення елемента із стека, а також арифметичне додавання й віднімання значень елементів (результат записується у вершину стека).

  16. Для масиву цілих чисел створити клас стека. Функції-члени: додавання й видалення елемента із стека, інкрементування й декрементування елемента, а також перегляд стека.

  17. На основі дійсного масиву створити клас стека. Функції-члени: додавання й видалення елемента, перегляд стека. Припустити, що в стек записуються сторони прямокутника. Визначити функцію обчислення площі прямокутника. Проілюструвати застосування всіх функцій стека.

  18. На основі дійсного масиву створити клас стека. Функції-члени: додавання й видалення елемента, перегляд стека. Припустити, що в стек записуються сторони трикутника, визначити функцію обчислення площі трикутника. Проілюструвати застосування всіх функцій стека.

  19. На основі цілочисельного масиву створити клас стека. Функції-члени: додавання, видалення елемента із стека, а також чотири арифметичні операції (додавання, віднімання, множення й цілочисельне ділення) із записом результату у вершину стека.

  20. На основі масиву дійсних чисел створити клас стека. Функції-члени: додавання елемента в стек, очищення стека, а також чотири арифметичні операції (додавання, віднімання, множення й ділення) із записом результату у вершину стека. Скласти програму калькулятора, який управляється за допомогою меню й виводить на екран результат операції.

  21. Створити клас стека на основі масиву випадкових чисел. Функції-члени: додавання, видалення елемента із стека, перегляд вмісту стека. Заповнити стек випадковими числами й створити два нових стеки: в один помістити парні числа вихідного стека, а в іншій - непарні.

  22. Створити клас черги на основі масиву випадкових чисел. Функції-члени: додавання, видалення елемента із черги, перегляд черги. Заповнити чергу випадковими числами й створити дві нових черги: в одну помістити парні числа вихідної черги: в іншу – непарні.

  23. Створити клас стека на основі масиву випадкових чисел від –M до M. Функції-члени: додавання, видалення елемента, перегляд стека. Заповнити стек числами й створити два нових стеки, в один із яких помістити від'ємні числа вихідного стека, а в іншій – невід'ємні.

  24. Створити клас черги на основі масиву випадкових чисел від –M до M. Функції-члени: додавання, видалення елемента, перегляд черги. Заповнити чергу числами й сформувати дві нових черги, в одну з них помістити від’ємні числа вихідної черги, а в іншу – невід’ємні.