Форум программистов, компьютерный форум CyberForum.ru

Стеки и очереди - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ приложение по редактированию файлов в 16ричном виде http://www.cyberforum.ru/cpp-beginners/thread222119.html
Глубоко уважаемые товарищи програмисты помогите пожалуйста написать приложение по редактированию файлов в 16ричном виде. Заранее спс
C++ Выбрать из строки буквы и отсортировать их Выбрать из строки буквы и отсортировать их в алфавитном порядке(на си) http://www.cyberforum.ru/cpp-beginners/thread222116.html
работа со строками C++
с использованием <string.h> Дан текст. Создать новый, в который включены слова исходного текста, оканчиваю-щиеся на ту же букву, что и слово минимальной длины.
C++ работа со строками
с использованием <string.h> 3) Определить сколько раз в тексте встречаются слова минимальной длины.
C++ Структуры: Вывести все танки с 1940-1950 г. чей калибр , больше 50 мм. или же просто больше 50 http://www.cyberforum.ru/cpp-beginners/thread222109.html
Названия структуры: Танки. Ввод данных такой: Названия Год выпуска Калибр Скорость Вывести:
C++ работа со строками без использования библиотеки <string.h> Для каждого слова, кроме последнего, указать, сколько пробелов стоит после него. подробнее

Показать сообщение отдельно
Slafira
1 / 1 / 0
Регистрация: 18.10.2010
Сообщений: 113
29.12.2010, 00:27     Стеки и очереди
Здраствуйте!
Не могу понять как реализовать.
Система состоит из двух процессоров P1 и P2 и трёх очередей F1, F2, F3 и стека. В систему поступают запросы. Запрос можно представить записью.
Type
TInquiry= record
Name: String[10]; {имя запроса}
Time: Word; {время обслуживания}
Р: Byte;{приоритет задачи 0-высший,
1-средний, 2-низший}
end;
Поступающие запросы ставятся в соответствующие приоритетам очереди. Сначала обрабатываются задачи из очереди F1. Задача из очереди F1 поступает в свободный процессор P1 или P2, если оба свободны, то в P1. Если очередь F1 пуста, то обрабатываются задачи из очереди F2. Задача из очереди F2 поступает в свободный процессор P1 или P2, если оба свободны, то в P1. Если очереди F1 и F2 пусты, то обрабатываются задачи из очереди F3. Задача из очереди F3 поступает в свободный процессор P1 или P2, если оба свободны, то в P2. Если процессоры заняты и поступает задача с более высоким приоритетом, чем обрабатываемая в одном из процессоров, то задача из процессора помещается в стек, а поступающая - в процессор. Задача из стека поступает в один из освободившихся процессоров, если все задачи с более высоким приоритетом уже обработаны.

написала код из методички
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
//------------------------------------------------------------
 
---------------
 
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <iomanip>
#include <time.h>
#include <vector>
#include <string>
#include <algorithm>
#include <conio.h>
#include <stdlib.h>
#include <fstream.h>
#include <tchar.h>
 
//------------------------------------------------------------
 
---------------
 
#pragma argsused
struct stack          //объявление стека
{int dann;
    stack *prev; };
    stack *top=NULL;
void push (int a)    //добавление элемента в стек
{stack *q;
q=new stack;
q->prev=top;
q->dann=a;
top=q;
}
int pop(void)       //удаление элемента из стека
{stack *q;
int temp;
if (!top) cout<<"\nCTek pycT"; else
 { temp=top->dann;
 q=top->prev;
 delete top;
 top=q;
 
}      return temp;
}
int peek(void)       //выдача значения верхнего элемента
{int temp;
if (!top) {
    cout<<"\nCTek pycT";
    exit(1);
}
temp=top->dann;
return temp;
}
void clear (void)       //очистка стека
{stack *q;
while (top){
    q=top->prev;
    delete top;
    top=q;
}
}
 struct queue {      // объявление очереди
     int dann;
     queue *next;
 };
 queue* front=NULL;
 queue* rear=NULL;
 int k=0;
   void qinsert(int a)    //добавление элемента в очередь
   {queue *q;
   q=new queue;
   if (k==0)  front=q;
       else rear->next=q;
       q->dann=a;
       rear=q;
       rear->next=NULL;
       k++;
   }
   int qdelete(void)   //удаление элемента из очереди
   {queue *q;
   int temp;
   if (!front) cout<<"\nO4ePeD pycTa";
   else { temp=front->dann;
   q=front->next;
   delete front;
   front=q;
   k--;
   }
   return temp;
   }
     int qfront (void)     //выдача значения первого 
 
элемента
     {int temp;
     if (!front) { cout<<"\n nonblTka c4uTaTb DaHHbIe uz 
 
nucToj O4ePeDu";
     exit(1);
     }
     temp=front->dann;
     return temp;
     }
     void qclear (void)  //очистка очереди
     {queue *q;
     while (front) {
         q=front->next;
     delete front;
     front=q;
     k--;
     }
     }
int _tmain(int argc, _TCHAR* argv[])
{
 
}
//------------------------------------------------------------
 
---------------
Помогите, пожалуйста хотя бы примерно. Очень плохо знаю синтаксис. Понимаю само задание и что от меня требуется. Понимаю что такое стек и очередь. Не понимаю как это реализовать. Что именно и где писать в коде

Добавлено через 32 минуты
Помогите пожалуйста надо в течение 4 часов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru