- •Содержание.
- •1. Введение.
- •1.1. Содержательная постановка задачи.
- •1.2. Терминологические соглашения.
- •2. Постановка задачи.
- •Общие сведения о моделировании систем.
- •2.2. Основание для разработки.
- •2.3. Назначение.
- •2.4. Требования к программному обеспечению.
- •2.5. Входные и выходные данные.
- •2.6. Условия эксплуатации.
- •3. Описание программного обеспечения.
- •3.1. Выбор языка программирования для реализации цифровой модели.
- •3.2. Функциональное назначение цифровой модели.
- •3.3. Описание идентификаторов процедур и функций, входящих в состав цифровой модели.
- •3.4. Описание идентификаторов переменных и массивов, используемых в цифровой модели.
- •3.5. Описание алгоритма цифровой модели.
- •3.6. Описание процедур и функций, реализующих цифровую модель.
- •3.6.1. Процедура расчета коэффициентов.
- •3.6.1.1. Функциональное назначение.
- •Integral ( X : real ).
- •3.6.1.2. Описание идентификаторов переменных и массивов.
- •3.6.1.2.1. Входные данные.
- •3.6.1.2.2. Вспомогательные переменные.
- •3.6.1.2.3. Выходные данные.
- •3.6.1.3. Описание логики.
- •3.6.2. Процедура формирования модели изображения очередного кадра.
- •3.6.2.1. Функциональное назначение.
- •3.6.2.2. Описание идентификаторов и назначения переменных и массивов.
- •3.6.2.2.1. Входные данные.
- •3.6.2.2.2. Вспомогательные переменные.
- •3.6.2.2.3. Выходные данные.
- •3.5.2.3. Описание логики.
- •3.6.3. Описание процедуры моделирования движения сложного фона.
- •3.6.3.1. Функциональное назначение.
- •Var ArgumentX, ArgumentY : real).
- •3.6.3.2. Описание идентификаторов и назначение переменных и массивов.
- •3.6.3.2.1. Входные данные.
- •3.6.3.2.2. Вспомогательные переменные.
- •3.6.3.2.3. Выходные данные.
- •3.6.3.3. Описание логики.
- •3.6.4. Описание функций яркости.
- •3.6.4.1. Функциональное назначение.
- •3.6.4.2. Описание идентификаторов и назначения переменных.
- •3.6.4.2.1. Входные данные.
- •3.6.4.2.2. Выходные данные.
- •3.6.4.3. Описание подпрограмм-функций. Функция яркости с поверхностью типа «плоскость».
- •Функция яркости с поверхностью типа «усеченная плоскость».
- •Функция яркости с поверхностью типа «дважды усеченная плоскость».
- •Функция яркости с поверхностью типа «эллипсоид вращения».
- •Функция яркости с поверхностью типа «эллиптический цилиндр».
- •Функция яркости с поверхностью типа «параболический цилиндр».
- •Функция яркости с поверхностью типа «однополостной гиперболоид».
- •Функция яркости с поверхностью типа «гиперболический параболоид».
- •Функция яркости с поверхностью типа «волнистая поверхность».
- •3.6.5. Процедура ввода параметров функций, участвующих в моделировании изображения.
- •3.6.5.1. Функциональное назначение.
- •3.6.5.2. Описание идентификаторов и назначения используемых переменных и массивов.
- •3.6.5.2.1. Вспомогательные переменные.
- •3.6.5.2.2. Выходные данные.
- •3.6.5.3. Описание логики.
- •3.6.6. Процедура формирования разностного изображения с помощью операции временного дифференцирования.
- •3.6.6.1. Функциональное назначение.
- •3.6.6.2. Описание идентификаторов переменных и массивов.
- •3.6.6.2.1. Входные данные.
- •3.6.6.2.2. Вспомогательные переменные.
- •3.6.6.2.3. Выходные данные.
- •3.6.6.3. Описание логики.
- •3.6.7. Процедура задания начальных значений.
- •3.6.7.1. Функциональное назначение.
- •3.6.7.2. Описание идентификаторов переменных и массивов.
- •3.6.7.2.1. Вспомогательные переменные.
- •3.6.7.2.2. Выходные данные.
- •3.6.7.3. Описание логики.
- •3.6.8. Процедура инициализации графического режима.
- •3.6.8.1. Функциональное назначение.
- •InitGraphMode.
- •3.6.8.2. Описание идентификаторов переменных и массивов.
- •3.6.8.2.1. Входные данные.
- •3.6.8.2.2. Вспомогательные переменные.
- •3.6.8.2.3. Выходные данные.
- •3.6.8.3. Описание логики.
- •3.6.9. Процедура распознавания.
- •3.6.9.1. Функциональное назначение.
- •3.6.9.2. Содержательная постановка задачи автоматического распознавания подвижных точечных объектов.
- •3.6.9.3. Описание алгоритмов распознавания подвижных точечных объектов.
- •3.6.9.3.1. Описание детерминированного алгоритма распознавания подвижных точечных объектов.
- •3.6.9.3.2. Описание вероятностного алгоритма распознавания подвижных точечных объектов.
- •3.6.9.3.3. Описание комбинированного алгоритма распознавания подвижных точечных объектов.
- •3.6.9.3.4. Описание вероятностного и комбинированного алгоритмов распознавания подвижных точечных объектов с усеченной выборкой.
- •3.6.9.4. Описание идентификаторов переменных и массивов.
- •3.6.9.4.1. Входные данные.
- •3.6.9.4.2. Вспомогательные переменные.
- •3.6.9.4.3. Выходные данные.
- •3.6.9.5. Описание логики.
- •3.6.10. Процедура определения массива направлений.
- •3.6.10.1. Функциональное назначение.
- •3.6.10.2. Выходные данные.
- •3.6.10.3. Описание логики.
2.6. Условия эксплуатации.
Данный программный продукт должен эксплуатироваться на ПЭВМ совместимых с IBM 386 SX и выше;
Операционная система - MS-DOS 6 и выше, или Windows 95;
Должны соблюдаться климатические и эргономические условия эксплуатации вычислительной техники;
Тип видеоадаптера - EGA и выше;
Свободная оперативная память - не менее 0.3 Mb;
Минимальное свободное пространство на жестком диске - 0.5 Mb.
3. Описание программного обеспечения.
3.1. Выбор языка программирования для реализации цифровой модели.
Язык программирования Pascal был разработан в 1968 - 1971 годах Никлаусом Виртом в Цюрихском Институте информатики (Швейцария). Первоначальная цель разработки языка диктовалась необходимостью инструмента «для обучения программированию как систематической дисциплине». Однако очень скоро обнаружилась чрезвычайная эффективность языка Pascal в самых разнообразных приложениях, от решения небольших задач численного характера до разработки сложных программных систем - компиляторов, баз данных, операционных систем и так далее. К настоящему времени Pascal принадлежит к группе наиболее распространенных и популярных в мире языков программирования. Существуют многочисленные реализации языка практически для всех машинных архитектур; разработаны десятки диалектов и проблемно-ориентированных расширений языка Pascal; обучение программированию и научно-технические публикации в значительной степени базируются на этом языке.
Существует ряд объективных причин, обусловивших выдающийся успех языка Pascal. Среди них в первую очередь необходимо указать следующие:
Язык в естественной и элегантной форме отразил важнейшие современные концепции технологии разработки программ: развитая система типов, ориентация на принципы структурного программирования, поддержка процесса пошаговой разработки.
Благодаря своей компактности, концептуальной целостности и ортогональности понятий, а так же удачному первоначальному описанию, предложенному автором языка, Pascal оказался весьма легок для изучения и освоения. В противоположность громоздким многотомным описаниям таких языков, как PL/I, Cobol, Fortran, достаточно полное описание языка Pascal занимает около 30 страниц текста, а его синтаксические правила можно разместить на одной странице.
Несмотря на относительную простоту языка, он оказался пригоден для весьма широкого спектра приложений, в том числе для разработки очень больших и сложных программ, например, операционных систем.
Pascal весьма технологичен для реализации практически для всех, в том числе и нетрадиционных, машинных архитектур. Утверждается, что разработка Pascal-транслятора «почти не превышает по трудоемкости хорошую дипломную работу выпускника ВУЗа». Благодаря этому для многих ЭВМ существует несколько различных реализаций языка, отражающих те или иные практические потребности программистов.
ßçûê Pascal стандартизован во многих странах. В 1983 году был пинят международный стандарт (ISO 7185:1983).
Рассмотрим основные особенности языка Pascal:
Pascal является традиционным алгоритмическим языком, продолжающим линию Algol-60. Это означает, что программа на языке Pascal представляет собой специально организованную последовательность шагов по преобразованию данных, приводящую к решению некоторой задачи. Это отличает Pascal от так называемых непроцедурных языков типа Prolog, по существу, представляющих собой формализмы для записи начальных условий некоторой задачи и синтезирующих решение посредством встроенных механизмов логического вывода.
ßçûê Pascal содержит удобные средства для представления данных. Развитая система типов позволяет адекватно описывать данные, подлежащие обработке, и конструировать структуры данных произвольной сложности. Pascal является типизированным языком, что означает фиксацию типов переменных при их описании, а также строгий контроль преобразований типов и контроль доступа к данным в соответствии с их типом (как на этапе компиляции, так и при исполнении программы).
Набор операторов языка Pascal отражает принципы структурного программирования и позволяет записывать достаточно сложные алгоритмы в компактной и элегантной форме. Кроме того Pascal является процедурным языком с традиционной блочной структурой и статически определенными областями действия имен. Процедурный механизм сочетает в себе простоту реализации и использования и гибкие средства параметризации.
Синтаксис языка достаточно несложен. Программы записываются в свободном формате, что позволяет сделать их наглядными и удобными для изучения.