Смекни!
smekni.com

«Использование ит в моделировании процессов генерации излучения в полупроводниковых лазерах» (стр. 2 из 6)

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

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

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

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

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

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

- Возможность создания встроенных предметно-ориентированных языков программирования. Такой подход использует, например библиотека Boost.Spirit, позволяющая задавать EBNF-грамматику парсеров прямо в коде C++.

- Используя шаблоны и множественное наследование можно имитировать классы-примеси и комбинаторную параметризацию библиотек. Такой подход применён в библиотеке Loki, класс SmartPtr которой позволяет, управляя всего несколькими параметрами времени компиляции, сгенерировать около 300 видов «умных указателей» для управления ресурсами.

- Кроссплатформенность: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ. Для определения реальных свойств системы выполнения в стандартной библиотеке присутствуют соответствующие возможности (например, std::numeric_limits <T>). Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем.

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

- Имеется возможность работы на низком уровне с памятью, адресами.

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

1.2 Среда программирования Visual Studio 2010

Microsoft Visual Studio 2010 Professional – интегрированная среда, упрощающая создание, отладку и развертывание приложений. Использование Microsoft Visual Studio 2010 Professional даёт ряд преимуществ при разработке[5]:

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

- Предлагаются визуальные дизайнеры Windows Presentation Foundation и Silverlight для разработки приложений для Windows®7 и Веб.

- Интегрированные шаблоны проектов, отладка и публикация упрощают развертывание приложений в Windows® Azure™.

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

- включение поддержки для множества мониторов и повышение четкости текста – делает привычную среду еще более продуктивной.

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

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

- Visual Studio 2010 Professional с MSDN включает Team Foundation Server 2010, который является идеальной системой контроля версий, отслеживания дефектов и автоматизации сборки для пользователей Visual Studio. Базовая установка Team Foundation Server превосходно подходит для использования на настольных компьютерах и для начинающих пользователей, до этого работавших с Microsoft Visual SourceSafe.

1.3 Пакет программ Origin

На рынке программных продуктов можно найти множество коммерческих и бесплатно распространяемых программ, позволяющих облегчить трудоемкий процесс обработки данных и их представления в компактном, удобном и наглядном виде. Назовем только некоторые из них: Axum (MathSoft Inc.), SigmaPlot (Systat Software Inc.), SmartDraw, GNUplot. Каждая из этих программ имеет своих более или менее многочисленных поклонников, которые привыкли к используемой программе, научились решать с ее помощью типовые задачи, встречающиеся в их практике, и, естественно, не очень охотно согласятся потратить время и силы для освоения какой-либо иной программы до тех пор, пока не столкнутся с задачей, которая окажется не по зубам привычному пакету. Мир программных продуктов удивительно многообразен, и остается только сожалеть, что многие пользователи в силу различных причин полагают, что Microsoft Office – вершина программистской мысли. Конечно, проводить обработку и визуализацию экспериментальных данных можно и с помощью MS Excel, однако это программа разрабатывалась для решения повседневных офисных задач. Деятельность физика мало схожа с работой клерка – для его задач необходимы программные продукты, создававшиеся совершенно для других целей.

Origin — пакет программ фирмы OriginLab Corporation для численного анализа данных и научной графики, работающий на компьютере под управлением операционной системы Microsoft Windows. Для выполнения операций можно как использовать инструмент графического интерфейса пользователя (диалоги/меню), так и вызывать их в программах. В Origin включён собственный компилятор C/C++ с поддержкой и оптимизацией векторных и матричных вычислений. Origin поддерживает создание двухмерной, трёхмерной научной графики, которая создаётся с помощью готовых шаблонов, доступных для редактирования пользователем. Также возможно создавать новые собственные шаблоны. После создания изображения оно может быть отредактировано с помощью меню и диалогов, вызываемых двойным щелчком мыши на его элементах. Можно экспортировать полученные графики и таблицы в ряд форматов, таких как PDF, EPS, WMF, TIFF, JPEG, GIF и др. С помощью Origin можно проводить численный анализ данных, включая различные статистические операции, обработку сигналов и т. п.

Пакет Origin позволяет импортировать данные различных форматов, что позволяет нам обрабатывать данные, записанные в результате численного моделирования. В частности, данные могут быть записаны в файл формата ASCII. ASCII − это текстовый файл, содержащий числа и текст, разделенные какими-либо знаками или специальными символами (разделение может и отсутствовать). Такой файл, как правило, не содержит внутри себя файлового заголовка. После того, как запустили программу Origin Pro 7, и появилась таблица, в меню File (файл) будет доступна команда Import/Single ASCII (Импорт / Одиночный ASCII).

В появившемся стандартном запросе имени файла выберите нужный и нажмите Открыть. Должна появиться таблица с импортированными данными. Origin автоматически берет имя файла в качестве имени таблицы и использует текст из файла в качестве подписей столбцов.

На практике часто бывает необходимо аппроксимировать экспериментальные данные различными нелинейными функциями. Origin имеет богатый набор встроенных функций, часто применяемых в физике. Кроме того, имеется возможность задавать свои собственные функции. В меню имеются несколько пунктов, позволяющих быстро проводить аппроксимацию наиболее часто встречающимися функциями. Провести аппроксимацию можно несколькими альтернативными способами. Например, выбираем пункт меню Tools/ Sigmoidal Fit (инструменты/ аппроксимация сигмоидной (S-образной) кривой). Появится диалоговое окно Sigmoidal Fit. На закладке Settings (настройки) указываем количество точек, которые будут использоваться для построения графика: Points – 1000. В списке функций (Logged data fit function) выбираем Boltzman (Больцман). Переходим на закладку Operation. Поскольку в наших задачах известны значения горизонтальных асимптот, указываем эти значения в окошках Upper (верхняя) и Lower (нижняя), и отмечаем галочками, что эти значения фиксированные. Нажимаем кнопку Fit. Описанный метод является только одним из возможных вариантов проведения аппроксимации. Наиболее богатые возможности представляет мастер аппроксимаций NLSF Wizard, который можно вызвать из пункта меню Analysis/Non–linear Curve Fit.