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

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

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

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

Лабораторна робота № 3: Структура даних стек

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

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

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

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

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

Виконано лабораторну роботу з дослідження абстрактної структури даних стек на мові C++. Розроблено програму для циклічного розподілу вхідної послідовності чисел по трьом стекам.

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

  • Структури даних
  • Стек
  • Шаблонні класи
  • Динаміка вмісту стека
  • Алгоритми обробки послідовностей
  • Мова програмування C++

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

  1. Мета роботи
  2. Постановка задачі
  3. Алгоритм розв’язку задачі
  4. Динаміка вмісту стеку
  5. Результати виконання програми
  6. Висновки
  7. Додатки
Для кого:Студенти технічних спеціальностей вищих навчальних закладів
Викладачі:Не вказано

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

стекшаблонний класpushpopструктура данихвхідна послідовністьдинаміка вмістурозподіл чиселC++

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

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Кафедра ЕОМ  Лабораторна робота № 3 Структура даних СТЕК № варіанта = [(день народження) + (ASCII–код першої літери прізвища – велика латинська літера) ] % 21 + 1= (26+75)%21+1=18 1 Мета роботи: Вивчення фундаментальної абстрактної структури даних стек. Набуття практичних навичок побудови стека, дослідження динаміки його вмісту та використання стеків для розв'язання прикладних задач. 2 Постановка задачі: Написати програму, у якій числа вхідної послідовності циклічно розподіляються по трьом стекам. Всі додатні числа додаються в стек, а кожне від'ємне число вилучає зі стеку один елемент. Показати динаміку вмісту кожного стека. Після обробки всієї заданої вхідної послідовності визначити у якому стеку сума всіх чисел буде найбільшою. 3 Алгоритм роз’вязку задачі: Стек організовуємо у вигляді шаблонного класу. Це дає можливість працювати з усіма стандартними типами даних. Спочатку по черзі вносимо перший елемент в перший стек, другий елемент в другий стек, третій елемент в третій стек, і так робимо по порядку. 4 Динаміка вмісту стеку:  5 Результати виконання програми:  Висновки: На цій лабораторній роботі я ознайомився з cтруктурою даних стек. Дослідив принципи і методи роботи зі стеком. Додатки: #include <iostream> #include <conio.h> using namespace std; class stack { int i, st1[10],st2[10],st3[10], max1,max2,max3; int k, k1,k2,k3; public: void start() {k=1,k1=1,k2=1,k3=1,max1=max2=max3=0;} void push(int j) { i=j; if (k%3==1){ max1=i+max1; st1[k1]=i; k1++ ;} else if (k%3==2) { max2=i+max2; st2[k2]=i; k2++ ;} else if (k%3==0) { max3=i+max3; st3[k3]=i; k3++;} k++; } void pop() { if (k%3==1) { max1=max1-i; st1[k1]=0; k1--; } else if (k%3==2) { max2=max2-i; st2[k2]=0;k2--;} else if (k%3==0){ max2=max2-i; st3[k3]=0; k3--; } } void show_dynam() { if (k1>1) { cout<<" 1 stek :"; for (int i=1;i<k1;i++) cout<< st1[i]; cout<<endl; } if (k2>1) { cout<<" 2 stek :"; for (int i=1;i<k2;i++) cout<< st2[i]; cout<<endl; } if (k3>1) { cout<<" 3 stek :"; for (int i=1;i<k3;i++) cout<< st3[i]; cout<<endl; } cout<<"__________"<<endl; } int max_suma() { int temp=-10000; if (temp<max1) temp=max1; if(temp<max2) temp=max2; if (temp<max3) temp=max3; return temp; } int empty() { if (k==0) return 1; else return 0;} int show() { return st1[k-1]; } int size() { return k; } int top() { return st1[k-1]; } } ; int main() { int ar[10]={2, 5, 7, 2, 3, 4, -6, 7, 2,9}, dubl, temp=0, temp2; stack ob; ob.start(); for (int i=0;i<10;i++) { if (ar[i]>=0) ob.push(ar[i]); else ob.pop(); ob.show_dynam(); } cout<<"max znachennja ="<<ob.max_suma(); getch(); return 0; }
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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