Представлення дека, приоритетної черги та дисципліни їх обслуговування

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Содержание работы

ЗАВДАННЯ №2.  ДЕК, ПРИОРИТЕТНА ЧЕРГА.

2.1. Мета: Отримання та закріплення знань про представлення дека, приоритетної черги та дисциплінах їх обслуговування.

2.2. Індивідуальне завдання

Розробити підпрограми, що забезпечують запис та читання запитів з приоритетної черги, стека або дека; Для організації вказаних структур використати масиви та списки. Перевірити працездатність розроблених підпрограм. Послідовність виконання операцій запису та читання обирати випадково. Порівняти результати роботи, зробити висновки.

Варіант індивідуального завдання  n визначається  так:

n = N mod 15

де N – номер студента у журналі групи.

0)  Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (початку черги). Черга організована на масиві із зсувом після кожного читання та та на масиві із зсувом після досягнення границі пам’яті, що виділена для черги. Приоритет: мin значення числового параметра; при співпаданні параметрів – LIFO.

1)  Розробити підпрограми роботи Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та на двоспрямованому списку. Операції виконуються з обох кінців дека.

2)  з приоритетною чергою. Постановка запитів в чергу виконується підряд в кінець черги, зняття – по приоритету. Черга організована на масиві та списку. Приоритет: мin значення числового параметра; при співпаданні параметрів - LIFO.

3)  Розробити підпрограми роботи із стеком. Стек організований на масиві та на двоспрямованому списку.

4)  Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та на двоспрямованому списку. Операції виконуються з різних кінців дека.

5)  Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (з початку черги). Черга організована на масиві із циклічним заповненням та із зсувом. Приоритет: мах значення числового параметра; при співпаданні параметрів – FIFO.

6)  Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд із старших адрес (кінця черги). Черга організована на масиві та на списку. Приоритет: мах значення числового параметра; при співпаданні параметрів – FIFO.

7)  Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та із зсувом. Операції виконуються з обох кінців дека.

8)  Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (початку черги). Черга організована на масиві із циклічним заповненням та списку. Приоритет: мах значення числового параметра; при співпаданні параметрів – FIFO.

9)  Розробити підпрограми роботи з деком. Дек організований на масиві із циклічним заповненням та із зсувом. Операції виконуються з різних кінців дека.

10) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (з початку черги). Черга організована на масиві із зсувом після кожного читання та на масиві із зсувом після досягнення границі пам’яті, що виділена для черги. Приоритет: мах значення числового параметра; при співпаданні параметрів – FIFO.

11) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (з початку черги). Черга організована на масиві із циклічним заповненням та із зсувом. Приоритет: мin значення числового параметра; при співпаданні параметрів – LIFO.

12) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд із старших адрес (кінця черги). Черга організована на масиві та на списку. Приоритет: мin значення числового параметра; при співпаданні параметрів – LIFO.

13) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується по приоритету, зняття - підряд з молодших адрес (з початку черги). Черга організована на масиві із циклічним заповненням та списку. Приоритет: мin значення числового параметра; при співпаданні параметрів – LIFO.

14) Розробити підпрограми роботи з приоритетною чергою. Постановка запитів в чергу виконується підряд в кінець черги, зняття – по приоритету. Черга організована на масиві та списку. Приоритет: мax значення числового параметра; при співпаданні параметрів - FIFO.

   2.3. Типове завдання

Розробити підпрограми роботи з приоритетною чергою. Постановка запитів у чергу виконується підряд в кінець черги, зняття – по приоритету. Чергу реалізувати на масиві.

5.5.1.  Текст програми.

#include<conio.h>

#include<iostream.h>

#include<mem.h>

#include<stdlib.h>

int och[512];                 //черга на 512 запитів

int point=-1;                 //вказівник на чергу

int addel (int a)             //додавання запиту у чергу

{

  if (point<511) och[point++]=a;

  else

  {

     cout << "enough queue\n" //черга переповнена

     return 0;

  }

  return 1;

}

 void delel (void)            //читання запиту з черги

{

  if (point>=0)

  {

    int max=och[0], nmax=0;   // пошук запиту з максимальним параметром

    for(int i=1; i<point; i++)

    if (max<och[i]) max=och[i], nmax=i;

    cout<<"read   "<<max<<endl;

    point--;                  //зсув черги

    for(i=nmax; i<point; i++) och[i]=och[i+1];

  }

}

 void printoch (void)         //вміст черги

{

  if (point>=0)

  {

    cout<<": ";

    for (int i=0;i<point;i++)

       cout<<och[i]<<" ";

    cout<<"\n";

  }

}

 void main (void)

  {

   int op,f;

   clrscr();

   do

   {

     op=random(2);            //0-запис запиту, 1- читання

     f=random(15);            //запит

     if (op) delel();

     else if (! addel(f)) exit(1);

     printoch ();

     getch();

    }

   while (1);

}

5.5.2.  Фрагмент результатів роботи програми

. . .

12  5  3  0  14  6  1  14  6  2  3

read 14

12  5  3  0   6  1  14  6  2  3

read 14

12  5  3  0   6  1   6  2  3

12  5  3  0   6  1   6  2  3  7

read 12

5  3  0   6  1   6  2  3  7

. . .

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.