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

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

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 15.08.2020
Размер файла 32,2 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Орловский государственный технический университет

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

Чудный Ю.П., Волков Д.В.

1. Основные алгоритмы

Основным численным методом, на котором базируется программный продукт - это нелинейная экспоненциальная аппроксимация [1,2]. Идея алгоритмизации метода заключается в том, что в цикле подсчитывается сумма ряда (группы) экспоненциального разложения (функций). Данный алгоритм реализуется в виде функции, которая подсчитывает сумму ряда для текущей итерации.

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

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

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

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

Введено собственно правила отображения из одного множества в другое: правило отображения абсцисс и правило отображения ординат. А также введено понятие коэффициента преобразования:

kx - пикселов на одну декартову точку по x,

ky - пикселов на одну декартову точку по y,

kx=(win_x2-win_x1)/abs(win_x2_decart-win_x1_decart),

ky=(win_y2-win_y1)/abs(win_y2_decart-win_y1_decart),

(ввод этих коэффициентов решает проблему масштабирования при отображении),

(win_x1,win_y1) - (win_x2,win_y2) - диагональ описывающая окно вывода,

(win_x1_decart,win_y1_decart) - (win_x2_decart,win_y2_decart) - диагональ описывающая прямоугольную область на декартовой плоскости .

Вычисления этих kx, ky тривиальным. В целом, получены и реализованы следующие формулы: outx = winx + (x-winx_decart)*kx; outy= winy - (y-winy_decart)*ky, где:

- winx_decart, winy_decart - декартовы координаты верхнего левого угла окна;

- winx - пиксельная координата x левого угла окна;

- winy - пиксельная координата у нижнего угла окна;

- x,y - декартовы координаты точки;

- outx, outy - полученные пиксельные координаты точки.

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

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

/Получаем шаг координатной разметки по Х в заданных пределах./

1. Шаг_по_х=максимальному числу;

2. Если(|win_x1|<максимальный_шаг_размерки_по_х) и

(|win_x2|<максимальный_шаг_размерки_по_х) то

максимальный_шаг_размерки_по_х=максимуму из win_x1_и _win_x1;

3. Пока(шаг_по_х*kx>максимальный_шаг_размерки_по_х) то

шаг_по_х:= шаг_по_х /10;

4. Пока(шаг_по_х*kx<минимальный_шаг_размерки_по_х) то

шаг_по_х:= шаг_по_х *10.

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

2. Разработка модульной структуры системы

Модульное программирование. Концепция модульного программирования, выдвинутая еще в середине 50-х годов (ассемблеры, ФОРТРАН), подверглась сильным изменениям в 70-е годы. Первоначально ставилась задача выделения относительно независимых фрагментов программ с целью организации разделения работ, повторного использования программного обеспечения (ПО), уменьшения затрат на повторную компиляцию и преодоления ограничений на размеры компилируемых программ. Связь модульности с независимой компиляцией привела к разделению всех объектов программы на множество внешних объектов, используемых для межмодульных связей, и множества внутренних объектов каждого модуля с распределением по этим множествам общей сложности программы [4].

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

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

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

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

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

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

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

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

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

3. Разработка структуры многооконного пользовательского интерфейса

При разработке структуры интерфейса в силу специфики моделирования

нелинейности возникла потребность учёта следующих требований к интерфейсам приложений:

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

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

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

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

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

При создании ПО в среде проектирования приложений Delphi использованы понятия модальной и немодальной формы [7]. Немодальная форма может быть открыта наряду с другими формами приложения, и в любой момент может быть осуществлен переход между немодальными формами. Такие окна используются для отображения уже введенной или имеющейся в распоряжении приложения информации. Немодальные формы необязательно закрывать при закрытии главной формы приложения, они ликвидируются средствами Windows API (Application Programmer Interface).

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

4. Структуры данных

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

y_type = record {тип - cтруктура значения оринаты}

value:real; {cамо значение}

