Модель системы передачи пакетов данных

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    394,29 Кб
  • Опубликовано:
    2013-01-14
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Модель системы передачи пакетов данных

Введение

Моделирование в широком смысле является основным методом исследований во всех областях знаний и научно обоснованным методом оценок характеристик сложных систем, используемым для принятия решений в различных сферах инженерной деятельности. Существующие и проектируемые системы можно эффективно исследовать с помощью математических моделей (аналитических и имитационных), реализуемых на современных ЭВМ, которые в этом случае выступают в качестве инструмента экспериментатора с моделью системы.

В данном курсовом проекте нам необходимо спроектировать и реализовать модель системы передачи пакетов данных. Для этого необходимо написать программы с использованием языка имитационного моделирования GPSS и любого общесистемного языка программирования. Мной была выбрана среда программирования Delphi 7.

Необходимо добиться, чтобы обе программы выдавали одинаковые результаты моделирования.


1. Теоретическая часть

.1 Общие сведения о моделировании

Моделирование - исследование объектов познания на их моделях, построение и изучение моделей реально существующих предметов, процессов или явлений с целью получения объяснений этих явлений, а также для предсказания явлений, интересующих исследователя.

Модель - объект произвольной природы, который отражает главные, с точки зрения решаемой задачи, свойства объекта моделирования. Главными функциями модели являются упрощение получения информации о свойствах объекта, передача информации и знаний, управление и оптимизация объектами и процессами, прогнозирование и диагностика.

Процесс моделирования включает три элемента: субъект (исследователь), объект исследования и модель, определяющую (отражающую) отношения познающего субъекта и познаваемого объекта.

Первый этап построения модели предполагает наличие некоторых знаний об объекте-оригинале. Познавательные возможности модели обусловливаются тем, что модель отображает (воспроизводит, имитирует) какие-либо существенные черты объекта-оригинала. Вопрос о необходимой и достаточной мере сходства оригинала и модели требует конкретного анализа. Очевидно, модель утрачивает свой смысл как в случае тождества с оригиналом (тогда она перестает быть моделью), так и в случае чрезмерного во всех существенных отношениях отличия от оригинала. Таким образом, изучение одних сторон моделируемого объекта осуществляется ценой отказа от исследования других сторон. Поэтому любая модель замещает оригинал лишь в строго ограниченном смысле. Из этого следует, что для одного объекта может быть построено несколько «специализированных» моделей, концентрирующих внимание на определенных сторонах исследуемого объекта или же характеризующих объект с разной степенью детализации.

На втором этапе модель выступает как самостоятельный объект исследования. Одной из форм такого исследования является проведение «модельных» экспериментов, при которых сознательно изменяются условия функционирования модели и систематизируются данные о ее «поведении». Конечным результатом этого этапа является множество (совокупность) знаний о модели.

На третьем этапе осуществляется перенос знаний с модели на оригинал - формирование множества знаний. Одновременно происходит переход с «языка» модели на «язык» оригинала. Процесс переноса знаний проводится по определенным правилам. Знания о модели должны быть скорректированы с учетом тех свойств объекта-оригинала, которые не нашли отражения или были изменены при построении модели.

Четвертый этап - практическая проверка получаемых с помощью моделей знаний и их использование для построения обобщающей теории объекта, его преобразования или управления им.

Моделирование является циклическим процессом. Это означает, что за первым четырехэтапным циклом может последовать второй, третий и т.д. При этом знания об исследуемом объекте расширяются и уточняются, а исходная модель постепенно совершенствуется. Недостатки, обнаруженные после первого цикла моделирования, обусловленные малым знанием объекта или ошибками в построении модели, можно исправить в последующих циклах [5].

Процессы функционирования различных систем и сетей связи могут быть представлены той или иной совокупностью систем массового обслуживания - стохастических, динамических, дискретно-непрерывных математических моделей. Исследование характеристик таких моделей может проводиться либо аналитическими методами, либо путем имитационного моделирования.

Имитационная модель отображает стохастический процесс смены дискретных состояний системы в непрерывном времени в форме моделирующего алгоритма. При его реализации на ЭВМ производится накопление статистических данных по тем атрибутам модели, характеристики которых являются предметом исследований. По окончании моделирования накопленная статистика обрабатывается, и результаты моделирования получаются в виде выборочных распределений исследуемых величин или их выборочных моментов. Таким образом, при имитационном моделировании систем массового обслуживания речь всегда идет о статистическом имитационном моделировании [6].

К имитационному моделированию прибегают, когда дорого или невозможно экспериментировать на реальном объекте, невозможно построить аналитическую модель, в системе есть время, причинные связи, последствие, нелинейности, стохастические (случайные) переменные, необходимо сымитировать поведение системы во времени.

Цель имитационного моделирования состоит в воспроизведении поведения исследуемой системы на основе результатов анализа наиболее существенных взаимосвязей между ее элементами.

Имитационное моделирование позволяет имитировать поведение системы, во времени. Причём плюсом является то, что временем в модели можно управлять: замедлять в случае с быстропротекающими процессами и ускорять для моделирования систем с медленной изменчивостью. Можно имитировать поведение тех объектов, реальные эксперименты с которыми дороги, невозможны или опасны.

Имитация, как метод решения нетривиальных задач, получила начальное развитие в связи с созданием ЭВМ в 1950х - 1960х годах [5].

Сложные функции моделирующего алгоритма могут быть реализованы средствами универсальных языков программирования (Паскаль, Си), что предоставляет неограниченные возможности в разработке, отладке и использовании модели. Однако подобная гибкость приобретается ценой больших усилий, затрачиваемых на разработку и программирование весьма сложных моделирующих алгоритмов, оперирующих со списковыми структурами данных. Альтернативой этому является использование специализированных языков имитационного моделирования.

Специализированные языки имеют средства описания структуры и процесса функционирования моделируемой системы, что значительно облегчает и упрощает программирование имитационных моделей, поскольку основные функции моделирующего алгоритма при этом реализуются автоматически. Программы имитационных моделей на специализированных языках моделирования близки к описаниям моделируемых систем на естественном языке, что позволяет конструировать сложные имитационные модели пользователям, не являющимся профессиональными программистами.

Одним из наиболее эффективных и распространенных языков моделирования сложных дискретных систем является в настоящее время язык GPSS. Он может быть с наибольшим успехом использован для моделирования систем, формализуемых в виде систем массового обслуживания. В качестве объектов языка используются аналоги таких стандартных компонентов систем массового обслуживания, как заявки, обслуживающие приборы, очереди и т.п. Достаточный набор подобных компонентов позволяет конструировать сложные имитационные модели, сохраняя привычную терминологию систем массового обслуживания.

.2 Общие сведения о GPSS

Язык GPSS представляет собой интерпретирующую языковую систему, применяющуюся для описания пространственного движения объектов. Такие динамические объекты в языке GPSS называются транзактами и представляют собой элементы потока. В процессе имитации транзакты «создаются» и «уничтожаются». Функцию каждого из них можно представить как движение через модель с поочередным воздействием на ее блоки. Функциональный аппарат языка образуют блоки, описывающие логику модели, сообщая транзактам, куда двигаться и что делать дальше.

В состав GPSS входят следующие типы объектов: транзакты, блоки, списки, устройства, памяти, логические ключи, очереди, таблицы, ячейки, функции, переменные. Любую модель на языке GPSS можно представить в виде комбинации компонентов, взятых из числа званных объектов. Модель имеет три уровня представления:

верхний уровень, определяемый комбинацией основных функциональных объектов: устройств, памяти, ключей, очередей;

средний уровень, представляемый схемой из типовых блоков, между которыми перемещаются транзакты;

нижний уровень - уровень физической реализации языка GPSS в виде программ и наборов данных, составляющих основу моделирующей системы.

Объекты GPSS:

Блоки. Разработчик конструирует модель из блоков, прибегая, как правило, к наглядной форме ее отображения в виде блок-схемы. Для удобства графического представления модели каждый блок GPSS имеет принятое стандартное обозначение. Построенная схема является одновременно программой на языке GPSS. Для ее ввода в ЭВМ необходимо последовательность блоков представить в виде списка операций, добавив к названиям блоков требуемые операнды. Каждый блок GPSS имеет входы и выходы, с помощью которых осуществляется их связь в модели. Существуют два особых блока: GENERATE, имеющий только выход, и TERMINATE, имеющий только вход. Через блок GENERATE транзакты вводятся в модель. Блок TERMINATE удаляет транзакты из модели. Любую модель на языке GPSS можно представить в виде совокупности блоков.

Транзакты. Транзакты, или сообщения, являются абстрактными подвижными элементами, которые могут моделировать различные объекты реального мира: сообщения, программы, транспортные средства, людей и т.п. Перемещаясь между блоками модели, транзакты вызывают (и испытывают) различные действия. Возможны их задержки в некоторых точках модели, изменения маршрутов и направлений движения, расщепление транзактов на несколько копий и т.п. С каждым транзактом связан упорядоченный набор данных.

Списки. Списки относятся к элементам внутренней организации системы GPSS. Они представляют собой структуры данных, в которых размещается полная информация о транзактах. С помощью списков обеспечивается внутренняя логика работы моделирующей системы. Список будущих событий содержит транзакты, которые смогут начать движение в модели в будущие моменты времени. Это те транзакты, для которых моменты начала движения определены в блоках GENERATE и ADVANCE. В список текущих событий входят транзакты, которые должны перемещаться в модели в текущий момент модельного времени. Если при этом транзакт входит в блок ADVANCE с ненулевым временем задержки, то он перемещается в список будущих событий. В список прерываний помещаются транзакты, обслуживание которых прервано блоком PREEMPT.

Устройства. Устройства моделируют объекты, в которых может происходить обработка транзактов. Как правило, она связана с затратами времени. Особенность устройств состоит в том, что каждое из них в данный момент времени может быть занято лишь одним транзактом.

Логические ключи. Для представления в модели коммутируемых объектов с двумя состояниями (включено - выключено) используют логические ключи, моделируемые блоками LOGIC и GATE.

Очереди. Транзакты в процессе движения могут задерживаться перед блоками, вход в которые в данных условиях невозможен. При поступлении транзактов на вход задерживающих блоков образуются очереди.

Таблицы. Для сбора статистических данных и их представления используют таблицы. Занесение информации в таблицу осуществляется блоком TABULATE в момент входа очередного транзакта в этот блок.

Ячейки. Для записи в процессе моделирования текущих значений СЧА используют ячейки.

Функции и переменные. Функции служат для отображения зависимостей между двумя СЧА [7].

. Разработка модели и алгоритма функционирования системы

.1      Постановка задачи для машинного моделирования

В данном курсовом проекте стоит задача реализации модели работы системы передачи данных.

Система передачи данных обеспечивает передачу пакетов данных из пункта А в пункт С через транзитный пункт В. В пункт А пакеты поступают через 10 ± 5 мс. Здесь они буферизуются в накопителе ёмкостью 20 пакетов и передаются по любой из двух линий АВ1 - за время 20 мс или АВ2 - за время 20 ± 5 мс. В пункте В они снова буферизуются в накопителе, ёмкостью 25 пакетов и далее передаются по линиям ВС1 (за 25 ± 3 мс) и ВС2 (за 25 мс). Причём пакеты из АВ1 поступают в ВС1, а из АВ2 - в ВС2.

Чтобы не было переполнения накопителя, в пункте В вводится пороговое значение его ёмкости - 20 пакетов. При достижении очередью порогового значения происходит подключение резервной аппаратуры и время передачи снижается для линий ВС1 и ВС2 до 15 мс. Смоделировать прохождение через систему передачи данных 500 пакетов. Определить вероятность подключения резервной аппаратуры и характеристики очереди пакетов в пункте В. В случае возможности его переполнения определить необходимое для нормальной работы пороговое значение ёмкости накопителя.

.2 Определение параметров и переменных

Прежде чем перейти к построению концептуальной схемы модели, необходимо определить входные и выходные переменные.

Экзогенные (независимые) переменные - вводятся извне, это исходная информация, они задаются до начала построения модели.

Экзогенными переменными в данной модели будут являться время передачи пакетов по каналам связи, максимальные длины очередей, критическая длина очереди В, при достижении которой включается резервная аппаратура.

Эндогенные (зависимые) переменные - формируются внутри модели, являются результатом её решения, определяются в ходе расчётов по модели.

Эндогенными переменными в данной модели будут являться количество потерянных пакетов в пункте А, количество пакетов прошедших через резервную аппаратуру, вероятность включения резервной аппаратуры, количество пакетов прошедших через систему.

.3 Построение концептуальной модели системы

Концептуальная модель системы - это формализованный замысел модели, реализованный в виде конкретной формализованной схемы, то есть адекватная математическая модель системы, построенная на основе её описания.

