Лабораторна робота №5 Програмування, ч3

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

ВУЗ:
Інші
Інститут:
О
Факультет:
КН
Кафедра:
Не вказано

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

Рік:
2024
Тип роботи:
Лабораторна робота
Предмет:
Програмування алгоритмів цифрової обробки сигналів та зображень

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

ЗВІТ лабораторної роботи №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; }
Антиботан аватар за замовчуванням

28.05.2019 17:05-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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