1. Написать программу, содержащую процедуру, которая удаляет из списка М второй элемент, если такой есть.
2. Написать программу, содержащую процедуру, которая удаляет из списка М N-ый элемент, если такой есть. N задает пользователь.
3. Написать программу, содержащую процедуру удаления из заданного списка все вхождения элемента с заданным значением информационной части.
4. Написать программу, содержащую процедуру, которая удаляет из списка М за каждым вхождением элемента Е один элемент, если такой есть и он отличен от Е.
5. Написать программу, содержащую процедуру, которая удаляет из списка М первый отрицательный элемент, если такой есть.
6. Написать программу, содержащую процедуру, которая удаляет из списка М все отрицательные элементы.
7. Написать программу, содержащую процедуру, которая формирует список М, включив в него по одному разу элементы, которые входят хотя бы в один из списков М1 и М2.
8. Написать программу, содержащую процедуру, которая формирует список М, включив в него по одному разу элементы, которые входят одновременно в оба списка М1 и М2.
9. Написать программу, содержащую процедуру, которая формирует список М, включив в него по одному разу элементы, которые входят в список М1, но не входят в список М2.
10. Познакомившись с текстами предыдущих задач, придумайте свою задачу и решите ее.
Приготовьте для проверки файлы с решенными задачами и листинги.
Проверьте свои знания, ответив на вопросы:
1. Дайте определение динамической структуре список.
2. Сколько элементов может содержать список? Как заканчивается список?
3. Сколько полей может содержать элемент списка? От чего зависит количество полей? Приведите примеры.
4. Какого типа могут быть поля элементов списка? Приведите примеры.
5. Обязательно ли применять процедуру освобождения памяти, занятой элементом, когда мы избавляемся от этого элемента в списке? Каким образом это влияет на работу программы?
6. Можно ли ссылку одного элемента направить сразу на два или больше других элемента? Как необходимо поменять тип указателя, чтобы решить эту проблему?
7. Может ли элемент списка быть такого типа, чтобы содержать несколько полей типа указателя? Если – да, то приведите пример для чего это может быть нужно.
8. Можно ли последовательно "связать" два списка разного типа и почему?
9. Можно ли одновременно работать с несколькими списками сразу?
10. Как Вы считаете, на что нужно обращать особое внимание при работе со списками?
Основные определения. Технология моделирования
Система – это совокупность элементов, связанных между собой так, что все вместе они образуют некоторую общность (единство).
. Большой класс систем, в том числе и систем обработки информации (СОИ), формально представляются системами массового обслуживания (СМО) и сетями СМО. СОИ имеют все характерные черты СМО. В них присутствуют:
1. Потоки однородных событий.
2. Обслуживающие аппараты
3. Ограничения на ресурсы
4.Очереди на выполнение запросов.
Для моделирования СМО используют аналитические, имитационные и регрессионные модели. Введем их определения.
Аналитическая модель – это совокупность математических зависимостей, построенных на принципах формального подобия процессов, происходящих в объекте моделирования и его модели.
Имитационная модель – это совокупность операторов алгоритма (программы), в которую можно подставить значения технических характеристик объекта моделирования, параметров внешней среды, времени, начальных значений, имеющихся ограничений и при выполнении имитационной программы в качестве результатов получить значения результативных показателей эффективности.
Регрессионная модель – представляет совокупность математических зависимостей, построенных на основании выявленных статистических зависимостей между переменными методом наименьших квадратов, который требует, чтобы сумма квадратов отклонений экспериментальных значений от вычисленных была минимальной
Для моделирования СОИ требуется определить закон распределения времени между поступлением заявок на обслуживание, имитирование поступления которых в СМО обеспечивает генератор транзактов. Для процессов обслуживания требуется определить и задать закон распределения времени обслуживания. Для очередей требуется задать дисциплину выхода из очереди, например, FIFO или LIFO и ограничения, например, по количеству мест в очереди или по времени ожидания.
Имитация – это численный метод проведения экспериментов над математическими моделями сложных систем, подверженных случайным воздействиям. Из определения выделим характерные особенности имитации:
1. Имитация относится к численным методам, а любой численный метод характеризуется наличием методической ошибки, поэтому предпочтительнее использовать аналитические методы моделирования, не имеющие методической ошибки (если это возможно).
2. Имитация – это эксперимент и хотя он производится над математической моделью, при его проведении целесообразно применить теорию планирования эксперимента и обработки результатов моделирования.
3. Имитируемые объекты моделирования подвержены случайным воздействиям и поэтому, для получения достоверных результатов особое внимание требуется уделить качеству случайных чисел, используемых при моделировании.
4. ЭВМ не является обязательным инструментом имитации и в принципиальном плане имитацию можно выполнить графическим методом без применения ЭВМ. Однако, ввиду того, что для получения достоверных результатов требуется проимитировать сравнительно большое количество состояний, в которых может находиться объект моделирования (ОМ), то применение ЭВМ становится весьма целесообразным.