На первом этапе разработки концептуальной модели построим структурную схему модели, приведенную на рисунке 1.








Рисунок 1 - Структурная схема модели

В данном случае стрелками показаны направления движения пакетов. Как можно заметить, часть пакетов не обрабатывается из-за переполнения очередей и пропадает.

На втором этапе разработки концептуальной модели для её формализации построим систему на базе Q - схем. В качестве элементов структуры Q - схем будем рассматривать элементы трех типов: И - источник; Н - накопитель; К - каналы передачи пакетов. Структурная схема, сформированная на базе Q - схем, представлена на рисунке 2.








Рисунок 2 - Структурная схема модели на базе Q-схем

Источник И генерирует пакеты. К1-К4 - каналы передачи пакетов между пунктами, К5-К6 резервные каналы передачи. Накопители Н1 и Н2 имитируют емкость пунктов А и В соответственно, поступление пакетов в которые регулируют клапаны 1-2. В случае достижения емкости в пункте В порогового значения закрывается клапан 2 и подключаются резервные каналы К5 и К6.

2.4 Алгоритмизация модели и её машинная реализация

На данном этапе моделирования необходимо провести реализацию идей и математических схем в виде машинной модели, ориентированной на использование конкретных программно-технических средств.

В качестве языка имитационного моделирования был выбран язык GPSS, благодаря способности моделирования систем массового обслуживания.

На данном этапе нужно построить блок-диаграмму модели. Изобразим её на рисунке 3. По полученной блок-диаграмме составим текст программы на языке имитационного моделирования GPSS.

Также необходимо построить общий алгоритм работы программы. Структурная схема данного алгоритма представлена на рисунке 4.





АВ


















































Рисунок 4 - Общая структурная схема алгоритма работы программы

В цикле программы происходит создание потоков. Каждый такой поток представляет собой транзакт, который движется по модели. Учёт системного времени не ведется, происходят задержки потока на заданное время.

При переполнении буфера А происходит удаление лишних транзактов, при этом происходит считывание их количества. Информация о количестве удаленных транзактов выводится пользователю.

Для нахождения вероятности подключения резервной аппаратуры необходимо разделить количество пакетов, прошедших через резервную аппаратуру на общее число пакетов, прошедших через систему.

Отчёт работы программы, написанной на языке имитационного моделирования GPSS, поместим в приложении Б. Исходные тексты программ, написанных на GPSS и общесистемной языке программирования, поместим в приложения А и В соответственно.


.1 Структура программы

Для реализации алгоритма моделирования на общесистемном языке программирования была выбрана система объектно-ориентированного программирования Borland Delphi 7.0. Данный выбор обоснован простотой и малым временем, требующимся для разработки программного обеспечения в данной среде. Также немалую роль сыграл тот факт, что откомпилированные в ней приложения совместимы с семейством Microsoft Windows 9x и Microsoft Windows NT, а данные операционные системы широко распространены.

В программе реализован режим быстрого моделирования, при котором моделирование производится непрерывно, после чего выдаются окончательные результаты.

.2 Описание диалога с пользователем

Исполняемый файл программы называется Project1.exe. При его запуске на экране появляется окно, показанное на рисунке 5.

Рисунок 5 - Основное окно программы

В левой части окна представлен текст поставленной задачи. Имеется возможность изменить входные значения, такие как максимальная длина очереди в пункте А, время генерации пакетов, и т.д.

В правой части окна представлено описание процесса моделирования.

При нажатии кнопки «Моделировать» на экране появляется окно, показанное на рисунке 6.

В ходе работы программы в правой части окна можно наблюдать за степень загруженности буферов А и В соответственно, а также за количеством потерянных транзактов и изменение вероятности подключения резервной аппаратуры.

Рисунок 6 - Процесс моделирования

моделирование данный алгоритм

На рисунках 7 и 8 представлены результаты, полученные в ходе процесса моделирования при неизменных исходных входных данных.

Рисунок 7 - Результат моделирования (1).

Рисунок 8 - Результат моделирования (2).

.3 Сравнение результатов

Теперь выполним несколько прогонов полученных программ, написанных на GPSS и общесистемном языке программирования, и средние результаты занесём в таблицу 1 и сравним.

