Стек и очередь. - C#

Узнай цену своей работы

Формулировка задачи:

Нахожусь в процессе написании программы. И из головы совсем вылетело как правильно написать. Вот задание если надо: Система состоит из двух процессоров P1 и P2, двух стеков S1 и S2 и четырёх очередей F1, F2, F3, F4. В систему могут поступать запросы на выполнение задач двух приоритетов - высший (1) и низший (2). Задачи сначала обрабатываются последовательно процессором P1, затем P2. Запросы на выполнение задач высшего приоритета, поступающие из генератора задач, ставятся в очередь F1, а поступающие с процессора P1 - в очередь F3. Запросы на выполнение задач низшего приоритета, поступающие с генератора задач, ставятся в очередь F2, а поступающие с процессора P1 - в очередь F4. Процессор P1 обрабатывает запросы из очередей F1 и F2, а процессор P2 - из очередей F3 и F4. Процессор сначала обрабатывает задачи из очереди задач с высшим приоритетом, затем из очереди задач с низшим приоритетом. Если процессор выполняет задачу с низшим приоритетом и приходит запрос на выполнение задачи с высшим приоритетом, то выполняемая задача помещается в соответствующий процессору стек, а пришедшая задача - в процессор. Задача из стека возвращается в процессор, если все задачи большего приоритета обработаны. Как правильно написать, чтоб можно было сравнивать приоритет? Конкретно этот момент:
Листинг программы
  1. if (prog.priority == 1) // что не так?? как надо сделать?
  2. {
  3. queue_1.Enqueue(prog[i]);
  4. }
  5. else
  6. {
  7. queue_2.Enqueue(prog[i]);
  8. }
Вот ошибка: Ошибка 1 "System.Collections.Generic.List<programm>" не содержит определения для "priority" и не был найден метод расширения "priority", принимающий тип "System.Collections.Generic.List<programm>" в качестве первого аргумента (возможно, пропущена директива using или ссылка на сборку) c:\users\levis\documents\visual studio 2010\Projects\SAOD_3\SAOD_3\CodeFile1.cs 50 22 SAOD_3
Листинг программы
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. struct programm
  5. {
  6. private string name;
  7. private int priority;
  8. private int time;
  9. public programm(string n, int p, int t)
  10. {
  11. name = n;
  12. priority = p;
  13. time = t;
  14. }
  15. }
  16. class process
  17. {
  18. static public void list_prmm(out List<programm> prog, out int num)
  19. {
  20. prog = new List<programm>();
  21. string n1;
  22. int p1, t1;
  23. Console.WriteLine("Введите количество задач: ");
  24. num = Int32.Parse(Console.ReadLine());
  25. Console.WriteLine("Введите хорактеристики задач");
  26. for (int i = 0; i < num; i++)
  27. {
  28. Console.WriteLine("Введите имя задачи " + (i+1) + ":");
  29. n1 = Console.ReadLine();
  30. Console.WriteLine("Введите время выполнения задачи " + (i + 1) + ":");
  31. t1 = Int32.Parse(Console.ReadLine());
  32. Console.WriteLine("Введите приоритет задачи (высший (1) или низший (2))" + (i + 1) + ":");
  33. p1 = Int32.Parse(Console.ReadLine());
  34. programm prog_temp = new programm(n1,p1,t1);
  35. prog.Add(prog_temp);
  36. Console.Clear();
  37. }
  38. }
  39. static public void Queue(List<programm> prog,int num)
  40. {
  41. Queue queue_1 = new Queue();
  42. Queue queue_2 = new Queue();
  43. for (int i = 0; i < num; i++)
  44. {
  45. if (prog.priority == 1) // что не так?? как надо сделать?
  46. {
  47. queue_1.Enqueue(prog[i]);
  48. }
  49. else
  50. {
  51. queue_2.Enqueue(prog[i]);
  52. }
  53. }
  54. }
  55. static void Main()
  56. {
  57. int num;
  58. List<programm> prog;
  59. list_prmm(out prog, out num);
  60. }
  61. }
Так же вопрос, как реализовать выполнение программы по тактам?
up!!!

Решение задачи: «Стек и очередь.»

textual
Листинг программы
  1. while(prog.Count>0)
  2. {
  3.     /// код для распределения процессов в стек или на процессоры
  4.     System.Threading.Thread.Sleep(1000); // Время паузы в мсек
  5. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы