DevioLabавтоматичне керування капіталом
ПРАЦЮЄ 24/7
КРИПТОВАЛЮТИ · АКЦІЇ · 10 БІРЖ

Портфель, який керується автоматично

DevioLab підбирає стратегії, відстежує ринки та автоматизує купівлю і продаж активів. Кількість доступних криптовалют, акцій і торгових можливостей зростає щодня.

10підключених біржCrypto + Stocksв одному портфелі24/7автоматичний контроль

Лабораторна робота № 5 з дисципліни “Структури даних та алгоритми” на тему: “Структура даних черга”

Інформація про навчальний заклад

ВУЗ:
Національний технічний університет України Київський політехнічний інститут
Інститут:
ООП
Факультет:
Факультет інформатики та обчислювальної техніки
Кафедра:
Кафедра обчислювальної техніки

Інформація про роботу

Рік:
2019
Тип роботи:
Лабораторна робота
Предмет:
Структури даних та алгоритми
Група:
К
Коротко про документ

Про що ця робота

У ході лабораторної роботи студент вивчив абстрактну структуру даних чергу та набув навичок її побудови. Було написано клас мовою C++ для реалізації основних операцій із чергою та продемонстровано їх застосування.

У роботі розглядаються

  • Структури даних
  • Черга
  • Моделювання черги
  • Програмування на C++
  • Динамічні масиви
  • Алгоритми

Зміст і розділи

  1. Мета роботи
  2. Завдання на лабораторну роботу
  3. Вибір індивідуального завдання
  4. Хід роботи
  5. Висновок
  6. Додаток
Для кого:Студенти технічних спеціальностей, викладачі та розробники, які вивчають структури даних та алгоритми програмування.
Викладачі:Викладач

Ключові поняття

чергакласмасивоперація popоперація pushструктури данихC++алгоритміндекселемент

Частина тексту файла (без зображень, графіків і формул):

ЗВІТ лабораторної роботи №5 з дисципліни “Структури даних та алгоритми” на тему: “ Структура даних ЧЕРГА” Варіант №22 МЕТА РОБОТИ Вивчення фундаментальної абстрактної структури даних - черги. Набуття практичних навичок побудови черги, дослідження динаміки її вмісту та використання черг для розв'язання прикладних задач. ЗАВДАННЯ НА ЛАБОРАТОРНУ РОБОТУ І. Завдання 1: Змоделюйте чергу (або дек) згідно з завданням. Перепишіть основні операції для роботи з чергою (деком), і продемонструйте їх застосування для операцій додавання і вилучення елементів в чергу (дек). Для цього задайте послідовність з N цілих чисел. Всі додатні числа послідовно заносяться в чергу (дек), кожне від’ємне число вилучає з черги (деку) один елемент (при роботі з деком, парні числа працюють з одним кінцем деку, а непарні – з іншим). Показувати всі зміни, що будуть відбуватись у черзі (деку). ВИБІР ІНДИВІДУАЛЬНОГО ЗАВДАННЯ Перша літера прізвища  Номер студента в списку групи Варіант А, І, С Б, Ї, Ф В, Й, У Г, К, Т Д, Л, Х Е, М, Ц Є, Н, Ч Ж,О,Ш,Щ З, П, Ю И, Р, Я   10, 20, 30 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10   9, 19, 29 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10   8, 18, 28 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10   7, 17, 27 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10   6, 16, 26 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10   5, 15, 25 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10   4, 14, 24 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10   3, 13, 23 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10   2, 12, 22 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10   1, 11, 21 І1 І2 І3 І4 І5 І6 І7 І8 І9 І10  4. Змоделюйте чергу, в якій реалізований такий механізм вилучення елемента з черги: початок черги завжди знаходиться в першому елементі масиву; при вилученні одного елемента з черги, всі решта елементів пересуваються на одну позицію ближче до початку масиву. Хід роботи: У ході лабораторної роботи я написав клас Чергу на основі якого і виконував поставлене завдання. #ifndef TURN_H #define TURN_H #include <stddef.h> #include<stdio.h> #include<conio.h> #include<iostream> #include<iomanip> #include <string> using namespace std; class Turn { int index; int *turn = new int[index]; public: Turn(); Turn(int); Turn(int*); ~Turn(); bool empty();//Повертає true, якщо черга порожня, і false у противному випадку int size();//Повертає кількість елементів у черзі void pop();//Видаляє елемент з черги, але не повертає його значення int front();//Повертає значення елемента з початку черги, але не видаляє його void push(int);//Поміщає новий елемент у кінець черги }; / Рис.1 Результат виконання програми. Висновок: у ході лабораторної роботи я навчився працювати з типом даних черга. Додаток #ifndef TURN_H #define TURN_H #include <stddef.h> #include<stdio.h> #include<conio.h> #include<iostream> #include<iomanip> #include <string> using namespace std; class Turn { int index; int *turn = new int[index]; public: Turn(); Turn(int); Turn(int*); ~Turn(); bool empty();//Повертає true, якщо черга порожня, і false у противному випадку int size();//Повертає кількість елементів у черзі void pop();//Видаляє елемент з черги, але не повертає його значення int front();//Повертає значення елемента з початку черги, але не видаляє його void push(int);//Поміщає новий елемент у кінець черги }; #endif // TURN_H #include "turn.h" Turn::Turn() { } Turn::Turn(int n) { index = n; for(int i=0;i<index; i++) { turn[i]=NULL; } } Turn::Turn(int* mas) { turn = mas; } bool Turn::empty()//Повертає true, якщо черга порожня, і false у противному випадку { for(int i= 0;i<index;i++) { if(turn[i]==NULL) { return false; } } return true; } int Turn::front()//Повертає значення елемента з початку черги, але не видаляє його { int b=index; for(int i=0;i<index;i++) { if(turn[i]==NULL); else return turn[i]; } return NULL; } void Turn::pop()//Видаляє елемент з черги, але не повертає його значення { int b=sizeof(turn); int v=index; for (int j = 0, k=1; j< index; j++,k++) { v=turn[k]; turn[j]=v; } } void Turn::push(int varibl)//Поміщає новий елемент у кінець черги { for(int i=0;i<index;i++) { if(turn[i]==NULL) { turn [i] = varibl; i=index; } } } int Turn::size()//Повертає кількість елементів у черзі { return index; } Turn::~Turn() { delete [] turn; } #include<stdio.h> #include<conio.h> #include<iostream> #include<iomanip> #include "turn.h" #include <string> using namespace std; int main(int argc, char *argv[]) { //\\************************************************** int index; int varibl; int value; cout<<"Enter number element turn: "; cin>>index; varibl=index; varibl++; Turn obj(index); int *mass = new int[varibl]; for (int i=0;i<varibl; i++) { mass[i]=0; } for (int j=0;j<index; j++) { cout<<"\n Enter element turn: "; cin >> value; varibl=value%2; if(varibl==0) { obj.push(value); } else obj.pop(); for (int i=0;i<index; i++) { mass[i]=obj.front(); obj.pop(); } for (int i=0;i<index; i++) { cout << mass[i] <<endl; } for (int i=0;i<index; i++) { obj.push(mass[i]); } } delete [] mass; return 0; }
Допоможи студентському архіву

Ми допомогли тобі — допоможи наступному студенту

Файл ще не обрано

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!