Очереди
12. Используя очередь, опишите функцию, которая:
-
создаёт пустую очередь;
-
проверяет, является ли очередь пустой;
-
добавляет в конец очереди заданный элемент;
-
удаляет из очереди первый элемент, запоминая его значение в параметре х.
13. Построить очередь со сведениями о квартирах: район, где расположена квартира, количество комнат, метраж, этаж, цена;
-
добавить элемент в очередь;
-
удалить элемент из очереди;
-
проверить, пуста ли очередь;
-
распечатать очередь;
-
сделать очередь пустой.
14. Дан файл действительных чисел. Выведите на печать в начале все числа, меньшие заданного а, затем - все числа из отрезка [а, b], и, наконец, — все остальные числа, сохраняя исходный взаимный порядок в каждой из этих трёх групп чисел.
15. Дан текстовый файл. Перепишите его содержимое в другой файл, перенося при этом в конец каждой строки все входящие в неё цифры с сохранением исходного взаимного порядка среди цифр и среди остальных литер строки.
16. Дано множество имён: Анна, Мария,..., Пётр. Матрица состоящая из булевских элементов, строится по следующему правилу: элемент в строке х и столбце у является истиной, если человек по имени х является родителем человека по имени у. Напишите пpограмму, которая по заданному имени формирует выходной файл, записывая в него сначала всех детей человека, имеющего это имя, затем внуков, затем правнуков и т.д.
17. Напишите программу, моделирующую линию ожидания ёмкостью 10 человек, если для обслуживания клиента и удаления его из очереди требуется 2 единицы времени. Вероятность появления одного нового клиента в течение единицы времени равна р, где 0<p<1. Предполагается, что в течение единицы времени никогда не появляются два и более клиентов. Проследите за переполнением очереди как функцией от р.
18. Напишите программу, которая моделирует очередь в супермаркете. Покупатели появляются в ней случайным образом в интервале от 1 до 4 минут (рассматриваются только целые значения). Обслуживается очередной покупатель в очереди тоже случайным образом в интервале от 1 до 4 минут (также рассматриваются только целые значения). Запустите модель супермаркета при условии 12-часового рабочего дня (720 минут), используя следующий алгоритм:
-
определите момент появления первого покупателя, сгенерировав случайное число в диапазоне от 1 до 4;
-
в момент появления первого покупателя определите время его обслуживания, спланируйте появление следующего покупателя (добавьте к текущему времени случайное целое в диапазоне от 1 до 4) и начните обслуживание первого покупателя;
-
в каждую минуту дня, если появится следующий покупатель, Поставьте его в очередь и спланируйте время появления следующего, если обслужен очередной покупатель, то исключите из очереди следующего покупателя и определите время его обслуживания.
19. Используя условие предыдущей задачи запустите моделирование супермаркета в течение 720 минут и определите:
-
максимальное число покупателей в очереди;
-
максимальное время ожидания покупателей;
-
поведение модели в случае, если интервалы времени изменить с 1-4 минут до 1-3 минут.
20. Используя понятие очереди, упорядочить абитуриентов по дате подачи документов. Сведения об абитуриентах заданы в виде: фамилия, год рождения, средний балл аттестата, место проживания. Предусмотреть процедуры печати фамилии абитуриента, сдавшего документы первым, добавления абитуриента в очередь, проверки, пуста ли очередь.