existence:boolean; {признак существования этой ординаты}

end;

outs_element = record {структура точки многозначной функции}

x:real; {ордината этой точки или узла}

y:array [1..MaxLevel] of y_type; {cтруктура многозначной ординаты}

sigma:real; {такой параметр узла, если это узел}

A:real; {такой параметр узла, если это узел}

x_step:real; {такой параметр узла, если это узел}

y_step:real; {такой параметр узла, если это узел}

sigma_step:real; {шаг изменения параметра сигма, если это узел}

A_step:real; {шаг изменения параметра A, если это узел}

end;

window_type = record {тип структура окна, то есть текущей итерации}

level: integer; {уровень многозначности ординаты входного сигнала}

current_level: integer; {текущий уровень многозначности}

outs: array [1..MaxOutsElement] of outs_element; {слагаемые выходного сигнала}

quantity_index:integer; {количество элементов в массиве слагаемых outs}

current_index:integer; {номер текущей точки выходного сигнала}

scale_step_x:real;{шаг масштабирования по х в декартовых координатах}

scale_step_y:real; {шаг масштабирования по y в декартовых координатах}

win_x1_decart: real; {x-верхнего левого угла окна отображения в декартовых координатах}

win_y1_decart: real; {y-верхнего левого угла окна отображения в декартовых координатах}

win_x2_decart: real; {x-нижнего правого угла окна отображения в декартовых координатах}

win_y2_decart: real; {y-нижнего правого угла окна отображения в декартовых координатах}

win_step_x: real; {шаг перемещения окна по горизонтали}

win_step_y: real; {шаг перемещения окна по вертикали}

end; {конец описания типа}

В области описания глобальных переменных следующая структура:

{Массив окон процесса аппроксимации}

win: array [0..MaxIterations+1] of window_type;

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

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

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

Другие структуры являются простыми элементами, массивы отсутствуют.

Введем понятие OMC (SMS) - оболочка моделирования сигналов, а полное наименование определим как PSIMS - программная оболочка интерактивного моделирования сигналов.

Структура входного языка. Дисковые файлы могут быть созданы как ОМС, так и другой программой, работающей в реальном времени для чтения информационной последовательности сигнала из портов параллельного интерфейса. Сама ОМС не может, с достаточной точностью получать последовательность из портов параллельного интерфейса, так как в силу реальностей применения и практических обстоятельств выбрана её ориентация для работы под операционной системой Windows 95/ Windows NT v.4.0, которые не могут предоставить прикладной программе ресурсы для работы в реальном времени.

Для однозначной интерпретации информационного файла ОМС следует проверить принадлежность внешнего файла подмножеству файлов структуры ОМС. Для этого возможно ввести идентификационный признак файла, подобно множеству форматов файлов, которые существуют в настоящее время. Например, известная сигнатура исполнимых двоичных файлов типа .EXE - в начале файла присутствуют два байта, которые в ASCII кодировке представлены как `MZ' (Марк Зимбровски). Автор одной из первых версий MS-DOS решил так ввести идентификационный признак исполнимых файлов. буфер файл визуальный интерфейс

Расширение имени также может сообщить о принадлежности содержимого дискового файла тому или иному виду структуры. Так допустим файлы содержащие языковое описание входного сигнала имеют расширение имени .SIG - signal и также имеет смысловой заголовок «F: » или «f: », а вот файлы, описывающие процесс аппроксимации однозначно идентифицируются только по расширению имени .IMS и содержат структуру массива окон процесса аппроксимации: win: array [0..MaxIterations+1] of window_type в двоичном виде, то есть является нетекстовым и нечитабельным.

Хотя, конечно, можно анализировать структуру файла, а затем на основе выводов анализа составить однозначное заключение о возможности интерпретировать данную структуру для загрузки в область ОСМ хранения информации о сигнале. Метод анализа структуры файла требует разработки алгоритма гораздо большей сложности, чем для метода анализа идентификационного признака. Применение же идентификационного признака не вносит никакого неудобства для пользователя оболочки, а в данном случае имеет еще и информационную нагрузку. Поэтому можно сделать выбор в пользу проверки внешнего дискового файла, посредством идентификационного признака файла. Полагая, что идентификационной заголовочной сигнатурой будут три байта в символьном представлении - `OMC', находящиеся по смещению 0h, 1h и 2h соответственно от начала файла, а расширением имени также будет последовательность `OМС'.

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

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