Вероятность запуска аппаратуры вычислим по формуле

                                               (1)

где К1 - количество транзактов, прошедших через резервную аппаратуру, а К - число пакетов, прошедших через систему.

Таблица 1 - Сравнение полученных результатов

Характеристика

Значение, полученное в программе


на GPSS

на Delphi

Количество пакетов, потерянных перед А

0

0

Число пакетов, прошедших через систему

500

500

Количество транзактов, прошедших через резервную аппаратуру

72

74

Вероятность использования резервной аппаратуры

0,144

0,148


Из данной таблицы видно, что результаты, выдаваемые обеими программами, близки друг к другу, следовательно составленные алгоритмы работают верно.

Следует заметить, что при данных входных величинах возможно переполнение буфера в пункте А и потеря пакетов, поэтому необходимо оптимизировать входные данные таким образом, чтобы все пакеты заходили в блок А.

При данных входных величинах наблюдается переполнение буфера в пункте В, поэтому необходимо оптимизировать входные данные таким образом, чтобы не было подключений резервной аппаратуры. Путём ряда запусков программ и экспериментального ввода различных значений в качестве входных данных, было установлено, что при установке значения емкости буфера в пункте В равным 27 пакетов, резервная аппаратура не подключается .

Таким образом, разработанный нами алгоритм моделирования исходной системы является работоспособным. Отличие результатов моделирования программ, написанных в GPSS и Borland Delphi, обусловлено неравномерностью распределение случайной величины.


Заключение

При разработке курсового проекта были рассмотрены основные определения и понятия моделирования систем, общие сведения о языке имитационного моделирования GPSS.

Кроме этого была спроектирована и реализована модель работы системы по передаче пакетов данных.

В ходе выполнения курсового проекта были разработаны 2 алгоритма реализации модели и на их основе написаны программы на языке имитационного моделирования GPSS и в среде объектно-ориентированного программирования Borland Delphi.

Результаты, выдаваемые обеими программами, несущественно различаются, что вызвано особенностями работы функции получения случайного числа в Borland Delphi.

Следует заметить, что решение поставленной задачи средствами GPSS занимает гораздо меньше времени, а следовательно может быть признано более оптимальным.


Список литературы

Аляев Ю.А., Козлов О.А. Алгоритмизация и языки программирования Pascal, C++, Visual Basic: учебно-справочное пособие. - М.: Финансы и статистика, 2004. - 320с.

Васильков Ю. В.. Компьютерные технологии вычислений в математическом моделировании М., «Финансы и статистика» 1999

Воробьев Э. И. Моделирование и анализ сложных систем: Учеб. пособие. Воронеж: Воронеж. гос. техн. ун-т, 2005. 118с.

Кормен Т., Лейзерсон Ч., Ривест Р Алгоритмы: построение и анализ. М., «МЦНМО», 1999.

Самарский А.А., Михайлов А.П. Математическое моделирование: Идеи. Методы. Примеры. - М: Наука, 1997. - 320 с. - ISBN 5-9221-0120-X.

Советов Б.Я., Яковлев С.А. Моделирование систем: Учеб. для вузов по спец. «Автоматизир. Системы обработки информ. и упр.». - 2-е изд., перераб. и доп.- М.: Высш. шк., 1998. - 319 с.: ил.

Советов Б.Я., Яковлев С.А. Моделирование систем: Курсовое проектирование: Учеб. пособие для вузов по спец. АСУ. - М.: Высш. шк., 1988. - 135 с.: ил.

Хомоненко А.Д. Гофман В.Э. Самоучитель Delphi. СПб: В-Петербург, 2005. - 576с.:ил.


Приложение А

(обязательное)

Листинг программы в GPSS

5 simulate

GENERATE 10,5,0,500

AB storage 20

BC storage 25

enter AB

Transfer .5,metAB1,metAB2

metAB1 seize AB1

ASSIGN 1,1

ADVANCE 20

RELEASE AB1

Transfer,metBC

90 metAB2 SEIZE AB2

leave AB   

ASSIGN 1,2       

ADVANCE 20,5

RELEASE AB2

130 metBC enter BC

SAVEVALUE SAV+,1

TEST L X$SAV,20,RezervBC       

test E p1,1,metBC2

152 seize BC1

leave BC

ADVANCE 25,3

savevalue countStandartMode+,1

SAVEVALUE SAV-,1

