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

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

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

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

Створення і ведення лінійних зв’язаних списків із програмною підтримкою пулу вільної пам’яті

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

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

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

Рік:
2026
Тип роботи:
Лабораторна робота
Предмет:
Системне програмне забезпечення
Група:
КН-11
Коротко про документ

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

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

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

  • Зв'язані списки
  • Стек
  • Черги
  • Динамічна пам'ять
  • Програмування на C
  • Пул вільної пам'яті

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

  1. Мета роботи
  2. Короткі теоретичні відомості
  3. Стек
  4. Черги
  5. Індивідуальне завдання
  6. Текст програми
  7. Висновок
Для кого:Студенти технічних спеціальностей та розробники програмного забезпечення.
Викладачі:Викладач кафедри

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

зв'язаний списокстекчергапул пам'ятівказівникрозподіл пам'ятіmallocструктураелементоперативна пам'ять

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

МIНIСТЕРСТВО ОСВIТИ І НАУКИ УКРАЇНИ Національний унiверситет "Львiвська полiтехнiка"  Створення i ведення лiнiйних зв’язаних спискiв iз програмною пiдтримкою пулу вiльної пам’ятi 1. МЕТА РОБОТИ Ознайомитися iз способом подання даних в оперативнiй пам'ятi ЕОМ у виглядi лiнiйних зв'язаних спискiв із програмною підтримкою пулу вільного простору. 2. КОРОТКІ ТЕОРЕТИЧНI ВIДОМОСТI 2.1.СТЕК Стек є найпростішим видом зв’язаного списку. Якщо стек порожній, то можна вставити інформацію Y у вершину стека, використовуючи допоміжний вказівник P( P ( AVAIL( INFO(P) ( Y( LINK(P) ( T( T ( P (5) і, навпаки, якщо встановити в Y інформацію із вершини стеку: Якщо T= ^ , то недостатньо пам'яті інакше P ( T( T ( LINK(P), Y ( INFO(P)( AVAIL ( P (6) Необхiдно зауважити, що у кожній з цих операцій використовується циклічна перестановка трьох зв’язків. 2.2. ЧЕРГИ Якщо iснують черги, зв’язки повинні мати напрямок від початкового вузла до останнього, з тим, щоб, коли вузол видаляється з голови черги, здійснювався перехід безпосередньо до початкового вузла. Вказівники F i R використовуються для вказання відповідно на початок і кінець черги( Плануючи загальну роботу із списком необхідно ретельно проаналiзувати всі ситуації, і особливо якщо список порожній. ІНДИВІДУАЛЬНЕ ЗАВДАННЯ Створити пул , записати туди елементи, видалити елемент. Текст програми #include <stdio.h> #include <stdlib.h> #include <conio.h> const number=10; typedef char element_type; struct unit { element_type element; unit * next; }; //------Fynkcii-------- int full_pool (unit *); unit * search(unit *); unit * init_pool(void); void show_pool(unit *); unit * delete_from_pool(unit **,unit *); void insert_pool(unit *,unit **); //------Golovna programa----------------- void main (void) { clrscr(); unit * first, *pool; first=init_pool(); //--if pool was not created--- if (!first) { printf("\n Error can not crete the pool\n"); getch(); goto l1;}; //---------------------------- pool=first; while (1) { printf("\n 1 - enter the element\n 2 - show pool\n 3 - delete symbol\n 4 - exit\n"); int answer; scanf(" %d",&answer); switch (answer) { case 1: insert_pool(first,&pool); break; case 2: show_pool(first); break; case 3: pool=delete_from_pool(&pool,search(first)); break; default: {printf("\n Good bye"); getch(); return;}; } } l1: } //------Fynkciya inicializacii pyly-------------------- unit * init_pool(void) { unit * first; first=(unit *)malloc(number*sizeof(struct unit)); if (!first) return NULL; else { for (int i=0;i<number-1;i++) { (first+i)->element=' '; (first+i)->next=(first+i+1);} (first+number-1)->element=' '; (first+number-1)->next=NULL; }; return first; } //-------Pokaz pyly-------------------------------------- void show_pool (unit * first) { printf("\n This is your pool \n "); for (int i=0;i<number;i++) printf(" %c",(first+i)->element); printf("\n\n"); } //-----CHEKING IF POOL IS FULL-------------------- int full_pool (unit * first) { //-0--pool is not full--------------- //-1--pool is full------------------ for (int i=0;i<number;i++) if ((first+i)->element==' ') return 0; return 1; } //------Vstavka novogo elementa v pyl------------------------- void insert_pool(unit * first, unit ** pool) { if (full_pool(first)) { printf("\n Pool is full\n"); getch(); return;} else { printf("\n Enter the element\n"); element_type symbol; scanf(" %c",&symbol); (*pool)->element=symbol; unit * buf_pointer; buf_pointer=(*pool); (*pool)=(*pool)->next; buf_pointer->next=(*pool); } } //------Pochyk elementa-------------------------- unit * search(unit * first) { element_type symbol; printf("\n Enter the element witch you want to delete\n"); scanf(" %c",&symbol); for (int i=0;i<number;i++) if ((first+i)->element==symbol) return (first+i); } //---------Vudalennya elementa------------------------------ unit * delete_from_pool(unit ** pool,unit * del_pointer) { unit * buf_pointer; buf_pointer=*pool; (*pool)=del_pointer; del_pointer->element=' '; del_pointer->next=buf_pointer; return *pool; } Висновок Виконав[ім’я автора приховано]
Допоможи студентському архіву

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

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

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

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

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

Admin

26.02.2023 12:38

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