Визуализация инженерных и научных расчетов
Анализ средств визуализации. Разработка программы-расширения для визуализатора инженерных и научных расчетов Compaq Array Visualizer на языке Фортран. Оценка экономической эффективности и конкурентоспособности созданного программного обеспечения на рынке.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 10.09.2010 |
Размер файла | 335,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Государственный комитет РФ по высшему образованию.
Московский Государственный Институт Электронной Техники (Технический Университет).
Факультет ЭКТ.
Кафедра ПКИМС.
Пояснительная записка к
Дипломному Проекту
на тему
«Визуализация инженерных и научных расчетов»
Москва 2002г.
Оглавление
Введение
Раздел 1. Специальный раздел. Создание средств визуализации научных и инженерных расчетов.
Введение
1.1 Обзор средств визуализации расчетов
1.2 Описание визуализатора Compaq Array Visualizer
1.3 Описание библиотеки Array Visualizer
1.4 Разработка программы визуализации
1.5 Работа программы визуализации
1.6 Описание интерфейса между программой визуализации и прикладной инженерной программой.
1.7 Тестирование программы и результаты тестовых расчетов.
Заключение
Раздел 2. Технологический раздел. Технология создания программного обеспечения для визуализации.
Введение.
2.1 Этапы разработки программного обеспечения для визуализации инженерных расчетов.
2.2 Постановка задачи.
2.3 Создание структуры данных и интерфейса с расчетной программой.
2.4 Построение математической модели отображаемой информации.
2.4.1 Использование готовых библиотек.
2.4.2 Построение собственных математических моделей.
2.5. Создание интерфейса пользователя.
Заключение.
Раздел 3. Организационно-экономический раздел. Оценка целесообразности создания ПО с применением методики оценки конкурентоспособности.
Введение
3.1 Понятие конкурентоспособности.
3.2 Оценка конкурентоспособности.
Заключение.
Раздел 4. Производственно-экологическая безопасность и охрана труда. Анализ нормативных документов при работе с ПК.
Введение
4.1 Требования к производственному освещению
4.2 Защита от излучений
4.3 Электробезопасность
4.4 Пожарная безопасность
4.5 Защита от шума и вибраций.
4.6 Психофизические опасные и вредные производственные факторы.
4.7 Расчет воздухообмена.
Заключение
Литература ПЭБ
Выводы по дипломному проекту.
Используемая литература.
Приложение 1. Листинг программы console.
Введение
Язык Фортран - является одним из первых языков высокого уровня. Изначально он предназначался для инженерных и научных прикладных задач. С его помощью написано множество программ расчетов, решений уравнений и матричных преобразований. Этот язык предоставляет мощные математические средства не только при работе с действительными числами, но при работе с комплексными числами. По этой причине многие инженеры и ученые имеют свои библиотеки программ и подпрограмм на Фортране для решения своих задач. Помимо этого Фортран не стоял все эти годы на месте, а развивался (первая версия языка - Фортран-56, далее Фортран-77 и последняя Фортран-90 разработанная в 1993 году). Однако не смотря на развитие язык остается достаточно бедным в планах графического вывода и организации интерфейса пользователя. Для решения таких вопросов компании выпускающие компиляторы Фортрана создают для него свои графические библиотеки и визуализаторы. Наиболее современной версией Фортрана является Compaq Visual Fortran v.6.6. А визуализатором этой среды программирования является отдельный пакет Compaq Array Visualizer v1.5.
На производственной и преддипломной практике мне была поставлена задача изучить язык программирования Фортран и возможности визуализатора Compaq Array Visualizer и написать расширение возможностей этого пакета, для его настройки под специфические нужды разработчиков инженерных программ для моделирования работы полупроводниковых приборов. Изначально такое расширение проектировалось как библиотека подпрограмм Фортрана, но в последствии я пришел к выводу, что выгоднее и удобнее седлать отдельную программу. К тому же отдельная программа проектировалась как способная воспринимать не только результаты Фортран-программ, но и результаты C++, Pascal программ.
Второй задачей на дипломный проект было изучение и составление технологии создания визуализаторов. В Разделе 2 представлены этапы разработки программ и их подробное описание.
В организационно-экономическом разделе будет рассмотрена методика оценки конкурентоспосбоности и ее применение к системам и программам визуализации включая созданное программное обеспечение.
В производственно-экологическом разделе рассмотрены нормативы и нормативные документы при работе с персональными компьютерами. Рассмотрены вопросы освещения, защиты от излучений, электро- и пожаробезопасности, защиты от шума и вибрации, психофизические опасные и вредные факторы. Произведен расчет воздухообмена производственного помещения.
В приложении приведен листинг разработанной программы. Комментарии к нему и описание работы с программой приведены в специальном разделе.
Раздел 1. Специальный раздел. Создание средств визуализации научных и инженерных расчетов.
Введение
В наше время невозможно представить себе процесс проектирования без вывода результатов расчетов в графическом виде. Такой вид отображения гораздо более нагляден и удобен чем алфавитно-цифровой. Последние версии всех САПР имеют такую возможность. Но если прибор моделируется не в рамках какой-либо САПР, а собственной программой инженера, то вывод приходится организовывать самому. Работа с графикой, к тому же трехмерной очень сложна и требует специальных навыков, а так же времени создания таких подпрограмм и их тестирования и отладки.
Разрешить эту проблему помогают различные пакеты для графического отображения данных. Одним из таких пакетов является Compaq Array Visualizer v1.5.(далее AV) Этот пакет удобен в использовании. К тому же имеет ряд преимуществ по быстродействию на слабых машинах (тестирование производилось на P166 с 32Mb ОЗУ) и, в тоже время может работать и с последними технологиями в графических системах, такими как OpenGL.
Однако AV имеет достаточно сложный и развитый API для передачи данных из программы. Это опять же приводит к задаче изучения дополнительных функций. Целью данной дипломной работы является создание программы, использующей AV и данные программы инженера, позволяющее более просто, без дополнительного обучения, просматривать результаты в AV, т.е. организация более простого интерфейса между рассчитывающей программой и графическим пакетом.
К тому же моделирование может иметь много шагов и требовать просмотра полученных данных в разных представлениях. Таким образом созданная программа должна уметь запоминать все шаги и представлять графической оболочке те данные, которые в данный момент необходимы инженеру.
1.1 Обзор средств визуализации инженерных и научных расчетов
Использование вычислительной техники для визуализации и анализа научных данных стало уже традиционным. Это вполне естественно, ведь с задачей наглядного представления и анализа больших массивов числовой информации сталкиваются во многих областях. Это моделирование, обработка результатов экспериментов, анализ данных дистанционного зондирования, решении различных инженерных задач. Многим ученым, студентам и инженерам часто приходится иметь дело с двумерными наборами чисел. Такими наборами могут являться как результаты численного моделирования, так и данные, полученные с различных приборов. Отдельным практически важным примером таких данных являются цифровые изображения. Для получения, обработки и визуализации этих данных на компьютере требуется специальное программное обеспечение.
На сегодняшний день существует довольно большое количество средств обработки и визуализации научных данных, предназначенных для работы под операционными системами семейства UNIX, однако в своем абсолютном большинстве такие программы имеют весьма недружелюбный интерфейс. Несмотря на то, что работа с UNIX - системами очень распространена в научном сообществе, стремление современных пользователей переходить на дружелюбный и интуитивный интерфейс Windows очевидно. Быстрые темпы развития персональных компьютеров обуславливают переход все большего числа ученых и студентов именно на эти системы.
Задача обработки двумерных данных несомненно шире задачи обработки изображений. Трактуя данные в зависимости от их природы различным способом, например как алгебраические матрицы или z=F(x,y), мы можем применять к ним ряд методов алгебры, анализа, математической статистики, решать дифференциальные и интегральные уравнения. Для этих целей можно использовать системы инженерных вычислений. Наиболее мощной из распространенных систем такого рода можно назвать MatLab (http://www.mathworks.com/). У указанных систем есть два ограничения: это низкая скорость, с которой подобные системы ведут свои вычисления, и необходимость писать программу на специализированном внутреннем языке. Написание программы в свою очередь требует не только специальной подготовки, но и довольно большого времени на ее разработку и отладку. Когда же необходимо просто проверить возникшую идею, подготовить промежуточный результат или быстро оформить какую либо несложную работу, желательно иметь более специализированные и мобильные средства.
Более мобильным, но менее функциональным средством является популярный пакет MathCad (http://www.mathsoft.com/).
Он позволяет пользователю проводить достаточно сложные математические расчеты, обрабатывать и визуализировать различные числовые данные и даже писать простые программы на встроенном алгоритмическом языке. Слабость MatCad, в применении к работе с двумерными данными состоит в недостаточно удобных средствах визуализации, низкой скорости, а соответственно в плохой приспособленности к работе с большими объемами информации.
Визуализация двумерных экспериментальных данных часто рассматривается как отдельная задача. Такие данные обычно представляют в виде изображений или поверхностей в перспективной проекции. Описанные выше программы позволяют с определенными ограничениями производить такую визуализацию. Однако для ряда приложений более полезными и удобными оказываются другие системы. Например, во многих науках о Земле возникает задача построения цифровой модели той или иной поверхности, заданной лишь в нескольких точках. При помощи методов интерполяции такие данные переводятся в двумерные наборы чисел - строится так называемая цифровая модель поверхности. Визуально такую поверхность часто представляют либо в виде трехмерного изображения, либо в виде линий уровней. Для решения подобных задач наибольшее распространение получил пакет Surfer (http://www.goldensoftware.com/), который благодаря своей компактности и удобству завоевал симпатии многих исследователей. Основным назначением Surfer является обработка и визуализация двухмерных наборов данных, описываемых функцией типа z=F(x,y) Пакет позволяет строить цифровую модель поверхности, выполнять ряд вспомогательных операций с этой моделью и визуализировать данные различными способами.
Российская программа 3DField (field.hypermart.net) имеет аналогичное предназначение, однако меньший набор доступных средств и при этом обладает более приятным интерфейсом. Другая система научной графики TecPlot (http://www.amtec.com/) , имеет широкие возможности визуализации различных (не только двумерных) данных. В частности, система позволяет строить поверхности, векторные поля, визуализировать объекты, заданные в виде конечных элементов. К сожалению, при всех своих достоинствах она имеет явно перегруженный интерфейс. При всей красоте этих систем, следует заметить, что они более полезны для подготовки к печати статьи или отчета, нежели для повседневной работы исследователя. Но работу по представлению данных в виде, готовом для печати, эти системы выполняют на высоком уровне. К сожалению, такие программы рассчитаны на сравнительно небольшие объемы данных, что ограничивает область их применения.
Стоит также упомянуть о такой программе как Origin - она используется для визуализации различных инженерных расчетов, в том числе и расчетов в микроэлектронике.
Хотя в области микроэлектронных технологий большую популярность имеют визуализаторы, интегрированные в САПР для ИМС, такие как Cadence, ISE, но все-таки инженеры часто используют свои программы для моделирования приборов и возникает необходимость в визуализаторах их расчетов. В этом случае можно помимо вышеназванного Origin упомянуть о пакете фирмы Compaq - Array Visualizer. Этот пакет хорош тем, что может быть как интегрированным в среду разработки программ Visual Studio и работать с такими языками как Visual Basic, Visual C++, Compaq Visual Fortran (CVF), так и быть отдельной программой. Помимо этого он включает ActiveX-компоненты, которые могут быть использованы для WIN32 приложений.
Помимо этих - WINDOWS-пакетов, есть еще DOS-пакеты, например Mapple. Так как он является приложением DOS, то имеет недружелюбный интерфейс, однако является достаточно мощным.
Кроме вышеназванных пакетов и программ есть еще множество других средств для визуализации инженерных и научных расчетов - от сложных и универсальных, до простых, узкоспециальных. Но для своих специфических применений разработчики отдельных подсистем САПР разрабатывают свои пакеты или покупают и настраивают уже существующие стандартные пакеты.
1.2 Описание визуализатора Compaq Array Visulizer.
Array Visualizer (AV) фирмы Compaq позволяет наблюдать как данные числовых массивов, так и их графическое представление. AV содержит в качестве ядра графическую библиотеку OpenGL процедуры которой обеспечивают графический вывод. Дополнительно AV позволяет манипулировать графическими данными, предоставляя возможности для перемещения, поворота и масштабирования изображения, а также для изменения способа его представления на экране. AV содержит:
1. автономно запускаемое приложение, выполняющее отображение данных
2. библиотеку Aview процедур, вызываемых из приложений Фортрана и предназначенных для управления ОМ
3. ActiveX-процедуры библиотек Avis2D и AvisGrid
4. дополнительные визуальные средства
Массив, переданный AV, отображается в двух видах:
1. в виде числовой таблицы, выводимой в верхней части окна AV
2. в графическом виде как трехмерное изображение (3D-вид), или как цветовая карта, или как векторные граф, или как рисунок на плоскости.
Процедуры библиотеки Aview позволяют приложениям CVF или Visual C++ отображать (посредством OLE-автоматизации) данные массива, применяя AV. Также данные массива можно сохранить в виде файла, который загружается в AV в процессе его автономного использования.
ActiveX-процедуры (OCX) библиотек Avis2D и AvisGrid могут быть использованы любой поддерживающей автоматизацию средой, например Visual C++, Visual Basic или CVF, для отображения массивов в разнообразных графических видах. Процедуры Avis2D обеспечивают при выполнении графического вывода более 100 свойств, методов и событий; процедуры AvisGrid применяются для создания представляющих массивы таблиц и предоставляют около 30 свойств, методов и событий.
Возможны несколько вариантов употребления AV. Они, а также присущие им преимущества и недостатки перечислены в следующей таблице:
Вариант |
Преимущества |
Недостатки |
|
Загрузка agl-файла, созданного ранее выполненным приложением |
Не требует написания специального кода для вызова AV |
Нет возможности автоматизировать изменение отображаемых данных |
|
Использование отладчика CVF |
Не требует написания специального кода, работает с проектом любого типа |
Требует ручного задания свойств массива и настройки AV; не может быть использован в Visual C++ или Visual Basic, а также в Release-режиме CVF. |
|
Использование fagl-подпрограмм или в случае С - agl-функций |
Небольшое число процедур и , следовательно небольшие затраты на программирование, процедуры работают с проектами любого типа и в Debug-, и в Release-режиме. |
Требует ручного задания свойств массива и настройки AV |
|
Использование fagl- и fav- подпрограмм или в случае C++ - agl-функций и функций класса CAViewer. |
Можно программно задавать свойства массива и выполнять настройки AV; процедуры работают с проектами любого типа; последовательно в одном экземпляре AV можно отображать несколько массивов. |
Потребуется освоить большое число процедур (более 100); функции класса CAViewer нельзя применять в C (необходим C++). |
|
Использование ActiveX-процедур библиотек Avis2D и/или AvisGrid |
Дает возможность выводить создаваемые AV графические образы и таблицы данных без вызова AV; обеспечивает более быстрое |
Употребляется только в Windows-приложениях Фортрана или MFC в случае Visual C++. Заметим, что в Visual Basic большинство |
|
Воспроизведение образов и больше возможностей для настройки параметров |
EXE-проектов могут использовать процедуры библиотек Avis2D и AvisGrid; потребуется освоить большое число Avis2D/AvisGrid-процедур; Avis2D и AvisGrid процедуры не могут отображать HDF и текстовые файлы. |
Отображение массивов.
Массивы отображаются в следующих видах:
1) 3-D вид или Height Plot (рис 1):
рис 1.
1. Растровая карта (контрастная заливка) или Image Map(рис 2):
рис 2.
2.
Векторный граф, или Vector Graph. (В данной работе не используется).
рис. 3
3. График или Plane View (рис 3):
Перечисленные режимы могут быть заданы как в AV непосредственно, так и в программе, из которой AV запускается. В AV переключение режима выполняется либо из меню, либо в результате выбора соответствующей иконки.
Для вращения изображения достаточно разместить мышь на поле графического вывода, нажать левую кнопку мыши и затем, оставаясь на поле вывода, перемещать мышь в произвольном направлении.
1.3 Описание библиотеки функций Array Visualizer.
Ввиду сложности создания Windows-приложений, а также того, что ActiveX-компонента Avis2D не корректно отображает одномерные массивы было решено использовать непосредственно оболочку Array Viewer в совокупности с программой, расширяющей его возможности, а так же служащей более простым интерфейсом между программой инженера и AV. Для создания программы был применен подход с использованием fagl- и fav- процедур. Программа писалась на языке CVF v6.5.
Опишем процедуры API AV, встраивание которых в приложение позволяет запускать AV, передавать ему массив, управлять изображением.
FAGL - подпрограммы.
Синтаксис подпрограммы |
Описание |
|
faglClose(array,status) |
Закрывает экземпляр AV. Если затем возникает потребность отобразить массив array снова, то достаточно вызвать лишь faglShow; вызова faglStartWatch выполнять не нужно |
|
faglEndWatch (array, status) |
Удаляет массив array из списка отображаемых массивов и освобождает ресурсы, связанные с array и используемые подпрограммами библиотеки. |
|
faglGetShareName (array, filename, status) |
Строка filename, возвращаемая этой подпрограммой, может быть передана процедурам Avis2D и AvisGrid как свойство FileName. |
|
faglHide(array, status) |
Делает экземпляр AV невидимым. Экземпляр AV станет видимым, если затем вызвать faglShow. Однако если экземпляр AV создан посредством favStartViewer, то вместо faglShow следует употреблять favShowWindow |
|
faglLBound (array, lbnd, status) |
Устанавливает левые границы измерений отображаемого массива в видах Data или Graph Views AV. По умолчанию массив отображается с границами, равными единице. |
|
faglSaveAsFile (array, filename, status) |
Сохраняет текущий массив в файле с расширением AGL. Такой файл может быть загружен и отображен в AV. |
|
faglShow (array, |
Создает экземпляр AV и отображает данные |
|
status) |
массива array. Так же делает экземпляр AV видимым. |
|
faglStartWatch (array, status) |
Добавляет массив array в список отображаемых массивов и возвращает дескриптор hv, который используется для доступа к массиву другими подпрограммами библиотеки. Фактически faglStartWatch использует системные ресурсы для приведения array к виду, необходимому для faglShow. Чтобы освободить эти ресурсы, следует вызвать faglEndWatch. |
|
FaglUpdate(array, status) |
Приводит в соответствие изображение с данными, хранящимися в массиве array. Употребляется, если приложение изменило отображаемый массив array с момента последнего вызова faglUpdate или faglShow и если есть необходимость обновить изображение. Если же экземпляр AV ассоциируется с массивом, созданным favStartViewer, а не faglShow, то вместо faglUpdate нужно вызвать favUpdate. |
Параметры fagl подпрограмм:
Имя |
Смысл/вид |
Тип. |
|
array |
Имя отображаемого массива / входной |
Числовой |
|
status |
Статус вызова fagl-подпрограммы. В случае успеха равен нулю/ выходной |
integer(4) |
|
filename |
Строка, возвращаемая faglGetShareName/ выходной |
CHARACTER(*) |
|
filename |
Имя файла без расширения, если файл пишется в директорию, из которой вызвано приложение, либо полное имя файла / входной. |
CHARACTER(*) |
|
lbnd |
Массив ранга 1, размер которого равен рангу отображаемого массива / выходной |
INTEGER(4) |
|
title |
Строка, отображаемая в заголовке экземпляра AV / входной |
CHARACTER(*) |
Для вызова приведенных выше подпрограмм в использующем их программном компоненте следует выполнить ссылку:
Use avdef ! Ссылка на модуль avdef.f90
Модуль AVDEF содержит интерфейсы fagl-подпрограмм.
Перечисленные подпрограммы обычно используются следующим образом:
1. до отображения массива array вызовите faglStartWatch с параметром array;
2. если необходимо отображать массив, имея нижнюю левую границу, отличную от единицы, примените faglLBound;
3. для отображения сообщения, сопровождающего выводимые данные, вызовите faglName;
4. для запуска AV и отображения массива array вызовите faglShow с первым параметром, равным array. AV будет функционировать до тех пор, пока не выполнена команда faglClose;
5. если хранимые массивом данные подверглись изменениям, то для их отображения вызовите faglClose;
6. для сохранения массива array в виде файла с расширением AGL (Array Graphing Language) вызовите faglSaveAsFile, использовав array в качестве первого параметра. При этом AV может быть некактивным;
7. при необходимости можно вызвать faglGetShareName и получить строку filename, позволяющую процедурам Avis2D и AvisGrid осуществлять доступ к памяти, занятой массивом.
8. после завершения просмотра массива вызовите faglEndWatch.
Для массивов отображаемых в AV рекомендуется использовать атрибут !DEC$ATTRIBUTES array_visualizer :: array. Действие этого атрибута таково: память, занимаемая массивом array, используется и AV и приложением. При отсутствии атрибута будут созданы две области данных array и при каждом обновлении массива после вызова faglUpdate данные будут копироваться из области, принадлежащей приложению, в область, используемую AV.
Заметим, что DEC-атрибут ARRAY_VISUALIZER может быть применен только с динамическими объектами, т.е. объектами, обладающими атрибутом PIONTER или ALLOCATABLE.
FAV - подпрограммы.
Fav - подпрограммы управляют AV и обеспечивают взаимодействие AV с приложением. Как правило, fav- и fagl- подпрограммы используются совместно. Fav - подпрограммы подразделяются на группы, имеющие названия:
· запуск AV
· доступ к данным
· зона вывода
· фильтрация данных
· палитра
· оси координат
· выбор
· виды изображений
· 3D вид
· растровая карта
· векторный граф
· отображение данных
· камера
· маркер
· разное
Работа с fav-подпрограммами станет возможной после выполнения ссылки:
Use avviewer
в которой модуль AVVIEWER содержит интерфейсы и константы подпрограмм.
Поскольку fav - подпрограмм очень много (более 100), приведем описание только тех из них, которые используются в программе.
Подпрограмма |
Что выполняет |
|
Запуск AV |
||
favStartViewer |
Запускает экземпляр AV |
|
favEndViewer |
Завершает работу экземпляра AV |
|
Доступ к данным |
||
favSetArray |
Загружает в AV заданный массив |
Фильтрация данных |
||
favUpdate |
Вызывается, когда нужно обновить изображение, созданное AV, чтобы отобразить изменения, произошедшие с момента последнего обновления данных или начальной загрузки. |
|
Оси координат |
||
favSetDimScale |
Ассоциирует ось координат с массивом, содержащим разметку оси. |
|
favSetUseAxisLabel |
Включает/отключает вывод заданных пользователем имен осей координат |
|
favSetAxisLabel |
Задает имя указанной оси координат. |
|
Виды изображений |
||
favSetGraphType |
Задает видовой режим |
|
Разное |
||
favSetArrayName |
Задает текст, выводимый на заголовочной полосе AV |
|
favShowWindow |
Отображает/скрывает окно AV |
1.4 Разработка программы визуализации
Задачей ставилось создание ПО, позволяющего просматривать результаты расчетов в графическом виде, использую при этом библиотеки AV и язык Compaq Visual Fortran (CVF).
Интерфейс с рассчитывающей программой был выбран файловый, т.е. входными данными для программы console являются два файла. Один - читающийся первым с начальными установками для массива, осей координат. Второй - непосредственно результаты. Тип файлов - не компрессированные, текстовые. Последнее выбрано исходя из соображений совместимости не только с Fortran-программами, но и с C/C++ и даже Pascal-программами.
Требования к выводу информации.
Для вывода были поставлены следующие задачи:
· для двумерных массивов - вывод в 3D виде с возможностью анимации
· для двумерных массивов - вывод в виде растровой карты (контрастной заливки)
· вывод одномерных случаев (сечений массива) с возможностью анимации.
Выбор пользовательского интерфейса.
Из соображений простоты программы, ее размеров, а также легкости модификации был выбран консольный интерфейс. Благодаря этому программа имеет небольшой листинг, простую структуру и легка для понимания. Для добавления новых возможностей, новых команд нет необходимости изменять файлы ресурсов (как было бы в случае WIN32 приложения), и несколько различных подпрограмм. Достаточно лишь внести в условия проверки команд новую команду и написать подпрограмму ее обработки. В дополнение к этому следует заметить, что также повышена переносимость программы на различные платформы, т.е. достаточно перекомпилировать код (может быть с небольшими изменениями) на соответствующем компиляторе для нужной платформы (естественно для этой платформы должна быть версия AV).
Структура программы.
Программу можно логически разбить на 6 блоков, выполняющих каждый свои функции (в листинге (Приложение 1) они помечены комментариями):
1. Block_1: описание переменных и массивов. Все массивы имеют атрибут allocatable, для совместимости с DEC-атрибутом ARRAY_VISUALIZER. Рабочие массивы следующие: TDMas - трехмерный массив, в который заносятся все результаты расчетов. VMas - двумерный массив, отображаемый в 3D-виде и в растровой заливке. PXMas и PYMas - одномерные массивы, соответствующие сечениям по координатам. XAxis и YAxis - одномерные массивы, содержащие разбивку шкал.
2. Block_2: считывание служебной информации, результатов расчетов, формирование массивов шкал. Этот блок начинается с оператора call Help(), вызывающего соответствующую подпрограмму, показывающую команды программы. Потом задаются значения по умолчанию для имен и масштабов шкал. Далее организовывается ввод имен файлов - сначала файла со служебной информацией, потом файла с данными. Имена должны быть не больше 70 символов (включая пути). Далее идет считывание файла со служебной информацией, потом размещение массивов в памяти, после чего задаются массивы шкал и, наконец считываются отображаемые данные, которые распределяются между всеми массивами, участвующими в визуализации (начальное состояние: для PXMas i=1, для PYMas j=1, для всех массивов k=1)
3. Block_3: задание начальных установок AV с помощью подпрограмм API.
4. Block_4: блок обработки команд. Состоит из операторов if..then…end if . Если команда распознана, то передается управление соответствующей подпрограмме. При вводе команды newfile передается управление блоку 2, а при вводе команды exit передается управление блоку 5.
5. Block_5: завершение программы. Освобождение ресурсов, задействованных для связи с AV, освобождение памяти, выделенной под массивы и закрытие оболочки AV.
6. Block_6: блок описания подпрограмм. Все подпрограммы являются встроенными и содержатся в разделе contains. Все подпрограммы предназначены для обработки команд. Почти все из них (кроме Animat и Paus) не содержат локальных переменных, для упрощения взаимодействия, структуры, сокращения количества требуемых ресурсов.
Графически структуру программы можно изобразить как это сделано на рис 4 (оговоримся сразу - это не блок-схема программы, это только схематичное изображение структуры).
Как легко можно заметить, для модификации программы, добавления в нее новых команд и возможностей достаточно изменять только блоки 4 и 6, т. е. добавлять новые условия и подпрограммы. Так же желательно включать новые команды в подпрограмму Help. Это позволит пользователям в любой момент получить список команд программы.
Почти все подпрограммы, реализующие команды используют глобальные массивы TDMas, VMas, PXMas, PYMas, XAxis, YAxis - это позволяет не передавать их, а также оперировать ими, в случае необходимости в основной программе. Так же подпрограммы используют глобальные переменные plx, ply, pld и vis.
Рис 4.
Каждая из них равна единице если соответствующий режим включен и равна нулю в противоположном случае. Эти переменные используются для того чтобы не переключаться каждый раз в новый режим. Также они используются подпрограммой Animat() для определения, какой массив ей заполнять.
Полный список всех подпрограмм и команд, им соответствующих:
Подпрограмма |
Команда |
|
Помощь |
||
Stat() |
status |
|
Help() |
help |
|
Анимация |
||
Animat() |
anim |
|
Виды отображения |
||
PlainX() |
plainx |
|
PlainY() |
plainy |
|
Plain() |
plain3d |
|
Visu() |
visual |
|
Служебные |
||
Paus() |
pause |
|
ChangeDelay() |
delay |
|
ChangeK() |
k |
|
- |
newfile |
|
- |
exit |
Команды newfile и exit не имеют своих подпрограмм - они выполняются оператором goto n.
Разберем подпрограммы по видам:
1. Подпрограммы помощи: Help() и Stat(): в реализации этих подпрограмм нет ничего сложного - они просто выводят информацию с помощью оператора write.
2. Подпрограмма анимации: Animat() : эта подпрограмма реализована следующим образом - вначале спрашивается шаг моделирования, с которого необходимо начать анимацию, затем конечный шаг. После этого, если выбран один из одномерных случаев запрашивается соответствующая координата. После этого, в зависимости от текущего вида отображения меняется какой-либо массив, после чего происходит вызов подпрограммы
API AV favUpdate, потом с помощью пустого цикла идет задержка. Пустой цикл просто перебирает числа от 1 до значения переменной delay*106. Это повторяется циклически для всех необходимых значений k.
3. Подпрограммы вида отображения: Visu(), Plain(), PlainX, PlainY(): в них сначала происходит проверка на текущий тип отображения. Если он не совпадает с тем, который выбран сейчас, то производится подготовка оболочки AV (масштабы шкал, их названия, тип отображения). Потом заполняется необходимый массив и вызывается favUpdate.
4. Служебные подпрограммы: ChangeK(): изменяет текущий шаг моделирования (переменная k), затем заполняет все массивы новой информацией, после чего вызывает favUpdate. ChangeDelay(): изменяет значение переменной delay, которая влияет на время задержки при анимации, а также на время задержки при исполнении команды pause. Paus(): подпрограмма сделана специально для скриптового режима. Она обеспечивает задержку. Состоит из пустого вложенного цикла.
Таким образом мы разобрали структуру и принципы работы программы console.exe. Приступим теперь к ее описанию.
1.5 Описание работы программы визуализации
В этом подразделе будут рассмотрены следующие вопросы:
· Терминология программы
· Формат файла со служебной информацией (pre-файла).
· Команды программы
· Скриптовый режим программы
· Запуска программы.
Терминология программы.
Прежде чем приступить к описанию работы с программой, необходимо пояснить несколько терминов, которые будут использоваться.
· k - шаг моделирования. Т.е. если у вас прибор промоделирован в нескольких режимах (например, при разных потенциалах на контактах полупроводника), то число k отражает номер этого режима.
· pre-файл - файл со служебной информацией (например, размерности массива)
· скрипт - последовательность команд (сценарий), записанных в текстовый файл, которые программа может интерпретировать.
· i - переменная в трехмерном массиве TDMas. Ее аналог - координата y
· j - переменная в трехмерном массиве TDMas. Ее аналог - координата x.
· Формат данных - формат по которому записываются данные в файл.
Формат pre-файла.
Pre-файл (от preset - предварительные установки)- это файл с установками, необходимыми для работы программы, а также с оформлением шкал.
Минимальная длина этого файла в строках - три, максимальная не ограничена, но читаться будут только первые восемь. Итак построчно:
1. Максимальное значение k. Формат: I2 (integer, две цифры)
2. Максимальное значение i. Формат: I2
3. Максимальное значение j. Формат: I2
Очень важно! Эти три строки обязательно должны быть в файле, иначе работа программы завершится с ошибкой. К тому же их нужно обязательно правильно и точно указать. Согласно этим параметрам формируются внутренние массивы программы и потом заполняются данными. Ошибка может повлечь за собой потерю данных или их искажение.
4. Коэффициент по оси X (j). Это позволяет отобразить данные не с теми координатами, которые предлагает AV, а с необходимыми вам. Т.е. индексы массива будут переведены, например, в микроны. По умолчанию равен 1 (т.е. на шкале отображаются индексы массива). Формат: E4.2 (т.е. вещественный, две цифры после запятой. Например, 0.50)
5. Коэффициент по оси Y (i). По умолчанию равен 1. Формат: E4.2
6. Имя оси X. Это имя отображается как имя заданной оси. Длина - не более 20 символов. По умолчанию : `X'.
7. Имя оси Y. Не более 20 символов. По умолчанию: `Y'.
8. Имя оси Z. (ось результатов). Не более 20 символов. По умолчанию: `Z'
Далее можно вставлять свои комментарии и пояснения. Программой они не учитываются.
Команды программы.
К сожалению язык Fortran не предоставляет достаточно мощных подпрограмм обработки строк. Поэтому все команды имеют вид не команда операнды, а просто команда. Далее, при необходимости, программа требует ввод дополнительных данных, обычно - координат, но помимо этого и различных значений. Внимание: все команды должны быть набраны в нижнем регистре.
Команды можно разделить на четыре группы:
1. Команды помощи
2. Виды отображения
3. Анимация
4. Служебные
Рассмотрим все команды (включая их дополнительный ввод) по их видам:
Команды помощи:
· help - эта команда выводит информацию о программе, ее версии и список всех доступных команд. Упоминание о ней есть в строке приглашения к вводу (Enter comand (help for comand list)>).
· status - эта команда выводит сообщение о текущих установках: максимальное и минимальное i, максимальное и минимальное j, максимальное k, текущее k, значение delay.
Виды отображения:
· visual - эта команда включает 3D-вид отображения. При запуске программы включается именно он. Она не требует дополнительного ввода.
· plain3d - эта команда включает отображение в виде растровой карты (контрастной заливки). В этом виде нельзя проводить анимацию. Не имеет дополнительного ввода.
· plainx - эта команда переключает в режим отображения одномерных массивов. Она позволяет отобразить сечение по Y. (Т.е. будет отображаться массив с изменяющейся координатой X и постоянной координатой Y). Требует ввод i.
· plainy - эта команда также переключает в режим отображения одномерных массивов. Она позволяет отобразить сечение по X. (Т.е. будет отображаться массив с изменяющейся координатой Y и постоянной координатой X). Требует ввод j.
Анимация.
· anim - эта команда позволяет провести анимацию при выбранном типе отображения (кроме контрастной заливки). При 3D -виде (команда visual) она требует только ввода начального значения k (k1) и конечного значения k (k2). При сечении по Y (команда plainx) она требует ввода координаты i, при каком значении этой переменной будет происходить анимация. При сечении по X (команда plainy) она требует ввода координаты j, при каком значении этой переменной будет происходить анимация. По окончании анимации текущее k принимает значение k2.
Служебные команды.
· k - эта команда позволяет изменить текущее значение k. При наборе k<0 k становится равным 1. При наборе k>max k, k становится равным max k.
· delay - эта команда позволяет изменить значение переменной delay, которая определяет задержку между кадрами анимации. Это значение нисколько не указывает на количество секунд или миллисекунд, на которые происходит задержка. При равных значениях переменной delay, более быстрые компьютеры будут давать более маленькую задержку. Начальное значение - 80.
· pause - эта команда предназначена для скриптового режима работы. Она позволяет приостановить программу. Требует дополнительного ввода количества задержек.
newfile - эта команда позволяет загрузить новые файлы. Она перебрасывает в начало работы с программой.
· exit - выход из программы.
Скриптовый режим программы.
Наличие этого режима - прямое следствие консольного интерфейса программы. Т.е. для создания такой возможности не было необходимости в дополнительных затратах.
Скрипт (сценарий) состоит из команд программы и требуемого для них дополнительного ввода. Кроме этого, первые две строки скрипта это имена pre-файла и файла данных соответственно. Приведем простой пример скрипта:
out.pre
out.txt
plainx
20
delay
50
anim
2
12
20
pause
2
exit
Его работа заключается в следующем:
· Считывается pre-файл out.pre из директории где находится программа console.
· Считывается файл данных out.txt из директории где находится программа console.
· Выполняется команда plainx (сечение по Y) с координатой i=20. Координата задается в следующей строке после команды. Любой дополнительный ввод начинается с новой строки скрипта.
· Замена стандартного значения задержки (80) на новое - 50.
· Далее выполняется анимация этого вида. После команды anim следуют три строки с ее параметрами - начальное k (2), конечное k (12) и координата i (20), по которой будет происходить сечение.
· Потом выполняется команда pause с параметром 2. Это дает двойную задержку перед выполнением следующей команды.
· Далее идет команда exit, закрывающая экземпляр AV и программу console.
Заметим, что построение командного интерпретатора позволяет после первых двух строк вставлять любые комментарии. Эти комментарии программа попытается обработать как команды, но не найдя таких команд в своем списке просто их проигнорирует. Однако очень важно помнить, что первые две строки сценария - это обязательно имена pre-файла и файла данных.
Запуск программы console.
Как видно из предыдущих подразделов программу можно запустить в двух режимах: командном и скриптовом.
· Запуск в командном режиме: при запуске в командном режиме сначала выводится список всех команд, затем запрашивается имя файла со служебной информацией (pre-файла), затем имя файла с данными (результатами расчетов).
· Запуск в скриптовом режиме: это можно осуществить только при помощи сеанса MS-DOS (Windows 95/98) или программ-оболочек с командной строкой DOS (например Far, Dos Navigator, Norton Commander). Скриптовый режим обеспечивается при помощи перенаправления ввода. Т.е. в командной строке указывается имя программы, потом символ перенаправления `<, затем имя файла со скриптом. Пример командной строки: console.exe < in.txt. При выполнении этой команды весь ввод будет браться из файла скрипта in.txt.
1.6 Описание интерфейса между программой визуализации и прикладной инженерной программой.
Инженер, собирающийся воспользоваться программой console должен организовать в своей программе вывод результатов в текстовый файл. Каждое новое число с новой строки. Приведем примеры вывода результатов в файл для Fortran- и C-программ.
Fortran.
Формат выводимых чисел для языка Fortran - E12.5. Т.е. в текстовом файле будет число в виде 1.23456E+02 с пробелом в начале если число положительное и знаком ` - ` если отрицательное. Пример кода:
Допустим у нас есть массив, объявленный как
Real(4) M(lbi:ubi, lbj:ubj)
Тогда записывать его значения в файл out.txt мы будем следующим образом.
Объявим формат E12.5:
90 FORMAT (E12.5)
Сначала открываем файл:
open (3,FILE='out.txt', STATUS='UNKNOWN')
Далее на каждом шаге моделирования записываем в него информацию из массива следующим образом:
do i=lbi,ubi
do j=lbj,ubj
write(3,90) M(i, j)
end do
end do
После того как пройдены все шаги моделирования, файл необходимо закрыть:
close (3)
Таким образом мы можем записать все шаги моделирования в файл данных, чтобы впоследствии им воспользоваться для работы с программой console.
C/C++
Для С/С++ программ необходим формат “%12.5E”. Все числа необходимо приводить в строки. Напомним, что файл должен быть текстовым.
Пример кода с пояснениями.
Для начала объявим переменные массива, файла и вспомогательную строку:
float M[UBI][UBJ];
FILE* f;
char str[12];
Далее в программе необходимо открыть файл:
f=fopen(“out.txt”,”wt”);
Далее на каждом шаге моделирования записываем в него информацию из массива следующим образом:
for (i=0;i<UBI;i++)
for (j=0;j<UBJ;j++) {
sprintf(str, "%12.5E", M[i][j]);
fputs(str,f);
fprintf(f,”\n”);
}
После того как пройдены все шаги моделирования, файл необходимо закрыть:
fclose(f);
Обратите внимание на использование функции sprintf. Это наиболее простой способ привести float-числа к нужному виду, идентичному с форматом E12.5 используемому в программе console для считывания данных.
1.7 Тестирование программы и результаты тестовых расчетов
Проведем тестирование программы на файлах данных созданных Fortran и C++ программами.
Приведем листинг Fortran-программы:
program Sample
IMPLICIT NONE
real(4), allocatable :: M(:,:)
integer(1), parameter :: lbi=1, ubi=20, lbj=1, ubj=20
integer(1) :: i,j
allocate (M(lbi:ubi,lbj:ubj))
do i=lbi,ubi
do j=lbj,ubj
M(i,j)=sin(real(i))+sin(real(j))
end do
end do
90 FORMAT (E12.5)
open (3,FILE='out.txt',STATUS='UNKNOWN')
do i=lbi,ubi
do j=lbj,ubj
write(3,90) M(i,j)
end do
end do
close(3)
end program Sample
Как видим здесь формируется двумерный массив M(1:20,1:20) который заполняется значениями M(i,j)=sin(i)+sin(j). Составим pre-файл для него (out.pre):
1
20
20
1.00
1.00
X-scale
Y-scale
Function
Результаты вывода программы:
рис 5.
1. 3D-вид (visual) (рис 5
2. Контрастная заливка (рис 6):
рис 6.
3. Сечение по X (команда plainy с параметром 20) (рис7):
рис 7.
1-30.
Проверим теперь взаимодействие с C++ программой:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define UBI 20
#define UBJ 20
FILE* f;
char str[12];
float M[UBI][UBJ];
int i,j;
void main()
{
for (i=0;i<UBI;i++)
for (j=0;j<UBJ;j++)
if (i<19) M[i][j]=(float)i+sin((float)j)
else M[i][j]=0;
f=fopen("out.txt","w+t");
for (i=0;i<UBI;i++)
for (j=0;j<UBJ;j++) {
sprintf(str, "%12.5E", M[i][j]);
fputs(str,f);
fprintf(f,”\n”);
}
fclose(f);
}
Здесь формируется массив M[20]][20] (необходимо помнить, что в C массивы начинаются с 0) и заполняется функцией M[i][j]=i+sin(j). Pre-файл для него такой же как и в предыдущем примере.
Результаты вывода программы console:
1. 3D-вид (рис 8):
рис 8.
2. Контрастная заливка (рис 9):
рис 9.
3. Сечение по X (команда plainy) (рис 10):
рис 10.
Мы рассмотрели все виды и варианты работы программы, протестировали ее во всех режимах. Программа прекрасно согласуется как с Fortran-программами, так и с C/C++ программами. Помимо этих тестов программа была протестирована на результатах вычисления параметров полупроводниковых приборов и показала хорошие результаты.
Системные требования.
Работа программы тестировалась на системах Windows 98, Windows 2000 и Windows XP. Минимальные системные требования - Pentium 166 MMX, 32Mb RAM, 1Mb Video. Как видим поддержка OpenGL не обязательна, хотя желательна. Размер программы, вместе с пакетом Compaq Array Visualizer v1.5 - 16Mb.
Заключение
Разработанная программа, использующая AV, является своеобразным гейтвеем (от англ. gateway) с командной оболочкой, позволяющим передавать данные из рассчитывающей программы инженера в пакет графического отображения информации. Она предоставляет более простой интерфейс для передачи данных. К тому же данные сохраняются в файл и нет необходимости в переносе программы, достаточно переносить только результаты.
Помимо этого, за счет скриптового режима программа позволяет устраивать презентации и показы. Несложная командная система не требует длительного изучения и освоения. Программу можно освоить за 30-40 минут.
Разработанную программу можно использовать на лабораторных работах студентов, для отображения полученных ими результатов. Она может использоваться сотрудниками институтов или предприятий для отображения результатов моделирования как в процессе программирования и отладки моделирующей программы, так и в процессе демонстрации результатов. Таким образом программа console имеет университетский уровень.
Раздел 2.
Технология разработки программного обеспечения для визуализации инженерных расчетов
Введение
Десять - пятнадцать лет назад ЭВМ либо не имели возможности графического вывода, либо графические дисплеи были очень слабы и не подходили для качественного вывода информации. Печатающие устройства существовали только для символьного вывода. Поэтому все результаты расчетов выводились в виде числовых распечаток, по которым проводился анализ, строились графики и т.д. Пять - десять лет назад графические системы позволяли выводить графики с приемлемым качеством изображения, но только для одномерных случаев. Вывод двухмерных случаев в виде поверхностей требовал огромных вычислительных затрат, с которыми не справлялись процессоры тех лет.
В наше время, когда высокого быстродействия достигли не только ЦП и математические сопроцессоры, но и графические сопроцессоры вывод результатов в графическом виде ускорился в сотни раз, построение трехмерных изображений и их преобразование заметно упростилось. Поэтому для всех современных САПР и инженерных программ необходимо представление результатов в виде графиков, поверхностей и т.д. Как и всякий процесс, написание программ обработки результатов для последующего графического вывода и вывод имеет свою технологию. В данном разделе и будет рассмотрена такая технология.
2.1 Этапы разработки программного обеспечения для визуализации инженерных расчетов.
Для начала выделим основные этапы создания ПО для визуализации инженерных расчетов (далее просто ПО).
1. Постановка задачи. Формирование требований к выводимой информации.
2. Создание структуры данных и интерфейса с рассчитывающими программами.
3. Построение математической модели отображаемой информации (2 подхода):
Использование готовых библиотек OpenGL или DirectX, а также готовых компонент ActiveX.
Построение собственных математических моделей.
4. Создание интерфейса пользователя.
Итак, мы видим пять основных этапов, различных по сложности и объему работ. К тому же, благодаря большому количеству разработчиков библиотек для графического вывода у нас есть два качественно разных подхода.
Рассмотрим каждый этап в отдельности более подробно.
2.2 Постановка задачи
Очень важно правильно сформулировать задачу и требования к ПО. Это поможет избежать лишних затрат на создание ненужных подпрограмм вывода, либо переделки готовых программ для дополнения необходимого. Так же при постановке задачи необходимо решить стоит ли использовать подход с построением собственных математических моделей, или достаточно ограничиться уже готовыми библиотеками и компонентами, пусть и платными. В дополнении необходимо учесть необходимость вывода числовой информации, а так же создание “твердой копии”, т. е. распечатки на принтере.
При определении вида графической информации, нужно решить для каких случаев она будет выводиться - двумерных или же только одномерных. При выборе двумерных случаев у нас тоже есть выбор: можно выводить в виде поверхностей, либо в виде “контрастной заливки”, или же оба этих случая. При постановке задачи на вывод надо учитывать собственные вычислительные ресурсы и необходимую скорость создания приложения.
При определении подхода к построению математической модели вышеуказанные два фактора так же играют главную роль. Собственная модель может обойтись дороже, так как на ее создание уйдет время и, к тому же, как правило, такие модели не задействуют вообще или не на полную мощность возможности графического сопроцессора, а это шаг назад. В связи с этим в последнее время создание собственных математических моделей становится все менее целесообразным и экономически выгодным.
2.3 Создание структуры данных и интерфейса с расчетной программой
Этот этап очень важен. От структуры данных зависит быстродействие создаваемого ПО, компактность кода и файлов, в которых хранятся результаты расчетов.
Интерфейс с рассчитывающей программой может быть совершенно различным. Информация может передаваться через оперативную память (ОЗУ), через файловую систему в виде бинарных файлов или, более объемных, текстовых файлов. Файлы могут быть компрессированы или нет. Какой из способов выбирать зависит от нескольких факторов:
1. Скорость выполнения расчета - если рассчитывающая программа проводит быстрый анализ, то, возможно, целесообразнее не создавать лишних файлов на внешнем носителе и использовать ОЗУ.
2. Частота изменения входных данных - при частой смене входных данных для расчетов намного эффективнее будет применение передачи результатов через ОЗУ, с вызовом программы визуализации как подпрограммы.
По этим двум факторам можно сказать еще следующее: если программа выполняет расчеты долго, или входные данные не меняются (используется итеративный процесс) целесообразней будет использование файловой системы для долгосрочного хранения.
3. Объем передаваемой информации - если объем очень большой, то эффективнее будет хранить его в виде файла.
Выбор вида файла (бинарный или текстовый) зависит от языка программирования. Однако следует учесть, что бинарный файл меньше по объему.
Компрессировать или нет файл с результатами определяется следующим фактором: если вы пишете ПО для большой САПР и программисты, принимающие участие в этом проекте используют одну и ту же подпрограмму компрессии, то в этом случае следует выбрать сжатый файл. Если же вы пишите университетскую программу или программу для предприятия, на которой будут смотреть результаты своих программ инженеры вашего коллектива, то в этом случае, для упрощения процесса написания рассчитывающих программ следует выбрать не сжатые файлы.
В структуру данных также включается управляющая информация для ПО. Она может включать в себя различные параметры как-то: границы массивов данных, значения или шаги по осям, виды представления. При выборе файлового интерфейса ее можно хранить либо отдельно от основных данных, либо вместе с ними. Это уже зависит от вкуса программиста.
2.4 Построение математической модели отображаемой информации.
2.4.1 Использование готовых библиотек
В наше время, как отмечалось выше, большинство разработчиков программного обеспечения, связанного с графикой, используют стандартные библиотеки от крупных производителей программ (Microsoft, Silicon Graphics, 3Dfx). Этими библиотеками являются: OpenGL, DirectX, Direct Draw. Их использование ускоряет процесс разработки программы, к тому же они в полной мере задействуют графический и математический сопроцессоры, что увеличивает производительность. Эти библиотеки включают в себя и аппроксимацию и методы работы с двухмерными и трехмерными объектами, такие как аффинные преобразования и методы скрытия невидимых линий, т. е. Так же исчезает необходимость в затратах на сложный процесс математического моделирования.
Подобные документы
Подбор игрового движка и описание его основных характеристик. Разработка структуры, алгоритма и интерфейса программы. Проектирование иерархии классов. Выделение типового приема визуализации. Тестирование правильности работы программного обеспечения.
курсовая работа [3,1 M], добавлен 19.01.2017Создание автоматизированных приложений по расчету пути на прочность и устойчивость и затрат труда по техническим нормам. Разработка программного обеспечения, базы данных. Расчет тестового задания старой и новой версиями программы и оценка его результатов.
дипломная работа [2,4 M], добавлен 28.08.2017Основные приёмы и возможности алгоритмических языков программирования Fortran. Табуляция функции на языке Fortran, ее графический вид и блок-схема алгоритма. Выполнение расчетов на алгоритмическом языке Фортран. Текст (листинг) Fortran-программы.
курсовая работа [31,9 K], добавлен 15.02.2011Разработка программного обеспечения автоматической системы научных исследований (АСНИ) в интегрированной среде программирования Borland C++ Builder 6.0, работающего в среде ОС Windows, позволяющего осуществлять управление процессом спектрального анализа.
курсовая работа [569,3 K], добавлен 05.03.2009Информатизация России. Рынок программных средств. Основные задачи стандартизации, сертификации и лицензирования в сфере информатизации. Совокупность инженерных методов и средств создания программного обеспечения. Жизненный цикл программного обеспечения.
лекция [352,8 K], добавлен 09.03.2009Matlab как система инженерных и научных вычислений, принцип ее работы и назначение, сферы применения и оценка эффективности, анализ сильных и слабых сторон. Алгоритм создания интерфейса, основные способы и методы создания форм и элементов управления.
контрольная работа [681,9 K], добавлен 13.01.2010Разработка программы, реализующей алгоритм обработки двухмерных и одномерных массивов. Область применения, требования к программным средствам. Язык программирования Turbo Pascal. Арифметические операции и выражения. Используемые модули и операторы.
курсовая работа [439,3 K], добавлен 21.12.2015Особенности разработки и реализации модулей двухмерной и трехмерной визуализации. Основные задачи трехмерного модуля управления. Анализ функций модуля управления ParamColorDrawer. Характерные особенности схемы функционирования программного средства.
реферат [2,2 M], добавлен 07.03.2012Этапы разработки программного приложения, выполняющего синтаксический анализ программы на языке С и форматирование текста программы на языке С. Требования к программному обеспечению и интерфейсу. Конфигурация технических средств и оценка надежности.
курсовая работа [1,6 M], добавлен 22.06.2011Любая вычислительная машина как сложная система, состоящая из множества компонентов на каждом уровне иерархии. Основные особенности внедрения модели виртуального стенда. MATLAB как высокоэффективный язык инженерных и научных вычислений, анализ функций.
дипломная работа [1,6 M], добавлен 24.06.2013