release BC1

terminate 1

210 metBC2 seize BC2

leave BC

ADVANCE 25

savevalue countStandartMode+,1

SAVEVALUE SAV-,1          

release BC2

terminate 1

260 RezervBC test E p1,1,metRBC2

seize RBC1

leave BC

ADVANCE 15

savevalue countRezervMode+,1     

SAVEVALUE SAV-,1

release RBC1

terminate 1

320 metRBC2 seize RBC2

leave BC

ADVANCE 15

savevalue countRezervMode+,1     

SAVEVALUE SAV-,1

release RBC2

terminate 1

390 start 500

clear

start 500

420 clear

start 500

clear

Приложение Б

(справочное)

Отчёты программы, реализованной с помощью GPSS

GPSS World Simulation Report - var4_2.151.2, May 30, 2011 03:56:09

TIME END TIME BLOCKS FACILITIES STORAGES

.000 5730.267 48 6 2

NAME VALUE 10000.00010004.00010006.00010001.00010010.00010012.00010015.00010011.0004.00010.00015.00026.00041.00010014.00010016.00033.00010007.00010017.000

LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY

GENERATE 500 0 0

ENTER 500 0 0

TRANSFER 500 0 04 SEIZE 257 0 0

LEAVE 257 0 0

ASSIGN 257 0 0

ADVANCE 257 0 0

RELEASE 257 0 0

TRANSFER 257 0 010 SEIZE 243 0 0

LEAVE 243 0 0

ASSIGN 243 0 0

ADVANCE 243 0 0

RELEASE 243 0 015 ENTER 500 0 0

SAVEVALUE 500 0 0

TEST 500 0 0

SEIZE 229 0 0

LEAVE 229 0 0

ADVANCE 229 0 0

SAVEVALUE 229 0 0

SAVEVALUE 229 0 0

RELEASE 229 0 0

TERMINATE 229 0 026 SEIZE 207 0 0

LEAVE 207 0 0

ADVANCE 207 0 0

SAVEVALUE 207 0 0

SAVEVALUE 207 0 0

RELEASE 207 0 0

TERMINATE 207 0 033 TEST 64 0 0

SEIZE 28 0 0

LEAVE 28 0 0

ADVANCE 28 0 0

SAVEVALUE 28 0 0

SAVEVALUE 28 0 0

RELEASE 28 0 0

TERMINATE 28 0 041 SEIZE 36 0 0

LEAVE 36 0 0

ADVANCE 36 0 0

SAVEVALUE 36 0 0

SAVEVALUE 36 0 0

RELEASE 36 0 0

TERMINATE 36 0 0

SAVEVALUE 0 0 0

FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY257 0.897 20.000 1 0 0 0 0 0243 0.853 20.118 1 0 0 0 0 0229 0.994 24.880 1 0 0 0 0 0207 0.903 25.000 1 0 0 0 0 028 0.073 15.000 1 0 0 0 0 036 0.094 15.000 1 0 0 0 0 0

STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY20 20 0 20 500 1 11.046 0.552 0 025 25 0 18 500 1 13.532 0.541 0 0

SAVEVALUE RETRY VALUE 0 0

COUNTSTANDARTMODE 0 436.000

COUNTREZERVMODE 0 64.000

Приложение В

(обязательное)

Листинг модуля с основным алгоритмом на общесистемном языке программирования

unit Unit1;

interface

uses, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, StdCtrls, Spin, Math, ComCtrls, Gauges;

MyThread = class(TThread)

{ Private declarations }Execute; override;PlusGauge1;MinusGauge1;PlusGauge2;MinusGauge2;UpdateLabels;;

TForm1 = class(TForm): TGroupBox;: TLabel;: TLabel;: TLabel;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TSpinEdit;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TSpinEdit;: TLabel;: TLabel;: TLabel;: TButton;: TButton;: TGroupBox;: TGauge;: TGauge;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;FormCreate(Sender: TObject);Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }: MyThread;

{ Public declarations };

var: TForm1;

{$R *.dfm}, VolumeA, VolumeB, LostTransacts, AB1, AB2, BC1, BC2, RBC1, RBC2, reserve, through_AB1_AB2: integer;_uses, AB2_uses, BC1_uses, BC2_uses, RBC1_uses, RBC2_uses, exit: boolean;

