База вычислительных комплексов МВК 'Эльбрус'

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

База вычислительных комплексов МВК 'Эльбрус'

АННОТАЦИЯ

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

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

На основании необходимости усовершенствования подготовки специалистов, а также значительного снижения затрат на повышение уровня профессиональной подготовки личного состава, обеспечивающего функционирование и эксплуатацию вооружения Отдельной Армии РКО, разработана программа-эмулятор, в которой реализован один из методов тренировки личного состава в системах вооружения, построенных на базе вычислительных комплексов МВК «Эльбрус».

В настоящее время для разработки приложений под Windows широко используются визуальные системы программирования, такие как Visual Basic, Visual C++ и Delphi 5, которые в отличие от низкоуровневых языков программирования (assembler ) облегчают работу пользователя. Программа, разработанная в данной дипломной работе, реализована на ЭВМ типа IBM с использованием объектно - ориентированного языка высокого уровня Delphi 7.0.

Для успешного выполнения дипломной работы, необходим анализ развития современной военно-политической обстановки, анализ систем вооружения как потенциального противника, так и ОА РКО, а также определение задач и способов достижения цели. Все эти вопросы рассмотрены в первой главе дипломной работы.

Во второй главе определяется необходимая для разработки программы информация: о эмуляторах, о среде эмуляции, об операционной системе МВК «Эльбрус» и обзор существующих алгоритмов поиска и сортировки, используемых для обработки и управления потоками данных.

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

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

В заключении делается вывод о целесообразности внедрения данной программы-эмулятора в учебный процесс частей и подразделений РКО.

ВВЕДЕНИЕ

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

В настоящее время ведется активный поиск новых методов и средств повышения эффективности и снижение экономической затрат на процесс обучения и контроля.

Одним из перспективных направлений в этом плане является создание автоматизированных тренажеров на базе персональных электронно-вычислительных машин (ПЭВМ).

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

Это происходит за счет большой адаптации
(АТ) к индивидуальным особенностям обучаемых. Помимо
этого, применение АТ позволяет уменьшить время подготовки курсантов, в ходе обучения в ВУЗе, и позволяет значительно сократить расходы.

Применение АТ облегчает накопление передового учебно-методического опыта и создает условия для эффективной учебной работы в ВУЗе и в войсках.

 

1. ОПРЕДЕЛЕНИЕ ИНФОРМАЦИИ, НЕОБХОДИМОЙ ДЛЯ СОЗДАНИЯ ЭМУЛЯТОРА


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

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

выработка требований к системе;

разработка требований к программному обеспечению;

общее проектирование;

детальное проектирование;

создание отдельных модулей;

тестирование отдельных модулей системы;

объединение модулей в систему;

выпуск системы;

эксплуатация и сопровождение системы.

Подобное разделение на фазы иногда способствует затушевыванию некоторых важных аспектов создания программного обеспечения; особенно это проявляется по отношению к такому необходимому процессу, как итеративная реализация различных фаз жизненного цикла с целью исправления ошибок, изменения решении, которые оказались неправильными, или учета изменений в общих требованиях, предъявляемых к системе. Кроме того, имеет место некоторая путаница, когда этап эксплуатации и сопровождения системы считают «автономной» фазой жизненного цикла, тогда как на самом деле и в этот период может возникнуть необходимость повторения какого-либо одного или даже всех этапов разработки системы. Поэтому сейчас происходит постепенный переход к более сложным моделям жизненного цикла программного обеспечения. Это обеспечивает открытое признание итеративности процесса и часто приводит к толкованию фазы эксплуатации и сопровождения как просто итеративного этапа, который реализуется уже после передачи системы в эксплуатацию [18].

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

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

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

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

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

1.1 Общие сведения об эмуляторах


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

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

Согласно [19] эмулятор - средство отладки программных и аппаратных компонентов вычислительной системы. В отличие от симулятора, эмулятор замещает какой-либо фрагмент вычислительной системы (ОЗУ, ПЗУ и другие). Для работы с эмулятором требуется наличие инструментальной машины и целевой системы. Эмулятор предоставляет доступ к ресурсам целевой системы так, как будто это ресурсы инструментальной машины. В частности, есть возможность загружать и исполнять программы, устанавливать точки останова, просматривать содержимое регистров процессора и памяти, трассировать исполнение программы. В отличие от симулятора, эмулятор позволяет работать с реальным окружением целевой системы.

Однако при обращении к источнику [18], можно получить немного другое определение: эмулятор - это система, как правило, программа или микропрограмма, позволяющая осуществлять эмуляцию. Эмуляция - точное выполнение на некоторой ЭВМ программы, написанной для другой ЭВМ. В обоих случаях используются одинаковые входные данные, и на выходе получаются одинаковые результаты. Согласно формальному определению, эмуляция осуществляется на аппаратном уровне, обычно при помощи микропрограмм.

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

Симуляция - имитация поведения некоторых существующих или предполагаемых систем или некоторых аспектов этого поведения. Примерами областей применения симуляции является проектирование сетей связи, при котором оно используется для исследования общего поведения сети, структуры потоков, емкости каналов и другие. В более общем виде симуляция широко применяется как вспомогательное средство при проектировании и малых, и больших систем, а также используется при обучении персонала. В аспекте физической реализации различают симуляция дискретных событий и аналоговая симуляция. В случае дискретного моделирования необходимо иметь возможность охвата всех существенных изменений состояния системы, которые рассматриваются как различающиеся отдельные события, происходящие в определенные моменты временя; имитация желаемого поведения системы достигается моделированием последовательности таких событий, рассмотрением каждого из них в отдельности. В противоположность этому при аналоговом моделировании рассматриваются постепенно происходящие в течение некоторого периода времени изменения и отслеживается процесс этих постепенных изменений. Ясно, что выбор одного из двух этих вариантов в каждом конкретном случае осуществляется с учетом природы моделируемой системы и целей симуляции. Хотя разница между симуляцией и эмуляцией не всегда бывает, ясна, обычно - эмуляция является «реалистичной» в том смысле, что может использоваться как прямая замена всей моделируемой системы или ее части. Симуляция же может обеспечить не более чем абстрактную модель некоторых аспектов поведения системы. Симулятор - любая система или программа симуляции. Обычно это система, которая в течение определенного периода обеспечивает требуемую имитацию, в отличие, скажем, от случая, когда речь идет о выполнении моделирующей программы в ходе обычной работы универсальной вычислительной машины. В моделирующих устройствах часто используются либо специально созданные аппаратные средства, либо компоненты аппаратных средств, взятые из системы, поведение которой симулируется [18].

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

Несмотря на то, что в настоящее время разработано и реализовано много эмуляторов, как крупными исследовательскими компаниями, так и частными лицами, практически не существует программ данного типа, которые бы использовались в войсках РКО. Поэтому, создание эмулятора диалога пользователя с операционной системой МВК «Эльбрус» для войск РКО, не только необходимо, но и логически закономерно.

1.2 Общие сведения об операционной системе МВК «Эльбрус»


Операционная система в наибольшей степени определяет облик всей вычислительной системы в целом. Довольно затруднительно дать определение операционной системе. Частично это связано с тем, что ОС выполняет две по существу мало связанные функции: обеспечение пользователю-программисту удобств посредством предоставления для него расширенной машины и повышение эффективности использования компьютера путем рационального управления его ресурсами.

Операционная система - комплект программных изделий, которые совместно управляют ресурсами системы и процессами, использующими эти ресурсы при вычислениях [18 ].

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

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

1.2.1 Основные понятия

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

Нормальное функционирование МВК невозможно без ОС.

Основная функция ОС, это управление аппаратными ресурсами и программными объектами.

К ним относятся:

-     динамическое распределение ресурсов;

-        организация и планирование задач;

         организация и управление процессами и виртуальной памятью;

         управление вводом - выводом, организация работы с внешними объектами;

         восстановление вычислит. процесса;

         обработка прерываний;

         динамическая диагностика;

         обеспечение режимов РВ и Пакетного режима;

         управление системой телеобработки;

         регистрации и администрирование.

Для функционирования ОС необходимо следующая минимальная комплектация:

-     ЦП - 1 шт.

-        ПВВ - 1 шт.

         ИПЦП - 1 шт.

         Секция ОП (4 модуля) - 1 шт

         МБ - 2 шт.

         АЦД - 1 шт.

         АЦПУ - 1 шт.

Структурно ОС состоит из глобальных описаний и набора процедур. Процедуры ОС разделяются на резидентные и нерезидентные. Резидентные коды процедур образуют ядро ОС и постоянно присутствуют в ОП МВК. Нерезидентные коды загружаются в ОП по мере необходимости. Коды резидентных процедур размещаются в память в процессе инициализации системы.

1.2.2 Типы инициализаций

В МВК существует несколько типов инициализации, которые отличаются друг от друга по характеру восстановления информации на системном МБ.

На системном МБ расположены:

файл заголовков и файл справочников МБ контейнера;

средство учета пользователей (системное досье), (ФУП - файл учета пользователей);

файлы системного журнала;

файлы паспортов (во время исполнения);

сегмент перезапуска с информацией о конфигурации устройств, ссылке на файлы заголовков и справочников;

программные сегменты ОС.

Существуют следующие виды инициализации:

) Перезапуск системы.

Информация на МБ считается правильной и не восстанавливается, происходит открытие (создание) системных файлов.

) Холодная загрузка (ХЛЗ).

Информация на МБ отсутствует. Восстановление информации происходит с использованием системных МД или МЛ контейнеров, на которых с известных адресов находится сегмент перезапуска и коды ОС.

Повторные «ХЛЗ», когда на МБ уже есть эта информация, производятся без внесения информации о конфигурации.

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

) Перезапуск с частичным восстановлением или заменой элементов на системном МБ.

1.2.3 Организация работ при инициализации

Существуют следующие режимы запуска:

1.     Создание (РС).

2.       Открытие (РО).

.        Ремонта (РР).

При запуске ОСПО в режиме РС создается системный архив на МБ.

Режим РО - основной режим работы ОСПО, обеспечивается сохранение системного архива, а также восстановление решаемых задач, после сбоев МВК и перезапусков ОСПО.

Режим РР - ремонт и восстановление системного архива. Перевод ОСПО в режим ремонта осуществляется автоматически, если после сбоев МВК требуется вмешательство оператора для восстановления системного архива, или с помощью приказа «СТАРТ РЕМОНТ».

Управление режимами с пульта оператора системы или ИПЦП через массив УПИП (устройство памяти инженерного пульта).

Инициализация по приказу оператора происходит следующим образом (Рис. 1.1.)

Рисунок 1.1 Инициализация по приказу оператора

1.2.4 Загрузка ОС и перезапуск

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

Загрузчик в соответствии с таблицами загрузки осуществляет:

1.   Подкачку с ВУ в ОЗУ.

2.       Коррекцию адресов.

.        Формирование линков.

.        Передача управления.

В режиме «холодная загрузка» осуществляется перекачка с МД или МЛ на задаваемый системный МБ. При нажатии кнопки «пуск С», ПВВ считывает информацию с «0» - сектора системного МД, где расположен сегмент перезапуска, в начало ОЗУ и прерывает ЦП (по номеру). ЦП по прерыванию начинает выполнять код, расположенный в начале ОЗУ.

