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
. . .
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.