// + -PlusMinus (osnova,dopoln:integer):integer;, pp:integer;pp:=random(2);pp of

: itog:=osnova + random (dopoln+1);

:itog:=osnova - random (dopoln+1);;:=itog;;

procedure MyThread.PlusGauge1;:=tpNormal;.Gauge1.Progress:=Form1.Gauge1.Progress+1;;

MyThread.MinusGauge1;.Gauge1.Progress:=Form1.Gauge1.Progress-1;:=tpLower;;

MyThread.PlusGauge2;.Gauge2.Progress:=Form1.Gauge2.Progress+1;;

MyThread.MinusGauge2;.Gauge2.Progress:=Form1.Gauge2.Progress-1;;

MyThread.UpdateLabels;.Label43.Caption:=IntToStr(LostTransacts);.Label35.Caption:=IntToStr(through_AB1_AB2);.Label36.Caption:=IntToStr(reserve);.Label44.Caption:=FormatFloat('0.000', reserve/through_AB1_AB2);;

MyThread.Execute;_way: integer;:=true;VolumeA < StrToInt(Form1.SpinEdit3.Text) then(VolumeA);(PlusGauge1);:=PlusMinus(StrToInt(Form1.SpinEdit4.Text),StrToInt(Form1.SpinEdit5.Text));:=PlusMinus(StrToInt(Form1.SpinEdit6.Text),StrToInt(Form1.SpinEdit7.Text));AB1_uses and AB2_uses doend;Min(AB1,AB2)=AB1 thenAB1_uses=False then_uses:=True;(AB1);(VolumeA);_uses:=False;_way:=1;(through_AB1_AB2);_uses:=True;(AB2);(VolumeA);_uses:=False;_way:=2;(through_AB1_AB2);;AB2_uses=False then_uses:=True;(AB2);(VolumeA);_uses:=False;_way:=2;(through_AB1_AB2);_uses:=True;(AB1);(VolumeA);_uses:=False;_way:=1;(through_AB1_AB2);;;(MinusGauge1);:=15;:=15;(VolumeB < StrToInt(Form1.SpinEdit13.Text)) or (RBC1_uses or RBC1_uses) then:=PlusMinus(StrToInt(Form1.SpinEdit9.Text),StrToInt(Form1.SpinEdit10.Text));:=PlusMinus(StrToInt(Form1.SpinEdit11.Text),StrToInt(Form1.SpinEdit12.Text));(RBC1_uses or RBC1_uses) then:=15;:=15;;(VolumeB);:=tpLowest;(PlusGauge2);AB_way of

: beginBC1_uses do begin end;_uses:=True;(BC1);(VolumeB);_uses:=False;;

: beginBC2_uses do begin end;_uses:=True;(BC2);(VolumeB);_uses:=False;;;:=tpLowest;(MinusGauge2);:=tpLower;:=PlusMinus(StrToInt(Form1.SpinEdit14.Text),StrToInt(Form1.SpinEdit15.Text));:=PlusMinus(StrToInt(Form1.SpinEdit14.Text),StrToInt(Form1.SpinEdit15.Text));AB_way of

: beginRBC1_uses do begin end;_uses:=True;(RBC1);_uses:=False;(reserve);;

: beginRBC2_uses do begin end;_uses:=True;(RBC2);_uses:=False;(reserve);;;;(LostTransacts);;end;(UpdateLabels);;;

TForm1.FormCreate(Sender: TObject);:=0;:=0;:=0;:=0;:=0;_AB1_AB2:=0;_uses:=False;_uses:=False;_uses:=False;_uses:=False;_uses:=False;_uses:=False;:=False;.MaxValue:=SpinEdit3.Value;.MaxValue:=SpinEdit13.Value;;

TForm1.Button1Click(Sender: TObject);:=0;:=0;:=0;:=0;:=0;_AB1_AB2:=0;_uses:=False;_uses:=False;_uses:=False;_uses:=False;_uses:=False;_uses:=False;(transacts < 500) and (exit=False) do(transacts);(PlusMinus(StrToInt(SpinEdit1.Text),StrToInt(SpinEdit2.Text)));:=MyThread.Create(False);.Priority:=tpLower;.ProcessMessages;;;

TForm1.Button2Click(Sender: TObject);:=True;.Terminate;

end;

.

Похожие работы на - Модель системы передачи пакетов данных

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!