Этот код после анализа массива БИП запускает программу холодная загрузка, затем осуществляется выход на системный АЦД - для задания карты конфигурации, и системного барабана. Далее происходит пересылка сегмента перезапуска, кода ОС и основных системных файлов на системный МБ, на этом ХЛЗ заканчивается.

1.2.5 Универсальный язык управления

Универсальный язык управления - язык, реализованный на основе Эль-76, предназначенный для организации диалога пользователя с операционной системой МВК «Эльбрус».

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

Приказы работающие с математическим пространством - пользовательские.

Приказы системного оператора разделяются на:

общесистемные;

управление задачами;

управление планированием;

управление файлами;

управление устройствами.

В системе МВК ‘Эльбрус” у терминалов имеется два режима работы, пользовательский и операторский. Отличие режимов заключается в доступности приказов, выполняемых с терминала. Управление осуществляется с помощью диалогового языка, в этом языке часть приказов может выполняться только с терминала системного оператора.

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

АКТ - терминал начинает работать в активном режиме.

ПРИГЛ - работа с приглашением

ПРЗ: ОПЕР - операторский терминал

ПАКЕТ - устройство ввода пакета

ПЛ - терминал пользователя

Для объявления пользовательского терминала операторским используется приказ

ПРЗ < Nуст > ОПЕР

Он выполняется с операторского терминала (процедура знакомства).

Приказы управления устройствами предназначены для формирования конфигураций внешнего поля МВК «Эльбрус». Поскольку управление конфигурацией является сугубо прерогативой оператора системы, то данные приказы выполняются только с системного терминала.

Внешние устройства могут находиться в одном из двух состояний: «Ремонт» и «Исправно».

Состояние «Ремонт» равносильно автономному выключению устройства.

Для состояния «Исправно» могут быть следующие режимы использования «Резерв», «Работы», «Готов», «Не готов».

 

1.3 Язык стандартного диалога МВК «Эльбрус»


Диалоговый режим является основным при работе программиста на МВК "Эльбрус". Работа в диалоге осуществляется на командном языке стандартного диалога - расширении языка Эль-76 либо на командном языке той диалоговой программы, которую использует программист.

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

1.3.1 Классификация терминалов

В системе "Эльбрус" терминалы подразделяются на операторские и пользовательские. С операторского терминала можно выполнять более широкий набор директив. Иногда (например, для установки носителей на устройства) его использование необходимо (оно осуществляется оператором системы). Однако работа на нем менее удобна, чем на пользовательском терминале, так как на операторский терминал часто выдаются различные сообщения системы. На операторском терминале основным режимом работы является режим «по активности», при котором перед набором очередной директивы требуется нажать клавишу «ввод». На пользовательском терминале основной режим - «по приглашению» (стандартное приглашение системы - « > » ).

Пользовательский терминал может быть превращен в операторский приказом оператора:

ПРЗ ПП ОПЕР

где ПП - номер терминала. Директива оператора ПРЗ ПП ПОЛ превращает операторский терминал в пользовательский. В дальнейшем будет идти речь в основном о пользовательских терминалах.

 

1.3.2 Вход в диалог

Для входа в диалог следует включить терминал и нажать клавишу «ВВОД». Система выдает запрос:

ВАШЕ ИМЯ!

Следует набрать ваше имя пользователя, зарегистрированное администратором системы. Если программист его не имеет, рекомендуется воспользоваться стандартным именем «СТАНДПОЛ». Дополнительно система может запросить пароль, если он установлен данным пользователем.

После правильного указания имени и пароля пользователя система выдает приглашение « > » - признак готовности к выполнению очередной директивы.

1.3.3 Установка контекста

Работа в диалоге происходит всегда в некотором текущем контексте, который задается внешним именем справочника в директиве КН (контекст), например:

КН КСН//ЛГУ

Здесь КСН//ЛГУ - имя базового справочника контейнера на диске. По умолчанию система устанавливает контекст пользователя, хранящийся в его досье, а если он не был установлен - стандартный контекст ГЛОБАРХ. Работа может вестись и без контекста, если он не установлен при создании досье. Справочник текущего контекста имеет в языке диалога стандартное имя - КН.

Директива КН (без параметров) выдает текущий контекст на терминал в форме:

ВАШ КОНТЕКСТ КСН//ЛГУ

1.3.4 Создание и удаление файлов и справочников

Создание файла в заданном текущем контексте выполняется директивой:

СОЗ Ф

где ф - имя нового файла в справочнике текущего контекста. Файл создается в том же контейнере, в котором находится справочник, и ссылка на него записывается в справочник под указанным именем. При создании файла могут быть заданы атрибуты. Например, если известно, что размер файла будет заведомо небольшим, рекомендуется при создании файла указать малое значение атрибута ДЛИНЛИСТА:

СОЗ Ф [ДЛИНЛИСТА: 8]

Созданный файл в примере получает внешнее имя КСН//ЛГУ//Ф. По умолчанию тип файла - произвольный текст, длина листа - 32 сектора. Новый справочник создается директивой ССП, например:

ССП ИВАНОВ

После создания личного справочника рекомендуется установить его контекст:

КН КСН//ЛГУ//ИВАНОВ

и в дальнейшем работать в этом контексте.

Удобна также следующая форма директивы СОЗ, создающая новую ссылку на уже существующий объект, например, из другого справочника:

КН КСН//ПАСКАЛЬ//ТЕСТЫ СОЗ КОД = КСН//ПАСКАЛЬ//КОД

Для удаления ссылки на файл или справочник //Ф служит директива:

УДА //Ф

Если на объект была только одна ссылка, то вместе с ней удаляется и сам объект, иначе - только ссылка (элемент справочника). При удалении справочника выдается предупреждающее сообщение (ответом должна быть пустая посылка).

 

1.3.5 Контроль и перепись файлов

В начале работы рекомендуется убедиться в исправности носителя и корректности информации. Директива КТФ, например

КТФ КСН//ЛГУ//ИВАНОВ

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

Перепись файла //Ф1 и файл //Ф2 выполняется директивой:

ПС //Ф1 //Ф2

Если файла //Ф2 еще нет, то он создается. Если файл //Ф2 уже существует, то его содержимое заменяется содержимым файла //Ф1. Если //С1 и //С2 - справочники, то директива

ПС //С1 //С2

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

1.3.6 Распечатка файлов и справочников

Распечатка файлов и справочников выполняется директивой

ПЕЧ //Ф

где //Ф - внешнее имя файла или справочника. Текстовые файлы печатаются постранично; для справочников печатаются имена файлов и их основные атрибуты. Если //ф - файл объектного кода программы, то печатается оглавление программы - имена всех процедур, их уровни, номера сегментов и диапазоны строк в исходном тексте.

1.3.7 Редакция текстовых файлов

Редакция текстовых файлов. В системе имеется экранный редактор, вход в который осуществляется директивой

РЕД //Ф

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

Таблица 1.1 Набор директив экранного редактора

Имя директивы

Действие

Л

Просмотр от начала к концу

_ (Подчеркивание)

Просмотр от конца к началу

- (Минус)

Сдвиг вверх на размер экрана

+

Сдвиг вниз на размер экрана

Сдвиг вверх на одну строку

Сдвиг вниз на одну строку

В

Ввод новых строк после текущей строки

С

Стирание текущей строки

Р

Раздвижка текущей строки (вставка под курсор пробела)

У

Удаление символа под курсором

З

Запоминание текущей строки

Д

Дублирование запомненной строки после текущей

Э

Переход в диалоговый редактор

/Символы/

Поиск заданной последовательности символов

К

Конец редакции


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

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

Разрешается запоминать директивой З одну или несколько строк и затем дублировать их после текущей строки. При этом строки запоминаются в порядке выполнения директивы З и на старом месте сохраняются.

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

Диалоговый редактор применяется для построчного и контекстного редактирования. Вход в него осуществляется директивой PEД //Ф и выполнением директивы Э в экранном редакторе.

Приглашение диалогового редактора - символ «:». В директивах редактора принято опускать младшие нули номеров строк (например, 00125 вместо 00125000).

Замена и стирание контекста. Директива З, например

З 013-014,0256, 035 - /номер/ном/:

заменяет в строках из указанных диапазонов заданные последовательности символов (в примере - последовательность символов "номер" на последовательности символов "ном"). Запись 035 означает замену во всех строках от указанной до конца файла. Двоеточие задает режим замены всех вхождений, его отсутствие - замену только первого вхождения в каждую строку, конструкция Т : П (например, 1 : 2) вместо двоеточия - замену не более чем П вхождений начиная с Т-го.

Стирание контекста осуществляется директивой С, например:

С013-014,0256,035- /номер/:

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

Вставка, сдвиг и стирание строк. Последовательность

В 00005+10/

< вставляемый фрагмент >

вставляет указанный фрагмент (последовательность строк) начиная со строки 00005, с шагом нумерации 10. Разделитель / может быть заменен другим символом, например \ или ! Набор разделителя /, заданного в директиве вставки в первой позиции очередной строки (после номера, выдаваемого в качестве приглашения), является признаком конца ввода. Вариант этой же директивы

В Ф1 311-321 С 00005+1

выполняет вставку строк файла Ф1 с номерами из диапазона 311-321 в редактируемый файл. Имя Ф1 берется из текущего контекста кн. Если имя Ф1 не задано, выполняется дублирование строк из текущего файла. Сдвиг строк на новое место (с их удалением на старом месте):

СДВ 311-321 С 00005+1

На новом месте строки получают номера от 00005 с шагом 1 (если в файле уже имеются строки с такими номерами, то выдается сообщение об ошибке, и директива не выполняется).

Стирание строк:

С 311-321

Перенумерация строк из диапазона 012-013 от номера 05 с шагом 100:

НУМ 012-013 ОТ 05+100

Если диапазон опущен, перенумеровывается весь файл. Если при перенумерации порядок номеров в файле нарушается, это считается ошибкой.

Поиск и замена. Поиск контекста выполняется директивой и, например:

П 01-02/Р(/

В данном примере на экран при каждой пустой посылке выдается очередная строка, содержащая вызов процедуры Р. Если необходимо во всех вызовах процедуры Р заменить параметр-значение Х на параметр-имя, то следует воспользоваться директивой «поиск с заменой»:

ПЗ 01-02 1Р (/X/_ИМЯ X/:

Замена и стирание позиций в строке. Пусть требуется убрать номера строк в позициях 72-80 каждой строке (такая задача часто возникает при переносе файлов с ЕС ЭВМ). Для этого служит следующий вариант директивы С:

С 0- К 72-80

Замена номеров строк на пробел выполняется директивой З:

З 0- К 72-80 //

Вставка и замена одной строки. Неявная директива:

_все

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

Вывод файла на терминал. Директива:

Л 001

выводит содержимое файла на терминал начиная с указанной строки. Выводится новое содержимое файла; вставленные строки помечаются звездочками.

Переход в экранный редактор, как и переход из экранного в диалоговый, выполняется директивой Э.

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

РЕД //Ф


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

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

Для переписи результата редакции в исходный файл (сохранения файла) необходимо выполнить директиву СОХ, для переписи его в другой файл (//Ф1) - директиву СОХ Ф1.

Другие формы вызова редактора:

РЕД //Ф, //Ф1 - редакция с автоматической записью результата в файл

//Ф1;

РЕД //Ф, //Ф1, //ФРЕД - редакция под управлением файла директив //ФРЕД (рекомендуется при больших редакциях). //ФРЕД - обычный текстовый файл, который, в свою очередь, может быть получен в результате работы редактора.

1.3.8 Трансляция

Транслятор Эль-76 - это процедура - функция с 6-ю параметрами:

АВТОКОД (ТЕКСТ, ВТОР, КОД, РФОК, БИБ, ЕЛ)

где ТЕКСТ - файл исходного текста; ВТОР - вторичный источник (дополнительный файл неявной редакции текста, строки которого транслируются вместо строк исходного текста с совпадающими номерами); КОД - файл для объектного кода; РФОК - контейнер для записи дополнения к файлу объектного кода; БИБ - справочник имен библиотечных карт; ЕЛ - файл для генерации файла ссылок, по которому выполняется распечатка словаря идентификаторов. Обязательны первые три параметра; по умолчанию ВТОР = 0. Результат - число ошибок в программе.

Ключевая форма запуска транслятора в диалоге имеет вид

ТР//ТЕКСТ И2 //ВТОР К//КОД> КСН//РФОК (//БИБ) ЕЛ//ЕЛ

где ключ И2 задает вторичный источник (//ВТОР), ключ К - файл объектного кода, ключ > - контейнер для записи ДФОК; в скобках указан справочник для библиотечных карт; ключ ЕЛ задает файл ссылок.

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

Например

. ТР //ТЕКСТ К //КОД

трансляция заданного текста в заданный файл кода. По умолчанию ДФОК создается в одном контейнере с кодом; справочник библиотечных имен - текущий контекст (КН); И2 = 0. Если при трансляции обнаружены ошибки, на терминал выдается предупреждающее сообщение (диагностика ошибок выводится в файл виртуального вывода).

. ТР //ТЕКСТ СИНТ

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

. ТР //ТЕКСТ К РАБ

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

. ТР Э К // КОД

трансляция текста, вводимого с терминала. Система выдает запрос "Вводите текст на Эль-76" и приглашение - пробел. Текст вводится до логического конца программы - последней закрывающей скобки. Для вывода сообщений транслятора на терминал рекомендуется перед текстом программы набрать следующий прагмат:

Управление трансляцией производится с, помощью прагматов, вставляемых в транслируемый текст. Прагмат задается отдельной строкой текста и начинается символом "¤". Существуют следующие прагматы:

.        ¤ УСТ Л К А СИ ¤

включение различных режимов распечатки: Л - исходного текста, К - объектного кода, А - адресных пар (относительных адресов) локальных переменных, СИ - информации о сегментации программы, ¤ - управляющих карт. Отключение режима Л выполняется управляющей картой:

¤УСТ0 Л (аналогично - других режимов).

. ¤ БИБ //Ф

библиотечная карта: переключение на трансляцию текста из файла //Ф, по окончании которого продолжается трансляция исходного текста. Внешнее имя //Ф понимается в контексте, который задается в директиве тр в виде имени справочника в скобках. По умолчанию подразумевается текущий контекст. Возможна и более полная форма внешнего имени, например:

¤ БИБ КСН//ПАСКАЛЬ//ИНТЕРКОД//ТЕКСТКВК

. ¤ УСТ0 КНТРПРХД УСТ КОРМАСС

отключение контроля локальных переходов из выражений (подавление лишней диагностики) и установка режима оптимальной трансляции операции длина (при условии, что длина всех массивов не превосходит 216 - 1).

Перетрансляция. Если длина программы велика (несколько тысяч строк и более), рекомендуется при исправлении локальных ошибок в процедурах выполнять не полную трансляцию программы, а перетрасляцию исправленных процедур. Допустим, что тексты процедур монитор и сервис, в которые внесены локальные изменения, находятся соответственно в файлах //ГЛОБ и //СЕРВ, а объектный код всей программы - в файле //КОД. Для перетрансляции и замены объектного кода процедур монитор и сервис необходимо выполнить следующие директивы:

ТР Э И2 //КОД

(выдается приглашение для ввода текста с терминала)

¤VT

ПТРЭ МОНИТОР ://ГЛОБ, СЕРВИС://СЕРВ!

В результате на терминал будет выдана служебная информация о ходе перетрансляции и сообщение о ее завершении. Элементы задания на перетрансляцию (имена процедур и файлов) разделяются запятыми; признак конца задания - символ "!" - обязателен.

Трансляция с других языков. Для запуска других компиляторов, соблюдающих соглашение о порядке и смысле параметров, описанное выше, предусмотрена следующая форма директивы ТР:

ТР //ТЕКСТ К //КОД ://ТРАНС,

где //ТРАНС - имя кода транслятора.

1.3.9 Работа с файлом виртуального вывода

Файл виртуального вывода задачи имеет в диалоге стандартное имя АЦПУ. Содержимое файла (протоколы работы системных программ и результаты счета) выводятся на терминал директивой

Л АЦПУ

Пустая посылка в ответ на приглашение "?" - продолжение выдачи на терминал, другой ответ - окончание. В директиве можно указывать номер начальной строки:

Л АЦПУ 00005-

Директива:

ПЕЧ АЦПУ

печатает на АЦПУ и стирает содержимое файла виртуального вывода. Директива:

УДА АЦПУ

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

1.3.10 Запуск программ на исполнение

Запуск программ на исполнение осуществляется директивой

ИСП//КОД или ИСП//КОД (А1,.. . ,Ak)

где // код - ссылка на файл объектного кода, Аi - фактические параметры программы. В качестве фактических параметров разрешены:

константы, например: 0, "авс", пусто64, 3.14, стр8 "сообщение";

внешние имена, например: //Т, КСН//ПАСКАЛЬ//ДАННЫЕ;

стандартные имена, например: КН, Э, МОЙТЕРМ

Стандартное имя Э (МОЙТЕРМ) обозначает терминальный файл задачи и служит для передачи его в качестве параметра диалоговым программам.

Программа запускается как независимый процесс. Номер процесса в форме : ПП выдается в системном сообщении о запуске процесса.

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

При динамической ошибке в программе на терминал выдается диагностика динамической ошибки в терминах исходного текста. Система динамической диагностики имеет различные режимы выдачи символьной распечатки стека на терминал. Для управления ее работой система выдает приглашение "?". Рекомендуется в ответ набрать следующие режимы:

Т ТТ ПЕЧ

где Т - распечатка фрагмента исходного текста, вызвавшего прерывание, с пометкой ошибочной строки; ТТ - мнемоническая распечатка кода, близкая к исходному тексту (для уточнения места ошибки в строке); ПЕЧ - выдача информации в файл виртуального вывода. Будут распечатаны имена и номера строк вызванных процедур, имена и значения их локальных данных, а также операнды выражения, вычисление которого из-за прерывания не было завершено. Эта информация, как правило, дает возможность быстро обнаружить ошибку. На повторное приглашение "?" следует ответить "К" (конец диагностики). Другие режимы системы динамической диагностики можно узнать, если в ответ на приглашение "?" набрать директиву "И" (информация).

1.3.11 Управление процессами

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

Директива

Ост :ПП

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

Л :ПП

Вновь активизировать процесс :ПП позволяет директива

АК :ПП

Такая последовательность директив рекомендуется при подозрении на зацикливание программы. Директива

УДА : ПП

уничтожает процесс :ПИ (при этом выдается символьная распечатка его стека).

1.3.12 Информационные директивы

Информация о состоянии задачи, имеющихся в ней процессах, времени их счета или причине приостановки выдается по директиве

СЗ

Краткую информацию о состоянии всех задач в системе можно получить по директиве

С

Информацию обо всех активных задачах (исполняемых в данный момент) - по директиве

А

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

Директива

КСН

выдает на терминал информацию об установленных в данный момент контейнерах на дисках и лентах.

1.3.13 Запись дискового контейнера на ленту и восстановление его с ленты

Директива

ПС КСН//ПАСКАЛЬ МЛ [ЭТАЛОН]

записывает содержимое указанного контейнера на диске (КСН//ПАСКАЛЬ) в контейнер на ленте с указанным именем ("ЭТАЛОН"). При выполнении директивы выдается трассировка в файл виртуального вывода. Обратная операция - восстановление дискового контейнера с ленты - выполняется директивой

ПС МЛ [ЭТАЛОН] КСН//ПАСКАЛЬ

1.3.14 Выход из диалога

Выход из диалога осуществляется директивой

ВЫХ

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

1.3.15 Некоторые директивы оператора

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

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

АУ ПП

(АУ - активизация устройства). При этом выдается сообщение об установке на устройство Пп контейнера с соответствующим именем.

Разметка дисков и лент. Разметка диска производится директивой

РАЗМ ПП РАЗЫ КОНТ И ПОЛ П УН Н,

где ПП - номер устройства, РАЗМ - ключ, означающий полную разметку, И - имя нового контейнера, П - имя пользователя, Н - уникальный регистрационный номер. В случае разметки уже размеченного диска выдается предупреждение.

Для смены атрибута контейнера (например, имени пользователя) применяется форма той же директивы без ключа РАЗМ:

РАЗМ ПП ПОЛ ИВАНОВ

Для разметки ленты служит та же директива:

РАЗМ ПП РАЗМ КОНТ ИМЯ

Демонтирование контейнера. При снятии контейнера с устройства рекомендуется выполнить директиву ДМК:

ДМК КСН//ПАСКАЛЬ,

где КСН//ПАСКАЛЬ - внешнее имя контейнера.

Удаление задач и с номером к (например, при блокировке терминала) можно выполнить директивой


С операторского терминала можно удалять таким способом любой процесс любой задачи, например:

УДА 2:5

удаление процесса 5 задачи 2.

Управление печатью. После выключения АЦПУ в момент выдачи для ее удаления следует выполнить директиву

УДА ПУ ПП

(ПП - номер печатающего устройства).

1.3.16 Ошибочные ситуации при диалоге

Работа в диалоге может прерываться ввиду ошибочных действий программиста, либо сбойных ситуаций в аппаратуре и ОСПО МВК.

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

Рассмотрим характерные для МВК аварийные ситуации и порядок действий программиста при выходе из них.

. На экране терминала вместо символа приглашения « > » появляется символ « ! ». Для выхода из этой ситуации необходимо набрать директиву

СЗ

На экране появится ответное сообщение системы:

СТЕК 3 ЖДЕТ

Ждущий стек необходимо удалить используя директиву

УДА :3

Успешное выполнение данных директив позволяет программисту вернуться в режим диалога. На экране появится символ приглашения « >».

. На экране имеется сообщение:

ОШИБКА!!!

НЕПРАВИЛЬНО ЗАДАНО ИМЯ ПРИКАЗА

Оператор ввел неправильное имя приказа. Для локализации данной ситуации необходимо нажать клавишу «ВВОД» и дождаться появления на экране символа «!».

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

1.4 Краткий обзор существующих алгоритмов поиска и сортировки


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

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

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

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

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

При сравнении различных алгоритмов важно понимать, как сложность алгоритма соотносится со сложностью решаемой задачи. При расчетах по одному алгоритму сортировка тысячи чисел может занять 1 секунду, а сортировка миллиона - 10 секунд, в то время как расчеты по другому алгоритму могут потребовать 2 и 5 секунд соответственно. В этом случае нельзя однозначно сказать, какая из двух программ лучше - это будет зависеть от исходных данных.

1.4.1 Алгоритмы поиска

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

Линейный поиск

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

Поиск делением пополам (двоичный поиск).

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

Основная идея - выбрать случайно некоторый элемент, предположим А и сравнить его с аргументом поиска Х. Если он равен Х, то поиск заканчивается, если он больше Х, то мы заключаем, что все элементы с индексами, меньшими или равными Х, можно исключить из дальнейшего поиска; если же он меньше Х, то исключаются индексы больше и равные.

Прямой поиск строки

Часто приходится сталкиваться со специфическим поиском, так называемым поиском строки. Его можно определить следующим образом. Пусть задан массив s из N элементов и массив р из М элементов, причем 0 < М < N.

Поиск строки обнаруживает непосредственно первое вхождение р в s.

Этот алгоритм работает достаточно эффективно, если допустить, что несовпадение пары символов происходит по крайней мере после всего лишь нескольких сравнений во внутреннем цикле. Можно предполагать, что для текстов, составленных из 128 символов, несовпадение будет обнаруживаться после одной или двух проверок. Тем не менее, в худшем случае, производительность будет внушать опасение.

Поиск в строке. Алгоритм Кнута, Морриса и Пратта.

Приблизительно в 1970 г. Д. Кнут, Дж. Моррис и В. Пратт изобрели алгоритм (КМП - алгоритм), фактически требующий только N сравнений даже в самом плохом случае. Новый алгоритм основывается на том соображении, что, начиная каждый раз сравнение образа с самого начала, необходимо уничтожать ценную информацию. После частичного совпадения начальной части образа с соответствующими символами строки фактически становится известной пройденная часть строки и можно "вычислить'' некоторые сведения (на основе самого образа), с помощью которых потом быстро осуществлять продвижение по тексту. При каждом несовпадении двух символов образ сдвигается на все пройденное расстояние, поскольку меньшие сдвиги не могут привести к полному совпадению.

В работе его изобретатели доказывают, что требуется порядка М + N сравнений символов, что значительно лучше, чем М * N сравнений из прямого поиска. Они также отмечают то приятное свойство, что указатель сканирования никогда не возвращается назад, в то время как при прямом поиске после несовпадения просмотр всегда начинается с первого символа образа и поэтому может включать символы, которые ранее уже просматривались.

Алгоритм поиска Р. Боуера и Д. Мура.

Выигрыш от использования КМП-стратегии в большинстве случаев поиска в обычных текстах весьма незначителен.

Метод Р. Боуера и Д. Мура не только улучшает обработку самого плохого случая, но и дает выигрыш в промежуточных ситуациях.

Алгоритм основывается на необычном соображении - сравнение символов начинается с конца образа, а не с начала. Как и в случае KMII-поиска, образ перед фактическим поиском трансформируется в некоторую таблицу. Пусть для каждого символа х из алфавита dx - расстояние от самого правого в образе вхождения х до его конца. Представим себе, что обнаружено расхождение между образом и строкой. В этом случае образ сразу же можно сдвинуть вправо на несколько позиций, т. е. на число позиций, скорее всего большее единицы. Если нахождение элемента поиска в образе вообще не встречается, то сдвиг становится даже больше, а именно сдвигать, можно на длину всего образа.

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

1.4.2 Алгоритмы сортировки

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

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

Сортировка с помощью прямого выбора

Этот алгоритм основан на следующих принципах:

Выбирается элемент с наименьшим ключом. Он меняется местами с первым элементом А1. Затем этот процесс повторяется с оставшимися n-1 элементами, n - 2 элементами и так далее до тех пор, пока не останется один, самый большой элемент.

Число сравнений ключей (С), очевидно, не зависит от начального порядка ключей. Для С имеем: число перестановок минимально в случае изначально упорядоченных ключей и максимально, если первоначально ключи располагались в обратном порядке.

Сортировка с помощью прямого обмена (метод пузырьковой сортировки)

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

Очевидный прием улучшения этого алгоритма - запоминать, были или не были перестановки в процессе некоторого прохода. Если в последнем проходе перестановок не было, то алгоритм можно заканчивать. Это улучшение, однако, можно опять же улучшить, если запоминать не только сам факт, что обмен имел место, но и положение (индекс) последнего обмена. Ясно, что все нары соседних элементов выше этого индекса k уже находятся в желаемом порядке. Поэтому просмотры можно заканчивать на этом индексе, а не идти до заранее определенного нижнего предела.

Сортировка с помощью включений с уменьшающимися расстояниями

В 1959г. Д. Шеллом было предложен следующий алгоритм сортировки.

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

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

Ясно, что такой метод в результате дает упорядоченный массив, и, конечно же, сразу видно, что каждый проход от предыдущих только выигрывает (так как каждая i - сортировка объединяет две группы, уже отсортированные j - сортировкой). Также очевидно, что расстояния в группах можно уменьшать по-разному, лишь бы последнее было единичным, ведь в самом плохом случае последний проход и сделает всю работу. Однако совсем не очевидно, что такой прием "уменьшающихся расстояний" может дать лучшие результаты, если расстояния не будут степенями двойки.

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

Но нот удивительный факт: они не должны быть множителями один другого.

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

Сортировка с помощью разделения

Производительность данного алгоритма столь впечатляюща, что изобретатель Ч. Хоар даже назвал метод быстрой сортировкой (QuickSort). Данный алгоритм является самым быстрым алгоритмом сортировки массивов.

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

Число же обменов можно определить из следующих вероятностных соображений. При заданной границе значений х ожидаемое число операций обмена равно числу элементов в левой части разделяемой последовательности, то есть, n-1 умноженному на вероятность того, что при обмене каждый такой элемент попадает на свое место. Обмен происходит, если этот элемент перед этим находился в правой часта. Вероятность этого равна (n -(х-1))/n. Поэтому ожидаемое число обменов есть среднее этих ожидаемых значений для всех возможных границ x.

Выводы по главе


Подведем краткие выводы по данной главе:

установлено, что для разработки программного обеспечения первым шагом является поиск необходимой информации;

была рассмотрена информация об эмуляторах и предъявлены основные требования к ним;

осуществлен необходимый подбор информации о диалоге пользователя с ОС МВК «Эльбрус» и его характеристиках;

рассмотрены и проанализированы основные алгоритмы поиска и сортировки.

Рассмотренная информация определила следующий шаг к моделированию алгоритма и написанию программы.

алгоритм эмулятор боевой дежурство

2. РАЗРАБОТКА ПРОГРАММЫ


2.1 Выработка требований к программе


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

Психолого-педагогическими требованиями к АТ являются:

. Формирование мотивации и интереса у обучаемых;

. Установление педагогически оправданного диалога с ЭВМ;

. Активизация познавательной деятельности каждого обучаемого;

. Организация оперативного и текущего контроля результатов обучения с последующей коррекцией;

. Выявление эффективных путей формирования и развития творческих способностей обучаемых;

. Установление оптимальных пропорций между автоматизированным и традиционным обучением.

Методика автоматизированного обучения предъявляет к АТ следующие требования:

. Организация индивидуального обучения;

. Развитие творческой и познавательной деятельности обучаемых;

. Гибкое изменение в соответствии с уровнем знаний обучаемого и его состоянием;

. Наличие широкого диапазона средств диалога обучаемого с ЭВМ;

. Наличие средств машинной графики индивидуального и коллективного пользования;

. Простота, доступность, надежность, дешевизна средств автоматизированного обучения;

. Возможность оперативной перекомпоновки АСК.

При этом выдвигается ряд конкретных требований к аппаратурно программным средствам АТ, а именно:

обеспечение возможности одновременного доступа многих пользователей к средствам электронно-вычислительной техники;

обеспечение независимой работы пользователей в различных режимах эксплуатации;

удовлетворение требований по времени ответа на запросы пользователей;

разграничение доступа к информации пользователей и защита информации от несанкционированного использования;

организация банков данных в интересах коллективного пользования.

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

Есть два варианта:

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

создание кортежа инициализируемых АТ, «завязанных» в единую сеть и способных решать те же задачи, что и универсальные АТ.

Решение задачи автономного обучения при помощи универсальных АТ возможно при условии создания в нашем ВВУЗе достаточно мощного, в методическом смысле, программного обеспечения, что для одного подразделения является сложной задачей. Использование набора специализированных АТ более приемлемо, так как требуется меньшее количество материальных средств и людских ресурсов.

Помимо перечисленных требований, существуют следующие требования предъявляемые к эмулятору:

. Обеспечение полной имитации эмулированного процесса.

. Осуществление программных запретов на функции диалога пользователя современных операционных систем

2.2 Выбор операционной системы реализации эмулятора


Операционная система в наибольшей степени определяет облик всей вычислительной системы в целом. Довольно затруднительно дать определение операционной системе. Частично это связано с тем, что ОС выполняет две по существу мало связанные функции: обеспечение пользователю-программисту удобств посредством предоставления для него расширенной машины и повышение эффективности использования компьютера путем рационального управления его ресурсами.

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

1 планирование ресурса - то есть определение, кому, когда, а для делимых ресурсов и в каком количестве, необходимо выделить данный ресурс;

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

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

Так, например, алгоритм управления процессором в значительной степени определяет, является ли ОС системой разделения времени, системой пакетной обработки или системой реального времени.

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

Ниже приведена классификация ОС по нескольким наиболее основным признакам.

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

По числу одновременно выполняемых задач операционные системы могут быть разделены на два класса:

3 однозадачные (например, MS-DOS, MSX)

4 многозадачные (OC EC, OS/2, UNIX, Windows 95/NT).

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

Многозадачные ОС, кроме вышеперечисленных функций, управляют разделением совместно используемых ресурсов, таких как процессор, оперативная память, файлы и внешние устройства.

По числу одновременно работающих пользователей ОС делятся на:

5 однопользовательские (MS-DOS, Windows 3.x, ранние версии OS/2);

6 многопользовательские (UNIX, Windows NT).

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

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

7 невытесняющая многозадачность (NetWare, Windows 3.x);

8 вытесняющая многозадачность (Windows NT, OS/2, UNIX).

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

Другим важным свойством ОС является отсутствие или наличие в ней средств поддержки многопроцессорной обработки - мультипроцессирование. Мультипроцессирование приводит к усложнению всех алгоритмов управления ресурсами.

В наши дни становится общепринятым введение в ОС функций поддержки многопроцессорной обработки данных. Такие функции имеются в операционных системах Solaris 2.x фирмы Sun, Open Server 3.x компании Santa Crus Operations, OS/2 фирмы IBM, Windows XP фирмы Microsoft и NetWare 4.1 фирмы Novell.

Критериями для выбора ОС являются следующие характеристики:

9 Высокая эффективность файловых операций;

10 Возможность эффективной интеграции с другими ОС;

11 Наличие централизованной масштабируемой справочной службы;

12 Хорошие перспективы развития;

13 Эффективная работа удаленных пользователей;

14 Разнообразные сервисы: файл-сервис, принт-сервис, безопасность данных и отказоустойчивость, архивирование данных, служба обмена сообщениями, разнообразные базы данных и другие;

15 Разнообразные транспортные протоколы: TCP/IP, IPX/SPX, NetBIOS, AppleTalk;

16 Поддержка многообразных операционных систем конечных пользователей: DOS, UNIX, OS/2, Mac;

17 Поддержка сетевого оборудования стандартов Ethernet, Token Ring, FDDI, ARCnet;

18 Наличие популярных прикладных интерфейсов и механизмов вызова удаленных процедур RPC;

19 Возможность взаимодействия с системой контроля и управления сетью, поддержка стандартов управления сетью SNMP.

Конечно, ни одна из существующих ОС не отвечает в полном объеме перечисленным требованиям, поэтому выбор ОС, как правило, осуществляется с учетом производственной ситуации и опыта. В таблице 2.1. приведены основные характеристики популярных и доступных в настоящее время ОС.

Таблица. 2.1 Основные характеристики ОС

Novell NetWare 4.1

Специализированная операционная система, оптимизированная для работы в качестве файлового сервера и принт-сервера Ограниченные средства для использования в качестве сервера приложений: не имеет средств виртуальной памяти и вытесняющей многозадачности, а поддержка симметричного мультипроцесcирования отсутствовала до самого недавнего времени. Отсутствуют API основных операционных сред, используемых для разработки приложений, - UNIX, Windows, OS/2 Серверные платформы: компьютеры на основе процессоров Intel, рабочие станции RS/6000 компании IBM под управлением операционной системы AIX с помощью продукта NetWare for UNIX Поставляется с оболочкой для клиентов: DOS, Macintosh, OS/2, UNIX, Windows (оболочка для Windows NT разрабатывается компанией Novell в настоящее время, хотя Microsoft уже реализовала клиентскую часть NetWare в Windows NT) Организация одноранговых связей возможна с помощью ОС PersonalWare Имеет справочную службу NetWare Directory Services (NDS), поддерживающую централизованное управление, распределенную, полностью реплицируемую, автоматически синхронизируемую и обладающую отличной масштабируемостью Поставляется с мощной службой обработки сообщений Message Handling Service (MHS), полностью интегрированную (начиная с версии 4.1) со справочной службой Поддерживаемые сетевые протоколы: TCP/IP, IPX/SPX, NetBIOS, Appletalk Поддержка удаленных пользователей: ISDN, коммутируемые телефонные линии, frame relay, X.25 - с помощью продукта NetWare Connect (поставляется отдельно) Безопасность: аутентификация с помощью открытых ключей метода шифрования RSA; сертифицирована по уровню C2 Хороший сервер коммуникаций Встроенная функция компрессии диска Сложное обслуживание

Banyan VINES 6.0 и ENS (Enterprise Network Services) 6.0

Серверные платформы: ENS for UNIX: работает на RISC-компьютерах под управлением SCO UNIX, HP-UX, Solaris, AIX ENS for NetWare: работает на Intel-платформах под управлением NetWare 2.x, 3.x, 4.x VINES работает на Intel-платформах Клиентские платформы: DOS, Macintosh, OS/2, UNIX, Windows for Workgroups, Windows NT Хороший сервер приложений: поддерживаются вытесняющая многозадачность, виртуальная память и симметричное мультипроцессирование в версии VINES и в ENS-версиях для UNIX. Поддерживаются прикладные среды UNIX, OS/2, Windows Поддержка одноранговых связей - отсутствует Справочная служба - Streettalk III, наиболее отработанная из имеющихся на рынке, с централизованным управлением, полностью интегрированная с другими сетевыми службами, распределенная, реплицируемая и автоматически синхронизируемая, отлично масштабируемая Согласованность работы с другими сетевыми ОС: хорошая; серверная оболочка работает в средах NetWare и UNIX; пользователи NetWare, Windows NT и LAN Server могут быть объектами справочной службы Streettalk III Служба сообщений - Intelligent Messaging, интегрирована с другими службами Поддерживаемые сетевые протоколы: VINES IP, TCP/IP, IPX/SPX, Appletalk Поддержка удаленных пользователей: ISDN, коммутируемые телефонные линии, X.25 Служба безопасности: поддерживает электронную подпись (собственный алгоритм), избирательные права доступа, шифрацию; не сертифицирована Простое обслуживание Хорошо масштабируется Отличная производительность обмена данными между серверами, хуже - при обмене сервер-ПК

Microsoft Windows XP

Серверные платформы: компьютеры на базе процессоров Intel, PowerPC, DEC Alpha, MIPS Клиентские платформы: DOS, OS/2, Windows, Windows for Workgroups, Macintosh Windows XP представляет собой отличный сервер приложений: он поддерживает вытесняющую многозадачность, виртуальную память и симметричное мультипроцессирование, а также прикладные среды DOS, Windows 95, OS/2, POSIX Справочные службы: доменная для управления учетной информацией пользователей (Windows NT Domain Directory service), справочные службы имен WINS и DNS Хорошая поддержка совместной работы с сетями NetWare: поставляется клиентская часть (редиректор) для сервера NetWare (версий 3.х и 4.х в режиме эмуляции 3.х, справочная служба NDS поддерживается, начиная с версии 4.0), выполненная в виде шлюза в Windows XP или как отдельная компонента для Windows NT Workstation; недавно Microsoft объявила о выпуске серверной части NetWare как оболочки для Windows XP. Служба обработки сообщений - Microsoft Mail NT - Microsoft Message Exchange, интегрированная с остальными службами Windows NT Server Поддерживаемые сетевые протоколы: TCP/IP, IPX/SPX, NetBEUI, Appletalk Поддержка удаленных пользователей: ISDN, коммутируемые телефонные линии, frame relay, X.25 - с помощью встроенной подсистемы Remote Access Server (RAS) Служба безопасности: мощная, использует избирательные права доступа и доверительные отношения между доменами; узлы сети, основанные на Windows XP, сертифицированы по уровню C2 Простота установки и обслуживания Отличная масштабируемость

IBM LAN Server 4.0

Серверные платформы: операционные системы MVS и VM для мейнфреймов; AS/400 с OS/400, рабочие станции RS/6000 с AIX, серверы Intel 486 или Pentium под OS/2 Поставляется с оболочками для клиентов: DOS, Macintosh, OS/2, Windows, Windows NT, Windows for Workgroups Серверы приложений могут быть организованы с помощью LAN Server 4.0 в операционных средах MVS, VM, AIX, OS/2, OS/400. В среде OS/2 поддерживаются: вытесняющая многозадачность, виртуальная память и симметричное мультипроцессирование Организация одноранговых связей возможна с помощью ОС Warp Connect Справочная служба - LAN Server Domain, то есть основа на доменном подходе Поддерживаемые сетевые протоколы: TCP/IP, NetBIOS, Appletalk Безопасность - избирательные права доступа, система не сертифицирована Служба обработки сообщений - отсутствует Высокая производительность Недостаточная масштабируемость


Согласно проведенному анализу, выбор операционной системы для написания дипломной работы очевиден в пользу Microsoft Windows XP

2.3 Выбор языка программирования


При работе на персональных ЭВМ можно использовать различные языки программирования. Например: Ассемблер, Си, Турбо-Паскаль, Delphi, Visual Basic.

Для выбора наиболее эффективного из них проведем их сравнительный анализ.

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

При разработке языка Си был принят компромисс между низки уровнем языка Ассемблера и высоким уровнем Турбо-Паскаля. В языке Си предусмотрено много операций, непосредственно исполняемых большинством микропроцессоров. В то же время он дает программисту возможность выражать свои алгоритмы и данные наиболее подходящими средствами, использующими такие традиционные конструкции языков программирования высокого уровня, как итерация, выбор и принятие решение. Язык Си обеспечивает возможность структурирования данных и позволяет разрабатывать большие, но структурированные программы, предоставляя возможность разработки отдельных блоков программы. К достоинству языка Си следует отнести его компактность. Разработчики этого языка ориентировались на миникомпьютеры. Вследствие этого, в языке Си нет встроенных операций для манипулирования строками и встроенных операторов ввода-вывода. Эти возможности реализованы как подпрограммы, которые могут быть вызваны из программы. Чтобы писать программы на языке Си, программист должен обладать достаточно высокой квалификацией и знать архитектуру ПЭВМ. Недостатком языка Си является его недостаточная наглядность, а это для нас один из важнейших факторов.

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

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

Операторы ввода-вывода также являются элементами языка. Будучи ориентированным на обучение, Турбо-Паскаль строго типизирован. Это означает, что каждая переменная программ должна быть описана, как содержащая определенный тип данных. Турбо-Паскаль обладает полным набором структурированных типов данных, таких как простые переменные, массивы, файлы, множество записи, ссылочные переменные и другие. Особое внимание следует обратить на надежность программ, которая достигается иногда за счет избыточности. Например, обязательно написание переменных соответствующих типов. Надежность достигается также за счет программы и естественности конструкции языка, соответствующих логическому мышлению разработчика программ. Язык содержит ряд изобразительных средств (case, repeat, if, while), помогающих организовать ветвление в программе без использования операторов ввода-вывода, что способствует простому пониманию алгоритма. Не смотря на относительную простоту языка, он оказался пригоден для весьма широкого спектра приложений, в том числе для разработки очень больших и сложных программ, например, операционных систем. Совсем не так давно появился новый проект языка программирования этой же фирмы, который быстро нашел популярность в кругах разработчиков. Это среда - Delphi с языком программирования Object Pascal . В своей основе она использует объектно-ориентированный Паскаль и позволяет программировать в Windows. Этот язык совершенно не похож на другие языки программирования, даже на своего предшественника Турбо-Паскаль, хотя и использует его. Главное отличие - абсолютно новый способ программирования.

Идея заключается в изменении способа разработки программы.

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

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

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

Visual Basic, также как и Delphi, базируется на языках программирования высокого уровня с визуальным программированием. Delphi - потомок Pascal; Visual Basic происходит от Basic. Оба продукта обладают удобным интерфейсом, который исключает значительную часть рутинной работы, и все же Delphi имеет значительные преимущества перед Visual Basic.

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

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

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

На основании вышесказанного, а так же прочитанной литературы и опыта программистов фирм: «Формоза-центр», «Инком Банк», «Рос.вооружение» был выбран язык программирования Delphi, как наиболее удобный для работы, а так же обеспечивающий максимальную наглядность и производительность. Данный язык, как никакой другой, поддерживает основные тенденции (направления) современного языка программирования.

Одно направление - объектно-ориентированный подход, хорошо структурирующий задачу, как таковую, так и ее решение в виде прикладной системы.

Другое направление, возникшее во многом благодаря объектной ориентации, - визуальные средства быстрой разработки приложений (RAD - Rapid Application Development), основанные на компонентной архитектуре.

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

Четвертая тенденция - возможность работы с базами данных универсальными (единообразными) методами. Если мы попытаемся оценить процент систем, которые так или иначе требуют обработки структурированной информации (как для внутрикорпоративного использования, так и для коммерческого или иного распространения), то окажется, что цифра 60 - 70% может представлять лишь нижнюю границу. Важным свойством средств обеспечения доступа к базам данных является их масштабируемость, как возможность не только количественного, но и качественного роста системы. Например, обеспечение перехода от локальных ,в том числе, файл-серверных данных к архитектуре клиент-сервер или тем более к многоуровневой N-tier схеме.создавался как продукт, в полной мере реализующий описанные тенденции, с архитектурой, открытой для расширения спектра поддерживаемых стандартов и подходов. Рассмотрим, насколько Delphi удовлетворяет выше перечисленным требованиям.использует язык 3-го поколения Object Pascal, обладающий полной реализаций основных признаков объектной ориентации (инкапсуляция, наследование, полиморфизм), поддержкой RTTI-RunTime Type Information и встроенной обработкой исключительных ситуаций (Exception handling). Компонентная архитектура Delphi является прямым развитием поддерживаемой объектной модели. Все компоненты являются объектными типами (классами), с возможностью неограниченного наследования. Компоненты Delphi поддерживают PME-модель (Property, Method, Events), позволяющую изменять поведение компонентов без необходимости создания новых классов.7 включает систему контроля версий Intersolv PVCS, поддерживает работу со словарем данных (Data Dictionary) и Репозиторием объектов (Object Repository). Среда визуальной разработки Delphi позволяет единообразно работать как с предопределенными, так и с пользовательскими компонентами, которые разрабатываются на том же языке (Object Pascal), на котором создаются и конечные приложения.Database Engine (BDE) обеспечивает единообразную работу с локальными данными (Paradox, dBase) и серверами БД (Oracle, Sybase, MS SQL Server, InterBase и т.д.), за счет применения навигационных методов доступа к серверным СУБД (двунаправленные курсоры, закладки и т.п.) и SQL - к локальным форматам (подмножество Local SQL).

Компилятор Delphi является самым быстрым; имеет общий генератор кода с Borland C++ (Delphi 2 & BC++ 5). Компилятор Delphi (точнее, Object Pascal) является продолжением линии компиляторов Turbo Pascal / Borland Pascal.

Открытые интерфейсы Delphi - Open Tools API - обеспечивают контроль над средой разработки "из вне" и доступ к информации о проекте.

Рисунок 2.1 Borland Database Engine

На выборе языка программирования также сказался тот факт, что Delphi использует уже готовый графический интерфейс Windows. Что значительно облегчает работу и улучшает восприятие материала занятия у конечных пользователей данной программы.

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

2.4 Разработка эмулятора


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

определить внешний вид программы (интерфейс);

определить входную информацию;

определить информацию на выходе;

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

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

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

2.4.1 Состав программного продукта

Эмулятор состоит из следующих частей:

блок интерфейса (DipProject);

блок обработки данных (модуль Main);

блок программных ресурсов (динамическая библиотека Resourses);

блок вспомогательных процедур (модуль DataSource);

блок описания (модуль Help);

2.4.2 Блок интерфейса

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

Рисунок 2.2 Внешний вид (интерфейс) эмулятора

Блок интерфейса находится в головной части программы и называется DipProject. Он содержит основные наборы типизированных процедур работы со стандартным интерфейсом Microsoft Windows, посредством которых формируется общий облик (интерфейс) эмулятора (Рис. 2.2).

Так как необходимо учитывать специфику разрабатываемой программы-эмулятора, то для полной эмуляции диалога пользователя с ОС МВК «Эльбрус» в данном блоке для поля ввода приказов пользователя (см. Рис. 2.2.) были разработаны и запрограммированы следующие ограничения стандартного пользовательского интерфейса Microsoft Windows - запрет нажатия кнопок мыши;

запрет клавиш перемещения курсора и удаления последнего введенного символа (клавиша «BackSpace»);

запрет работы со стандартным буфером обмена;

запрет выделения мышью блоков текста;

запрет применения стандартных комбинаций клавиш (такие как «Сtrl» + «Insert», «Сtrl» + «Z», «Shift» + «Insert» и другие);

запрет позиционирования курсора мышью;

запрет изменения размеров окна программы.

Часть данных запретов реализована с использованием функций WINAPI (Windows Application Programming Interface), что позволило сократить общий объем программы.

Неотъемлемой частью современного интерфейса, обладающего легкостью усвоения и удобством использования, является пользовательское меню. Поскольку эмулятор написан в среде визуального программирования Delphi 7.0, то и меню его является стандартным, привычным и удобным в использовании, характерным практически для любой Windows-программы, а в частности обладает следующими свойствами:

место расположения меню стандартно для всех Windows-программ;

привычный тип вложенности;

стандартные общая структура и вид.

Вид меню представлен на Рисунке 2.3, а схема на Рисунке 2.4

Рисунок 2.3 Пользовательское меню эмулятора

Рисунок 2.4 Схема пользовательского меню эмулятора

Как видно из рисунка 2.4 , основными пунктами меню являются пункты: «Работа», «Инструментарий», «Помощь». Элементами подменю для пункта «Работа»: «Старт (рестарт)»; «Загрузить сессию»; «Сохранить сессию»; Выход. Для пункта «Инструментарий» соответственно: «Резерв» и «Настройки». Для пункта «Помощь»: «Руководство пользователя»; «Список запретов»; «О программе».

2.4.3 Блок обработки данных

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

Модуль Main содержит следующие процедуры и функции:

процедура FormActivate - содержит действия инициализации программы;

процедуры реагирования на меню - содержат необходимое количество действий для работы с главным меню программы;

процедура учета отжатия клавиш MainFieldKeyPress - учитывает и регистрирует отжатые пользователем клавиши;

процедура StopButtonClick - процедура регистрации нажатия на кнопку «ВЫКЛ».

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

Рисунок 2.5 Взаимодействие потоков данных в эмуляторе

В начале работы, модуль Main получает текст приказа, введенного пользователем в поле приказов FieldMain (тип данных - Pchar). После необходимого анализа данного потока, Main передает параметры для выполнения функции введенного пользователем приказа в динамически подключаемую библиотеку функций Resourses.dll (тип данных - Pchar). При завершении действий над приказом пользователя в библиотеке Resourses.dll готовая информация отклика системы на этот приказ пересылается в файл FileOfRes (тип данных - string), после чего данный файл считывается модулем Main для получения необходимой информации о реакции системы на приказ пользователя (тип данных - string). При успешном считывании файла FileOfRes, информация отклика системы на приказ пересылается в поле ввода приказов (тип данных TString). Если приказ пользователя содержал ошибку, о чем его успешно проинформировала система, модуль Main выдает информацию в поле ошибок (тип данных - Tstring). Обмен потоками данных с файлом сессий FileOfSes (тип данных String) осуществляется только в том случае, если пользователь выбрал в меню пункты «Загрузить сессию» или «Сохранить сессию».

2.4.4 Блок программных ресурсов

Блок программных ресурсов в эмуляторе представлен динамически линкуемой библиотекой (Dynamic Link Library) и находится в файле Resourses.dll. Он содержит более 30 функций работы с приказами пользователя, введенными в поле ввода приказов. Каждая функция обрабатывает поступающую от модуля Main информацию и выдает соответствующую реакцию системы на него. Общий принцип построения блока программных ресурсов схож с принципами построения модуля реакций операционных систем современности, то есть обладает следующими свойствами:

динамическое подключение по ходу работы основной программы;

полная реализация приказа введенного пользователем;

большая масштабируемость и адаптивность.

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

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

подключение функции модуля DLL, неизвестного на момент компиляции программы (например, по введенному значению или приказу пользователя);

значительная экономия оперативная памяти компьютера. В зависимости от количества процедур или функций от 100% и более (для нашего блока программных ресурсов, в котором реализовано более 30 функций, а подключается всего одна - 3000%);

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

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

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

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

В данном модуле (Resourses.dll) реализованы следующие функции (см. Табл. 2.2);

Таблица 2.2

Функции, реализованные в модуле блока программных ресурсов

№ п/п

Название функции

Выполняемые действия

1.

IL

Эмулирование приказа пользователя КН

2.

AZT

Эмулирование приказа пользователя ВЫХ

3.

AE

Эмулирование приказа пользователя ВЖ

4.

APQ

Эмулирование приказа пользователя ВСТ

5.

CAQA

Эмулирование приказа пользователя ДАТА

6.

MP

Эмулирование приказа пользователя OC

7.

ODE

Эмулирование приказа пользователя РЕЖ

8.

PBX

Эмулирование приказа пользователя СБЩ

9.

QAHKDO

Эмулирование приказа пользователя ТАЙМЕР

10.

TJF

Эмулирование приказа пользователя ХЛЗ

11.

A

Эмулирование приказа пользователя А

12.

E

Эмулирование приказа пользователя Ж

13.

FI

Эмулирование приказа пользователя ЗК

14.

G

Эмулирование приказа пользователя И

15.

NAA

Эмулирование приказа пользователя ПВВ

16.

NO

Эмулирование приказа пользователя ПР

17.

P

Эмулирование приказа пользователя С

18.

PF

Эмулирование приказа пользователя СЗ

19.

RCA

Эмулирование приказа пользователя УДА

20.

AR

Эмулирование приказа пользователя АУ

21.

OQ

Эмулирование приказа пользователя РТ

22.

CK

Эмулирование приказа пользователя ДМ

23.

IPL

Эмулирование приказа пользователя КСН

24.

PMF

Эмулирование приказа пользователя СОЗ

25.

KRP

Эмулирование приказа пользователя МУС

26.

NOV

Эмулирование приказа пользователя ПЕЧ

27.

GKA

Эмулирование приказа пользователя ИМЯ

28.

GLPQO

Эмулирование приказа пользователя ИНСТР

29.

MNDOR

Эмулирование приказа пользователя ОПЕРУ

30.

IPRK

Эмулирование приказа пользователя КСУМ

31.

PBOMP

Эмулирование приказа пользователя СБРОС

32.

StartName

Функция запроса имени пользователя и его пароля

33.

Pol

Эмулирование приказа пользователя ПОЛ


2.4.5 Блок вспомогательных процедур

Блок вспомогательных процедур эмулятора представлен модулем DataSource и предназначен для обеспечения дополнительных функций, необходимых в ходе работы главного модуля Main, а также для дальнейшей модернизации и отладки эмулятора. Его основное назначение - это совершенствование эмулятора, посредством написания пользователем любых процедур и функций, подключаемых к главному модулю.

Программное поле модуля DataSource содержит одну единственную процедуру для работы со строками ReplaceString, используемую главным модулем Main.

2.4.6 Блок описания

Блок описания реализован в модуле Help и предназначен для информативного обеспечения пользователя и осуществления работы основного пункта меню «Помощь».

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

информация о горячих клавишах, реализованных в эмуляторе;

общая информация о программе и ее разработчике;

руководство пользователя.

2.5 Описание работы эмулятора


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

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

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

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

1.   Пункт «Старт (Рестарт)» (см. Рис. )- запуск (перезапуск) эмулятора осуществляется посредством обнуления поля приказов MainField (MainField.Lines.Text:=’’) и инициализации переменных.

.        Пункт «Загрузить сессию» - загружает, раннее сохраненную сессию, восстанавливая поле приказов MainField из текстового файла FileOfSession (FileOfSession →MainField.Lines.Text).

.        Пункт «Выход» - осуществляет завершение программы, исполняя процедуру Halt.

.        Пункт «Резерв» - данный пункт зарезервирован для сохранения возможности модернизации и отладки.

.        Пункт «Настройки» - открывает окно опций.

.        Пункт «Руководство пользователя» - предназначен для получения справочной информации по эксплуатации программы.

.        Пункт «Список горячих клавиш» - выводит на экран список реализованных в программе горячих клавиш.

.        Пункт «О программе» - осуществляет показ информации о назначении программы, о создателе.

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

При получении отклика от пользователя (то есть после ввода приказа и нажатию клавиши «ВВОД») программа анализирует полученную от него информацию и в переменные Command и MainDataString записывает введенную команду и ее параметры соответственно. После чего происходит подключение функции из Resourses.dll по имени, находящемуся в переменной Command и ее исполнение с параметрами, хранящимися в переменной MainDataString (см. Табл. 2.3).

Таблица 2.3 Приказы ОС МВК «Эльбрус», реализованные в эмуляторе

№ п/п

Название функции

Параметры функции

Описание функции

34.

КН

<внешнее имя>

Сменить контекст

35.

ВЫХ

Параметры не нужны

Выход из диалога

36.

ВЖ

<делиметр> - <текст>-<делиметр>

Занести сообщение в системный журнал

37.

ВРЕМЯ

<Время>

Показать, установить время

38.

ДАТА

<Дата>

Показать, установить дату

39.

OC

Параметры не нужны

Показать версию ОС

40.

РЕЖ

Параметры не нужны

Выдать список режимов

41.

СБЩ

Параметры не нужны

Выдать последние 10 сообщений системы польщователю

42.

ТАЙМЕР

<целое>

Установить таймер

43.

ХЛЗ

<№ устройства>

Копирование работающей ОС на барабан или диск, указанный в качестве № устройства

44.

А

Параметры не нужны

Вывести информацию об активных задачах

45.

Ж

Параметры не нужны

Список ждущих задачи

46.

ЗК

Параметры не нужны

Список 10 последних оконченных задач

47.

И

<№ задачи>

Вывод информации о ресурсах задач

48.

ПВВ

<№ устройства>

Повторить обмен с устройством

49.

ПР

<№ задачи>-:<целое>

Выдать приоритет заданной задачи

50.

С

Параметры не нужны

Вывести состояние задач

51.

СЗ

<№ задачи>

Вывести информацию о задаче

52.

УДА

<№ процесса>-<тип периф. уст-ва>-<№ устройства>

Удалить объект

53.

АУ

<№ устройства>

Активизировать устройство

54.

РТ

АКТ или ПРИГЛ

Установить режим работы терминала

55.

ДМ

<№ устройства>

Демонтировать носитель

56.

КСН

<№ устройства>

Показать контекст

57.

СОЗ

<компонента создания>

Создать файл

58.

МУС

<внешнее имя>

Очистить контейнер

59.

ПЕЧ

<внешнее имя>-:<процесс>

Печать информации

60.

ИМЯ

Параметры не нужны

Выдать имя пользователя

61.

ИНСТР

Параметры не нужны

Выдать на печать инструкцию

62.

ОПЕРУ

<делиметр> - <текст>-<делиметр>

Оповестить оператора

63.

КСУМ

<внешнее имя>

Подсчет контрольной суммы контейнера

64.

СБРОС

Параметры не нужны

Сбросить признак предыдущего приказа

65.

ПОЛ

<ИМЯ>

Сменить пользователя


В случае отсутствия функции в модуле Resourses.dll система принимает решение о неверности ввода приказа пользователем или его нереализованности в данном эмуляторе (см. список реализованных приказов в Табл. 3.3) и передает управление пользователю для повторного ввода.

Если введенный пользователем верен, то есть функция присутствует в модуле Resourses.dll, происходит ее загрузка функции в память

@StartName:=nil;

LibHandle:=LoadLibrary('Resourses.dll');

@StartName:=GetProcAddress(LibHandle,Hlp1);

и исполнение с параметрами, записанными в переменной MainDataString.

Получившая управление функция из модуля Resourses.dll, выполняет действия адекватные введенному пользователем приказу и сохраняет результаты своей работы в текстовом файле FileOfRes, после чего передает управление в главный модуль программы Main, который в свою очередь осуществляет перенос информации из текстового файла FileOfRes в поле приказов пользователя. После чего пользователь вновь получает управление, и все начинается сначала.

Таким образом, осуществляется реализация отклика системы на введенный пользователем приказ.

2.6 Руководство пользователя


Так как разработанный эмулятор работает под управлением современной операционной системы Microsoft Windows, то пользователю необходимы знания основных управляющих воздействий, характерных для данной среды (такие как закрытие приложения, перемещение его формы и другие).

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

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

В эмуляторе используются следующие комбинации клавиш:

«Сtrl» + «R» - старт или рестарт программы;

«Сtrl» + «S» - сохранение текущей сессии;

«Сtrl» + «L» - загрузка раннее сохраненной сессии;

«Сtrl» + «Q» - быстрый выход из программы;

«Сtrl» + «O» - вывод на экран окна настроек;

«Сtrl» + «V» - зарезервировано для дальнейшей модернизации;

«F1» - вызов помощи.

Завершение работы программы осуществляется по нажатию определенной комбинации клавиш или выбором соответствующего пункта в пользовательском меню.

 

Выводы по главе


Подведем краткие выводы по данной главе:

были предъявлены требования к автоматизированной системе контроля;

был осуществлен выбор операционной системы в пользу Microsoft Windows XP.

выбран язык программирования Borland Delphi 7.0;

разработана алгоритмическая модель эмулятора (Приложение 1);

разработана программа(Приложение 2);

приведено описание.

Данная глава показала, что разработанная в дипломной работе программа отвечает всем предъявленным требованиям и решает конкретные задачи.

 

3. ОЦЕНКА ЭФФЕКТИВНОСТИ РАЗРАБОТАННОЙ ПРОГРАММЫ И ЕЕ НАДЕЖНОСТЬ


3.1 Выбор показателей эффективности


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

Метод анализа ключевых факторов эффективности позволяет успешно решить указанную проблему. Данный метод часто применяется при стратегическом планировании, исследовании реализуемости проектов информационных систем и системном анализе. Он является развитием метода, предложенного в 1979г. Джоном Роккартом для проведения стратегического планирования информационных систем [10].

Основные задачи анализа для нашего случая можно сформулировать следующим образом:

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

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

Хотя предлагаемый метод сам по себе и не гарантирует создание эффективного во всех отношениях программного обеспечения, он представляет собой инструмент для решения этой проблемы

Ключевые факторы эффективности (КФЭ) характеризуют основные аспекты контроля готовности номеров дежурных смен к самостоятельному несению боевого дежурства. Для проведения анализа мы включим в список КФЭ следующие показатели:

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

3  перспективность технологии;

4  трудозатраты на этапах обучения и контроля;

5  управляемость;

6  открытость;

7  гибкость;

-   удобство работы.

При проведении анализа используется специальный бланк, содержание которого показано в таблице 3.1.

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

Таблица 3.1 Бланк анализа КФЭ

КФЭ

Мера оценки

Целевые установки при создании



Информационные

Функциональные

Временные

1. Перспективные технологии

-

-

Стремление к безбумажной работе

-

2. Организация подготовки к несению БД

соотв.

Подготовка инженеров

Выполнение требований

Выполнение требований

З. Экономические затраты на обучение и контроль

чел/час

-

Обучение и контроль

сократить

4. Управляемость

-

контроль за обучением

Наличие интерактивных средств обучения

быстрота выполнения запросов

5. Открытость

-

-

Возможность объединения

минимальное время

6. Гибкость

-

-

Возможность доработок

минимальное время

7. Удобство работы

-

отчеты по зачетам

Наличие интерактивных средств моделирования

-


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

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

Так, рассматривая разработанную в дипломной работе программу эмулятор, можно сделать следующие оценки:

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

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

при применении программы-эмулятора качество обучения не изменяется по сравнению с обучением на реально стоящих на вооружении МВК «Эльбрус», поэтому о заметных преимуществах в данной области говорить не приходится;

внедрение данного программного продукта обеспечивает большую экономическую выгоду.

3.2 Анализ экономической эффективности


Рассмотрим суммарный экономический эффект от внедрения в эксплуатацию данного программного продукта.

Известно, что экономический эффект от внедрения в эксплуатацию какого-либо устройства (программы) определяется по формуле:

Э = Эизг + Эпотр

где: Эизг - экономический эффект, полученный в условиях изготовления, в рублях.

Эпотр - экономический эффект, полученный в условиях эксплуатации в течение всего срока службы, в рублях.

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

Капитальные расходы (К) - единовременное вложение средств в новое устройство (программный продукт);

Эксплутационные расходы (Е) - текущие затраты, производимые в течение всего времени конкретной стадии жизненного цикла для выполнения решаемых на данной стадии задач.

Необходимо отметить, что для подготовки специалистов можно использовать не разработанный в дипломной работе эмулятор, реализованный на ПЭВМ, а непосредственно стоящий на вооружении МВК «Эльбрус». В таком случае, можно сравнить следующие показатели:

Еэ и (КПЭВМ + ЕПЭВМ)

где: Еэ - эксплутационные расходы на повышение уровня профессиональной подготовки, используя МВК «Эльбрус»;

КПЭВМ, ЕПЭВМ - капиталовложение и эксплуатационные расходы на повышение уровня профессиональной подготовки, используя разработанный эмулятор.

Рассчитаем EЭ:

Известно, что

ЕЭ = В0 + Р0

где: В0 - суммарные расходы на содержание обслуживающего персонала;

Р0 - суммарные расходы на материалы и электроэнергию при эксплуатации.

Так как

B0 =

где: m - число типов специалистов, необходимых для обслуживания техники в течении года;

bi - затраты на содержание i-го специалиста в год;

toi - время, затрачиваемое i-ым специалистом в течении года на обслуживание техники;

Toi - необходимое время работы i-го специалиста на обслуживание техники в год.

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

 = 1

Для обслуживания МВК «Эльбрус» необходимо 8 специалистов, занимающих должности, соответствующие званию «капитан», со средним окладом 3420 рублей и 2 специалиста, занимающих должности, соответствующие званию «майор» и «подполковник» со средним окладом 4600 рублей. Учитывая компенсации взамен продпайка и премиальные, рассчитаем:

b1 = 8 * 3420 * 14 + 8 *12* 600 = 440640;

b2 = 2 * 4600 * 14 + 2 *12*600 = 143200;

Тогда, подставляя значения b1 и b2 в 4.4 получим, что суммарные затраты на содержание обслуживающего персонала равны:

В0 = 387840 + 130000 = 583840

Теперь рассчитаем Р0.

Известно, что

Р0 =

где: М - число типов материалов (ГСМ, спирт, фреон и другие);

Сj - стоимость единицы измерения j-го материала;

gj - годовые нормы расхода j-го материала;

w - потребление электроэнергии устройством в единицу времени;

T0j - время работы j-го устройства в год.

сэ - тарифная стоимость 1 кВт/ч электроэнергии.

При эксплуатации МВК «Эльбрус» используются следующие расходные материалы (см. Табл. 3.2).

Таблица 3.2 Расходные материалы, необходимые при эксплуатации МВК «Эльбрус»

№ п/п

Наименование

Количество единиц в год

Стоимость за единицу., руб.

1.

Спирт

144 л.

132

2.

Фреон

40 т.

67

3.

Смазочные материалы на обслуживание насосов и ПСЧ

3,5 кг.

41

4.

Обслуживание вентиляторов (смена ремней)

5 шт.

270


Теперь оценим общий расход электроэнергии (см. Тал. 3.3).

Таблица 3.3 Количество потребляемой электроэнергии устройствами МВК «Эльбрус»

№ п/п

Наименование устройства

Количество потребляемой энергии, кВт/ч

1.

МВК «Эльбрус»

76

2.

Насосы и электродвигатели

29

3.

Холодильная машина

27

4.

Градирни

7

5.

ПСЧ

120

6.

Освещение помещений МВК

2


Отметим, что стоимость 1 кВт/ч на сегодняшний момент времени составляет 1,49 рублей. Поставляя значения параметров из таблиц 4.1 и 4.2 в выражение 4.7, получим:

Р0 = 144*132+40*67+3,5*41+5*270+(76*8760+29*8760+27*4380+ +7*8760+120*8760+7*8760+120*8760+2*8760)*1,49 = 4911305,3 руб.

Таким образом, используя полученные значения В0 и Р0 в выражении 4.3 получим значение для ЕЭ:

ЕЭ = 583840 + 4911305,3 = 5495145,3 рублей в год

Теперь подсчитаем стоимость 1 машинного часа работы МВК «Эльбрус»:

Е0 = 5495145,3: 8760 = 627,3 рублей

Обратим внимание на выражение 4.2 и подсчитаем теперь правую часть выражения.

КПЭВМ - необходимые капиталовложения на закупку оборудования для внедрения эмулятора. Здесь необходимо отметить, что при использовании МВК «Эльбрус» в повышении уровня профессиональной подготовки специалистов, единовременное количество обучаемых специалистов равно числу свободных терминалов. Предположим, что при обучении все терминалы свободны, таким образом, исходя из основных ТТХ МВК «Эльбрус», количество единовременно обучаемых специалистов равно 32. Следовательно, для подержания такого же количества обучаемых человек при использовании эмулятора необходимо приобретение 32 ПЭВМ.

Для расчета капиталовложений при покупке ПЭВМ, оценим необходимые системные требования для надежной работы эмулятора (см. Табл. 3.4):

Таблица 3.4

Необходимые системные требования для надежной работы эмулятора

Название характеристики

Необходимые требования

Тип процессора, тактовая частота

Intel Pentium II 233 MHz

Емкость памяти на внешнем носителе

40 Мб

Необходимое количество оперативной памяти

16 Мб

Видеокарта

4 Мб

Монитор(разрешающая способность)

800*600

Мышь, клавиатура

Обязательны


Стоимость одной ПЭВМ, удовлетворяющей указанным параметрам в компьютерной фирме «КомпьютерЦетр Кей» на сегодняшний момент времени составляет 12 350 рублей. Поэтому

КПЭВМ = 32 * 12350 = 395200 рублей

Подсчитаем эксплутационные расходы ЕПЭВМ при применении эмулятора для повышения уровня профессиональной подготовки специалистов.

На стадии внедрения созданной программы необходимо привлечение к выполнению работ два инженера-программиста, занимающих должность, соответствующую званию «капитан» с окладом в 3420 рублей в месяц и двух техников, занимающих должность, соответствующую званию «прапорщик» с окладом в 2520 рублей в месяц. На стадии эксплуатации соблюдение инструкции пользователю и наличие у него элементарных навыков оператора ПЭВМ.

Используя выражение 4.4, получим:

B0_ПЭВМ = 2*3420*14+600*12 + 2*2520*14+600*12 = 180720 рублей

Р0_ПЭВМ = 0,5 * 32 * 8760 * 1.49 = 208838,4 рублей в год

Отсюда, используя формулу 4.3 получим:

ЕПЭВМ = 180720 + 208838,4 = 389558,4 рублей

При подстановке полученных результатов в 4.2 имеем:

,3 и 395200 +389558.4, то есть

,3 и 784758,4.

Исходя из определения термина капиталовложения видно, что стоимость обучения специалистов при использовании МВК «Эльбрус» за первый год обучения обходится государству в 7 раз дороже, чем при использовании в процессе обучения разработанного в данной дипломной работе эмулятора, а за каждый следующий год - в 14.01 раз.

Таким образом, получены следующие оценки:

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

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

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

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

в результате использования современного средства разработки приложений Delphi получена уникальная возможность для интеграции всего информационного и программного обеспечения в единую систему;

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

внедрение данного программного продукта обеспечивает большую экономическую выгоду.

Проанализировав данные выше оценки можно прийти к выводу о целесообразности внедрения в частях РКО предлагаемого программного и информационного обеспечения.

3.3 Оценка надежности программного продукта


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

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

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

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

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

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

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

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

Nош = 10-3Vоп

где Nош - число ошибок в программе; Vоп - сумма числа операторов и операндов.

Одним из типичных эвристических методов является метод Холстера. В этом методе оценивается количество ошибок в программе после окончания ее разработки по формуле:

Nош = k(N1+N2 ) log(η1 + η2)

где k - коэффициент пропорциональности, зависящий от уровня        языка программирования;

N1 и N2 - общее число входящих в программу операторов и операндов соответственно.

η1 и η2 - число типов операторов и операндов соответственно.

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

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

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

Метод Холстена оценивает количество ошибок в программе по формуле (4.10). Для проведения расчетов необходимо знать коэффициент пропорциональности k, который зависит от уровня языка программирования, на котором написана программа. Расчет производится по формуле:

k = λ2 / (24)3

где λ - уровень языка программирования.

Уровень языка программирования - относительная величина, лежащая в пределах от 1.53 (для языка высокого уровня) до 0,88 для языка Ассемблер. Согласно данным критериям получаем, что уровень языка высокого уровня, используемого в программе будет равен 1.53. Подставив данное значение в формулу для вычисления коэффициента пропорциональности k:

k=1.6*104

Подсчитаем надежность для модуля Main. Сначала определим N и η:

η1 = 14,      N1 = 32,

η2 = 23,      N2 =670.

Подставив соответствующие значения параметров в формулу (4.10), получим:

Nош = l,6 * 10-4(32+ 670) log2 (14+23),

Вычислим количество ошибок, для данного модуля, при котором надежность ПО считается приемлемой для эксплуатации:

Nошпр = (32+ 670)*10-3=0,702.

Проведем расчеты по всем модулям программы и сведем результаты вычислений в таблицу (3.4) .

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

N < Nошпр

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

Таблица 3.4 Результаты вычислений параметров надежности для модулей программы

Название модуля

η1

η2

N1

N2

Nош

Nошпр

Main

14

23

32

670

0,176

0,702

Resourses

15

28

43

540

0,152

0,583

Help

21

64

37

732

0,239

0,769

DataSource

8

17

14

154

0,037

0,168


3.4 Оценка статистической сложности, разработанной программы


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

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

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

В качестве показателя сложности Н предложено использовать сумму операторов H1 и операндов H2 в программе :

Н=Н1 + Н

Подсчет количества операторов и операндов непосредственно по тексту программы весьма трудоемок, поэтому установлена зависимость в сложности от количества типов операторов, операндов и частоты их появления в программе:

n1 H1 = ∑f1j

j=1

n2 H2 = ∑f2j

j=1

где n1- количество типов операторов;

f1j - число вхождений оператора j типа в тексте программы;

n2 -количество отдельных операндов;

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

H = n1 * log2n1 + n2*log2n2

Экспериментально проверено и доказано, что значения показателей сложности Н1 и Н2 для больших программ отличаются незначительно: часто показатель H называют длиной программы.

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

=n1 + n2

n1 =147; n2 = 312 ;n = 459;

Н= 386 +774=1160;

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

Объем программы в битах определяется по формуле:

V=H*log2n,

где Н- длина программы.

Подставив Н=1160, получим: V=3087.

Следовательно длина программы составляет 1160, а объем программы в килобайтах равен 3087.

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

 

Выводы по главе


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

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

. На основании проведенного анализа можно судить о снижении экономических затрат при подготовке специалистов

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

. Сделан вывод о целесообразности внедрения данной программы эмулятора в учебный процесс подразделений РКО и ВВУЗа.

ЗАКЛЮЧЕНИЕ


По результатам проделанной работы можно сделать следующие выводы:

. Существует необходимость использования вычислительной техники для интенсификации процесса обучения. В результате рассмотрения задач, решаемых АСК, требований, предъявляемых к ним, и их классификации выбран оптимальный состав технических средств и программного обеспечения для реализации АСК.

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

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

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

. В соответствии с заданием смоделирована программа-эмулятор.

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

Автоматизированный тренажер может применяться для:

программного обучения и контроля практических знаний в ходе изучения основ диалога-пользователя с операционной системой МВК «Эльбрус»;

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

контроля навыков работы с изучаемыми положениями и инструкциями;

.        Разработанная программа является законченным программным продуктом и может работать на ПЭВМ с операционной системой Windows и микропроцессором от Intel Pentium и выше;

.        Произведен анализ эффективности АСК. Для оценки эффективности применения программы решено использовать метод анализа ключевых факторов эффективности.

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

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

На основе этого принято решение о целесообразности внедрения программы в подразделения РКО и в учебную программу обучения ВВУЗа.

. Необходимое условие функционирования эмулятора - наличие IBM совместимых ПЭВМ с операционной системой Windows.

. Материалы работы были использованы для проведения занятий на кафедре Вычислительной техники и в докладе на 30 военно-научной конференции курсантов.

СПИСОК ЛИТЕРАТУРЫ


1.  Wirth N. The Programming language PASCAL. -Vol. 10, No. 1.

2.     Агафонов В. Н. Типы и абстракции данных в языках программирования. М.: Мир, 1982.

3.  Агафонов В. Н. Языки и средства спецификации программ/Требования к спецификации в разработке программ. - М.: Мир, 1984.

4.       Бабаян Б. А., Новиков Ф. А., Пентковский В. М. Системная поддержка модульного программирования. -М.:1985.

.        Бабаян Б. А., Сахин Ю. Х. Система Эльбрус. - Программирование. - 1980. №6.

.        Вирт Н. Алгоритмы и алгоритмические языки. Языки программирования. М.: Наука, 1985.

7.       Волконский В. Ю., Пентковский В. М. Универсальный интерфейс компонентов системы программирования МВК «Эльбрус». - Препринт №28/ИТМ и ВТ АН СССР. - М.:, 1980.

.        Головкин Б.А. Многопроцессорные вычислительные комплексы «Эльбрус». - 1986. - №4.

.        Грогоно П. Программирование на языке Паскаль. -М.:Мир, 1982.

10.   Дзержинский Ф. Я. Решение экономических задач, вып. 14. -М.: Статистика. - 1980.

.       Замулин А. В., Скопин И. Н. Типы данных в языках программирования. М.: Финансы и статистика, 1984.

.       Иенсен К., Вирт Н. Паскаль: руководство пользователя и описание языка. - М.: Мир, 1982.

13.     ОСПО. Руководство оператора. Издание училища, 1989.

.        Пентковский В. М. Автокод Эльбрус. Принципы построения языка и руководство к использованию. - М.: Наука, 1982.

.        Савченко О. В., Примаков С. А., Рыбин О. А. Методика военно технического обоснования актуальности дипломной работы. Методическое пособие. - СПб: Издание филиала, 2002.

.        Сафонов В. О. Языки и методы программирования в системе «Эльбрус». М.: Наука, 1989.

.        Терентьев В., Богданов Ю., Малышев Н. Программное обеспечение специализированных вычислительных систем. Конспект лекций. - СПб: Издание училища, 1991.

.        Толковый словарь по вычислительным системам /Под ред. В. Иллингуорта и др. - М.: Машиностроение, 1986.

.        Толковый словарь по вычислительной технике. М: Наука, 1989

.        Форсайт Р. Паскаль для всех. - М.: Машиностроение, 1986.

.        Шипилов Н. Н., Андреев В. И., Иванов В. А., Разумов А. В., Овечкин О. Н., Марамзин В. Л. Материальная часть и эксплуатация вычислительных средств. Руководство по практической работе на МВК «Эльбрус». - СПб: Издание училища, 1992.


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