Описание структуры дисковых файлов для хранения сигнала ОМС. Файл типа .ОМС содержит в первых трех байтах сигнатуру «F: » или «f: ». Затем после двоеточия следует натуральное число, которое описывает количество уровней сигнала, то есть уровень многозначности функции. Затем следует последовательность описаний точек, представляющая многозначное задание функции в виде абсциссы и нескольких ординат. Числа записываются в десятичной системе. Слева от точки `.' находятся целые, справа десятичные дробные. После числа, представляющего собой абсциссу следует двоеточие `:', которое информирует о том, что после абсциссы за двоеточием будут следовать ординаты. Разделителями ординат являются запятые и не какие другие символы. В случае, если для данной абсциссы отсутствует ордината какого либо порядка, то после соответствующей запятой следует другая, которая характеризует пропуск соответствующей ординаты. В случае, если пропускаемая ордината последняя в записи этой точки сигнала (имеет высший порядок), то после последней запятой обязательно должен следовать символ-разделитель. Между точками (координатами) сигнала должен присутствовать хотя бы один символ-разделитель (символ-разделитель может быть и не один). После сигнатуры файла .SIG также могут быть символы разделители. Символы-разделители являются байтами со значениями от 0 до 21h (управляющие и `пробел'). Допустим, это могут быть `пробелы' (20h), или символы возврата каретки и перевода строки (0Dh, 0Ah).

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

Так например, языковая последовательность в рабочем окне изображения сигнала может иметь вид:

f:3

0:0,1,3

1:1,,5

1.5:2,,

2:,5,6

2.6:,,8

3:,6,

3.3:,,9

3.5:,6,

4:3,5,

5:4,4.5,8

6:4,4.5,

7:,4.8,

8:,5.6,7

9:3.5,6,

10:3.5,6,

11:,5.5,5

12:0,4,5

5. Программная реализация

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

Объективные требования к средствам реализации разрабатываемой системы. При выборе инструментальных средств реализации разрабатываемой системы следует учитывать как цели создания и область применения приложения, так и общие тенденции на рынке программного обеспечения [8,9].

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

Операционная система Windows 95, сама будучи графической, предоставляет широкие возможности создания таких систем с удобным графическим интерфейсом. Одно из наиболее популярных средств разработки приложений Delphi 4.0 выбрано в качестве инструментального средства создания данной системы как наиболее надежный программный продукт. Из трех предлагаемых фирмой Borland модификаций Delphi: Desktop, Developer и Client-Server была выбрана первая, поскольку она содержит весь необходимый для создания данной системы инструментарий и позволит избежать лишних затрат, по сравнению с остальными более дорогими версиями.

В инженерно-техническом плане выбор среды Delphi 4.0 в качестве инструментального средства для разработки данной системы обусловлен тремя основными причинами:

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

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

- анализ современного рынка программных средств показывает вектор развития, направленный в сторону платформы Windows.

Современная инструментальная среда разработки приложений - Borland Delphi 4.0. Оценивая эволюцию инструментальных средств построения приложений, можно сделать несколько заключений. Появление инструментального средства построения приложений Borland Delphi не было случайным. Историю развития средств разработки программ показывает, что вначале была интеграция - в единой среде программисты получали редактор, компилятор и компоновщик. Примерами таких программ были компиляторы фирмы Borland - Turbo Pascal, Turbo C, Turbo C++ и многие продукты других фирм. Позже в эту среду был включен отладчик, что, впрочем, не исключало использование отдельного отладчика. Выпуск Windows 3.0 вызвал появление широкого интереса к разработке программ для этой Среды, и как следствие - необходимость в средствах разработки Windows-программ. Так появились первые компиляторы для Windows, первоначально не отличающиеся от своих DOS-«собратьев». Единственным отличием было использование многооконного интерфейса (MDI-интерфейс), который в скором времени начал применяться и в средах DOS-компиляторов.

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

Начало 90-х годов принесло новое направление - визуальное программирование. Каждая фирма, внесшая вклад в это направление, по-своему трактовала этот термин, но общим было одно программист постепенно освобождался от непосредственного написания кода и получал некоторое средство для визуального создания приложений. Наиболее известные средства визуального создания программ можно разделить на несколько типов. К первому относится популярный продукт фирмы Microsoft - Visual Basic, который базируется на интерпретаторе языка BASIC. Ко второму относятся продукты, базирующиеся на интерпретаторах p-кода. К таким средствам можно отнести Object Vision фирмы Borland - общепринято удачное средство для создания приложений типа клиент/сервер вообще без написания кода. К третьему типу отнесем интегрированные среды компиляторов C++ Borland и Visual C++ Microsoft. Оба продукта базируются на библиотеках классов и содержат средства для упрощения использования этих библиотек. Это вспомогательные средства, помогающие программистам связывать между собой классы, обработчики сообщений и фрагменты кода. Часто с помощью этих средств создаются практически полные приложения без написания кода. В каждой из перечисленных групп есть свои достоинства и ограничения. Например, Visual Basic при простоте написания Windows-приложения базируется на интерпретаторе, что существенно сказывается на производительности программ. Object Vision - удобное средство для создания приложений типа клиент/сервер различной степени сложности, которое доступно пользователям, практически не знакомым с принципами построения Windows-программ и вообще программированием. Но для расширения свойств этого продукта необходимо создание новых динамических библиотек (DLL) с использование C- или Pascal-компиляторов.

Модель визуального программирования в инструментальной среде Delphi. Delphi как попытка фирмы Borland объединить лучшее, что было создано на тему визуального программирования, в единый продукт - это не только новая версия компилятора языка Pascal (Borland Pascal 8.0), но и принципиально новый программный продукт, позволяющий создавать широкий спектр приложений для среды Microsoft Windows 95. Он объединяет в себе высокопроизводительный компилятор с языка Object Pascal (который является объектно-ориентированным расширением языка третьего поколения Pascal), средства наглядного (визуального) создания программ и масштабируемую технологию управления базами данных. Основное назначение Delphi - являться средством для быстрого создания широкого класса Windows-приложений, включая приложения, отвечающие технологии распределенной обработки данных, называемой технологией “клиент/сервер”.

Обоснование выбора Delphi для проектирования программной системы, в основном, определили следующие её особенности:

- высокопроизводительный компилятор. Имеющийся в составе Delphi компилятор с языка Object Pascal является одним из самых производительных в мире и позволяет компилировать приложения со скоростью 120 000 строк в минуту (350 000 строк в минуту для процессора Pentium 90 МГц).,

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

- объектно-ориентированная модель компонентов. Основным назначением примененной в Delphi модели компонентов является обеспечение возможности многократного использования компонентов и создание новых. Фактически для создания самого Delphi использовались те же компоненты, что входят в комплект поставки. Тем не менее нельзя не отметить, что внесенные в объектную модель изменения были вызваны необходимостью поддержки технологии визуального программирования. При этом язык остался совместимым с языком Pascal, поддерживаемым компилятором Borland Pascal 7.0,

- быстрая среда разработки (RAD). Среда Delphi содержит полный набор визуальных средств для быстрой разработки приложений, поддерживающих как создание пользовательских интерфейсов, так и обработку корпоративных данных (с использованием соответствующих дополнительных средств). Использование библиотеки визуальных компонентов (VCL) и визуальных объектов для работы с данными позволяет создавать приложения с минимальными затратами на непосредственное кодирование. При этом компоненты, включенные в состав Delphi, максимально инкапсулируют вызовы функций Windows API, тем самым облегчая процесс создания программ,

- масштабируемая ядро управления данными. Визуальные объекты для работы с данными используют SQL и полностью инкапсулируют все возможности Borland Database Engine. Помимо этого в Delphi встроена поддержка (на базе Borland SQL Links) доступа к Oracle, Sybase, Informix, InterBase. Для отладки приложений в комплект поставки входит локальный сервер InterBase,

- расширяемость. Delphi является системой с открытой архитектурой, что позволяет дополнять ее новыми средствами и переносить на различные платформы. Изначально выпущена версия Delphi для Windows 3.1. Затем, после выхода коммерческой версии Windows 95, в эксплуатации появится 32-битный вариант Delphi, который будет поддерживать создание приложений для Windows 95 и Windows NT,

- интегрированная среда Delphi содержит помимо стандартных составляющих (редактор, компилятор, компоновщик, отладчик, Help-система) также новые элементы: а) Редактор форм (form designer). Именно он позволяет визуально проектировать интерфейс с пользователем и задавать модель работы с базой данных; б) Инспектор объектов (Objeсt Inspector) дает возможность задавать различные свойства визуальных объектов, которые затруднены для задания в редакторе форм; в) Палитра компонентов (Component Palette) позволяет выбирать компоненты, которые будут лежать на редактируемой форме. Компоненты - это “строительные блоки”, из которых собирается Delphi-приложение, г) Просмотрщик иерархии классов (Browser) покажет дерево наследования классов, куда будут включены и все созданные пользователем классы; д) Палитра выравнивания (Alignment Palette) поможет эстетично расположить визуальные элементы на форме; е) Менеджер проектов (Project Manager) предназначен для администрирования проекта; ж) Редактор изображений (Image Editor) позволяет создать пиктограмму приложения или картинку на кнопку; з) Рабочий стол для баз данных (DataBase Desktop) необходим для просмотра и изменения содержимого таблиц различных баз данных (БД). С помощью этой утилиты можно задать, просмотреть, изменить структуру таблиц пользовательской БД. Утилита позволяет также спроектировать SQL-запрос и отработать его. Утилита окружения с базами данных (DataBase Engine) предоставляет возможности настроить алиасы (псевдонимы) баз данных. Настройка в основном состоит в задании национальных параметров базы, ее местоположения, драйверов для доступа.

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

Состав и характеристика подпрограмм.

Весь программный продукт представляет собой объект типа:

TMainForm = class(TForm), а все подпрограммы - это методы этого объекта.

Блок начальной инициализации и отображения элементов визуализации и управления.

{Подпрограмма начальной инициализации}

procedure TMainForm.Init(Sender: TObject);

{Подпрограмма обновления экрана и начальной обрисовки}

procedure TMainForm.Init_draw(Sender: TObject);

Блок завершения работы.

{Подпрограмма завершения работы программы}

procedure TMainForm.ExitBody(Sender: TObject);

{Подпрограмма закрытия рабочих файлов}

procedure TMainForm.CloseItemClick(Sender: TObject);

{Подпрограмма реакции на нажатие кнопки - Выход}

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);

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

{ Подпрограмма открытия файла }

procedure TMainForm.OpenItemClick(Sender: TObject);

{Подпрограмма чтения сигнала из файла}

function TMainForm.Read_signal(FileName: string):boolean;

Блок сохранения процесса аппроксимации.

{Подпрограмма сохранения процесса аппроксимации и заданной фунции}

procedure TMainForm.SaveAsItemClick(Sender: TObject);

{Подпрограмма реакции на выбор пункта меню - сохранить сигнал}

procedure TMainForm.SaveItemClick(Sender: TObject);

{Подпрограмма записывает текстовый буфер описания сигнала в .sig файл с именем}

procedure TMainForm.Save_sig_file(FileName:string);

Блок синтаксического анализа и интерпретации .

{Подпрограмма интерпрeтации информации из буфера}

function TMainForm.Interpreter:boolean;

Блок формирования информационной последовательности, описывающей сигнал .

{Подпрограмма реакции на выбор пункта меню - Новый}

procedure TMainForm.NewItemClick(Sender: TObject);

Блок работы с аппроксимирующей функцией.

{Подпрограмма перхода к новой интерпретации}

procedure TMainForm.to_new_iteration;

{Устанавливает декартовы координаты окна}

procedure TMainForm.set_coordinate;

{ Устанавливает параметр к для масштабирования }

procedure TMainForm.set_k;

{Подпрограмма обрабатывающая передвижение мыши}

procedure TMainForm.FormMouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

{ Подпрограмма перевода декартовых координат в координаты для окна отображения

winx_decart,winy_decart - декартовы координаты вернего левого угла окна

winx - пиксельная координата x левого угла окна

winy - пиксельная координата у нужнего угла окна

x,y - декартовы коордитаны точки

outx,outy - полученные пиксельные координаты точки }

procedure word_to_device(winx_decart,winy_decart:real; winx,winy:integer; x,y:real;var outx,outy:integer);

{Подпрограмма рисования утопленного окна}

procedure TMainForm.Draw_window(x1,y1,x2,y2:integer);

{Подпрограмма рисует линюю заданным цветом}

procedure TMainForm.line(x1,y1,x2,y2,color,bcolor:integer);

{ Подпрограмма для рисования разметки вокруг заданного окна.

w_x1,w_y1,w_x2,w_y2 - координаты отображаемого окна в пикселях;

x1,y1,x2,y2 - декартовы координаты отображаемого окна. }

procedure TMainForm.plot_markingout(w_x1,w_y1,w_x2,w_y2:integer; x1,y1,x2,y2:real);

{ Подпрограмма рисует линюю заданным цветом в окне вывода по алгоритму Брезинхема }

procedure TMainForm.Line_bresenham ( x1,y1,x2,y2,color: integer );

{ Подпрограмма рисует линюю заданным цветом в окне вывода по алгоритму Брезинхема }

procedure TMainForm.Draw_Signal;

{Подпрограмма отображает значение ошибки}

procedure TMainForm.Draw_Signal_Mistake;

{Подпрограмма увеличивает изображение в окнах}

procedure TMainForm.SpeedButtonIncScaleClick(Sender: TObject);

{Подпрограмма уменьшает изображение в окнах}

procedure TMainForm.SpeedButtonDecScaleClick(Sender: TObject);

{Подпрограмма задает опримальные границы окна в декартовых координатах}

procedure TMainForm.SpeedButtonAutoScaleClick(Sender: TObject);

{Подпрограмма обработки ввода коэффициента масштабирования по y}

procedure TMainForm.EditScale_step_yChange(Sender: TObject);

{Подпрограмма обработки ввода шага приращения окон по х}

procedure TMainForm.EditWin_step_xChange(Sender: TObject);

{Подпрограмма обработки ввода шага приращения окон по y}

procedure TMainForm.EditWin_step_yChange(Sender: TObject);

{Подпрограмма перемещает окно отображения вверх по декартовой плоскости}

procedure TMainForm.SpeedButtonUpClick(Sender: TObject);

{Подпрограмма перемещает окно отображения вниз по декартовой плоскости}

procedure TMainForm.SpeedButtonDownClick(Sender: TObject);

{Подпрограмма перемещает окно отображения влево по декартовой плоскости}

procedure TMainForm.SpeedButtonLeftClick(Sender: TObject);

{Подпрограмма перемещает окно отображения вправо по декартовой плоскости}

procedure TMainForm.SpeedButtonRightClick(Sender: TObject);

{Подпрограмма переходит к предыдущему сигналу текущей последовательности}

procedure TMainForm.SpinButtonLevelDownClick(Sender: TObject);

{Подпрограмма переходит к следующему сигналу текущей последовательности}

procedure TMainForm.SpinButtonLevelUpClick(Sender: TObject);

{Подрограмма реакции на завершение редактирования параметра X}

procedure TMainForm.EditXChange(Sender: TObject);

{Подрограмма реакции на завершение редактирования параметра Sigma}

procedure TMainForm.EditSigmaChange(Sender: TObject);

{Подрограмма реакции на завершение редактирования параметра Sigma}

procedure TMainForm.EditAChange(Sender: TObject);

{Подпрограмма добавления еще одного элемента к последовательности узлов}

procedure TMainForm.ButtonAddKnotClick(Sender: TObject);

{Подпрограмма переходит к предыдущему узлу, если от есть}

procedure TMainForm.SpinButtonKnotDownClick(Sender: TObject);

{Подпрограмма переходит к следующему узлу, если от есть}

procedure TMainForm.SpinButtonKnotUpClick(Sender: TObject);

{ Вычисляем и отображаем значение G(x) }

procedure TMainForm.Draw_Exp;

{Функция по значению аргумента возвращает сумму заданного экспоненциального ряда}

function TMainForm.Calc_exp(x:real):real;

{Переходим к следующей итерации}

procedure TMainForm.ButtonToNewIterationClick(Sender: TObject);

5.3. Параметры программной системы.

Система PSIMS занимает объем около 400 Кбайт без встроенной документации, функционирует в любой Win32-системе при минимальном составе DX386-компьютера с 8 мегабайтами оперативной памяти, VGA-видеоплатой, одним мегабайтом дискового пространства и с установленной системой Windows 9х.

Основные результаты.

В предложенной работе:

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

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

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

- разработаны основные алгоритмы работы с процессами аппроксимации;

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

- разработаны общие требования к подсистеме пользовательского интерфейса;

- выбрано эффективное средство создания программной части - среда быстрой разработки приложений Borland Delphi 4.0 Standard;

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

Литература

1. Раков В.И. Метод нелинейных приближений для интерактивной аппроксимации. // Сооруж., констр., технология и строит. матер. ХХI века: Сб. докл. II Межд. науч.-прак. конф. - Белгород: БелГТАСМ, 1999. - Ч.3. - С.243 - 247.

2. Волков Д.В. Операционная среда программной системы интерактивного моделирования сигналов // Сооружения, конструкции, технология и строительные материалы ХХI века: Сб. Докл. II Межд. науч.-прак. конф. - Белгород: БелГТАСМ, 1999.- Ч.3. - С.138 - 142.

3. Боэм Б. Инженерное проектирование программного обеспечения. - М.: Радио и связь, 1985. - 140 с.

4. Марков А.С., Милов М.П., Пеледов Г.В. Программное обеспечение ЭВМ. - М.: Высш. шк., 1990. - 127 с.

5. Федоров А. Создание Windows- приложений в среде Delphi. - М.: Компьютер-Пресс, 1995. - 288 с.

6. Буч Г. Объектно-ориентированное проектирование. - М.: Радио и связь, 1993. - 443 с.

7. Дантеман Д. Программирование в среде Delphi. - Киев: DiaSoft Ltd., 1995. - 608 с.

8. Сахал Д. Технический прогресс: концепции, модели, оценки. - М.: Финансы и статистика, 1992. - 67 с.

9. Липаев В.В. Управление разработкой программных средств: методы, стандарты, технология. - М.: Финансы и статистика, 1993. - 160 с.

Размещено на Allbest.ru

...

Подобные документы

  • Проектирование и создание пользовательского интерфейса и визуального программирования в среде Delphi. Система управления базой данных. Локальные и глобальное пользовательские представления. Анализ предметной области. Назначение форм и компонентов.

    курсовая работа [758,0 K], добавлен 07.03.2014

  • Разработка программы по оформлению заказов на билеты Оренбургского государственного областного драматического театра им. Горького. Использование объектно-ориентированного программирования и реализация проекта в среде визуального программирования Delphi 7.

    курсовая работа [6,3 M], добавлен 12.11.2014

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

    курсовая работа [782,0 K], добавлен 16.02.2015

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

    курсовая работа [476,6 K], добавлен 22.05.2012

  • Разработка программы для работы в операционных системах семейства Windows. Использование среды Delphi - современной технологии визуального проектирования. Создание пользовательского интерфейса, оконного приложения, меню; задание исходной матрицы.

    курсовая работа [1,5 M], добавлен 12.01.2011

  • Разработка сайта для хранения и обработки информации об абитуриентах в среде программирования Delphi 7. Архитектура базы данных. Функциональная схема программы. Даталогическая модель данных. Сущности БД и архива. Элементы пользовательского интерфейса.

    дипломная работа [4,2 M], добавлен 30.03.2015

  • Анализ исходных данных. Определение структуры модуля для работы файлом. Разработка объектно-ориентированного приложения, использующего массив объектов, в среде Delphi. Модульная структура программного комплекса. Процедура сортировки методом вставки.

    курсовая работа [2,2 M], добавлен 20.09.2014

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

    курсовая работа [2,1 M], добавлен 21.01.2013

  • Разработка визуального интерфейса пользователя, на основе экранных форм среды Delphi и визуальных компонент. Основные типы данных, используемые в программе MD 5 Calc. Однонаправленные хэш-функции. Процесс хэширования MD5, возможности его применения.

    курсовая работа [433,1 K], добавлен 28.08.2012

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

    курсовая работа [506,5 K], добавлен 21.02.2011

  • Организация работы в среде визуального программирования Delphi. Настройка, конфигурация и главное окно формы. Модификация формы, свойств и событий. Пиктографические кнопки, палитра компонентов, окно инспектора объектов. Процесс построения приложения.

    реферат [40,3 K], добавлен 23.01.2011

  • Разработка программы генератора звука в среде Borland Delphi с использованием стандартных классов TMemoryStream (для хранения звука в виде бинарных данных) и TStrings (для хранения характеристик конкретной частоты). Запись звука в файл (форматы).

    курсовая работа [160,5 K], добавлен 22.11.2014

  • Методы грамматического разбора. Разработка структуры учебного транслятора на базовом языке программирования Object Pascal в среде объектно-ориентированного визуального программирования Borland DELPHI 6.0 с использованием операционной системы Windows XP.

    курсовая работа [493,8 K], добавлен 12.05.2013

  • Описания объектов, свойств, методов, формы и основных модулей текста программы в среде Delphi. Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования. Анализ результатов тестирования программного продукта.

    курсовая работа [2,4 M], добавлен 27.08.2012

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

    реферат [21,0 K], добавлен 13.01.2015

  • Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.

    контрольная работа [703,8 K], добавлен 24.09.2012

  • Ознакомление с историей создания и особенностями объектно-ориентированного языка программирования Delphi. Разработка приложения, фиксирующего количество повторений какого-либо слова в тексте, введённом в поле MEMO. Описание интерфейса программы.

    курсовая работа [880,1 K], добавлен 21.04.2015

  • Входные и выходные данные программы. Выбор языка программирования. Рабочая среда Delphi 7. Правила игры "Кости". Разработка пользовательского интерфейса. Экономическое обоснование программного продукта. Расчет расходов на содержание и эксплуатацию.

    дипломная работа [960,6 K], добавлен 07.02.2016

  • Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования Delphi, которое, как планируется, будет обеспечивать решение специализированных задач по формированию, обработке на ЭВМ и выводу информации.

    курсовая работа [967,6 K], добавлен 20.05.2008

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

    курсовая работа [1,6 M], добавлен 13.11.2012

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.