Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx53 / КурсоваяЯЯЯЯЯЯЯЯЯЯЯЯЯЯ.docx
Скачиваний:
93
Добавлен:
01.08.2013
Размер:
412.24 Кб
Скачать

Раздел 2 описание методов решений

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

2.1 Microsoft Visual Studio 

Microsoft Visual Studio .. линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework и Microsoft Silverlight. Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и как отладчик машинного уровня.

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

2.2 .NET Framework 

.NET Framework – программная платформа, выпущенная компанией Microsoft в 2002.году. Основой платформы является исполняющая среда Common Language Runtime (CLR), способная выполнять как обычные программы, так и серверные веб-приложения. .NET Framework поддерживает создание программ, написанных на разных языках программирования.

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

Программа для .NET Framework, написанная на любом поддерживаемом языке программирования, сначала переводится компилятором в единый для .NET промежуточный байт-кодCommon Intermediate Language (CIL) (ранее назывался Microsoft Intermediate Language, MSIL). В терминах .NET получается сборка, англ. assembly. Затем код либо исполняется виртуальной машиной Common Language Runtime (CLR), либо транслируется утилитой NGen.exe в исполняемый код для конкретного целевого процессора. Использование виртуальной машины предпочтительно, так как избавляет разработчиков от необходимости заботиться об особенностях аппаратной части. В случае использования виртуальной машины CLR, встроенный в неё JIT-компилятор «на лету» (just in time) преобразует промежуточный байт-код в машинные коды нужного процессора. Современная технология динамической компиляции позволяет достигнуть высокого уровня быстродействия. Виртуальная машина CLR также сама заботится о базовой безопасности, управлении памятью и системе исключений, избавляя разработчика от части работы.

Объектные классы .NET, доступные для всех поддерживаемых языков программирования, содержатся в библиотеке Framework Class Library (FCL). В FCL входят классы Windows Forms, ADO.NET, ASP.NET, Language Integrated Query, Windows Presentation Foundation, Windows Communication Foundation и другие. Ядро FCL называется Base Class Library (BCL).

2.3 C# и сравнение его с другими языками.

C# – объектно-ориентированный язык программирования. Разработан в 1998-2001 годах группой инженеров под руководством Андерса Хейлсберга в компании Microsoft как язык разработки приложений для платформы Microsoft .NET Framework и впоследствии был стандартизирован как ECMA-334 и ISO/IEC 23270.

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

Переняв..многое..от..своих..предшественников –...языков..C++, Java, Delphi и Smalltalk  – С#. Опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# в отличие от C++ не поддерживает множественное..наследование классов..(между..тем..допускает-ся множественное наследование интерфейсов).

C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем. (Однако эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы .NET). CLR предоставляет C#, как и всем другим .NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования.

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

Таблица 1.3 Сравнение языков программирования

Возможность

Язык

C++

C#

Java

Delphi

Императивная

+

+

+

+

Продолжение Таблицы 1.3

Возможность

Язык

C++

C#

Java

Delphi

Объектно-ориентированная

+

+

+

+

Функциональная

+/-

+/-

-/+

-/+

Рефлексивная

-

-/+

-/+

-/+

Обобщенное программирование

+

+

+

+

Распределенная

+/-

-/+

+

-

Статическая типизация

+

+

+

+

Динамическая типизация

-

-/+

-

-/+

Явная типизация

+

+

+

+

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

+

+

-

+

Неявное приведение типов в неоднозначных ситуациях

+

+

-

-

Алиасы типов

+

+

-

+

Вывод типов переменных из инициализатора

+/-

+

-

-

Информация о типах в runtime

-/+

+

+

+

Информация о типах-параметрах в runtime

-/+

+

-

+

Многопоточная компиляция

+

-

+

-

Создание объектов на стеке

+

+

-

-/+

Неуправляемые указатели

+

+

-

+

Продолжение Таблицы 1.3

Возможность

Язык

C++

C#

Java

Delphi

Ручное управление памятью

+

+

-

+

Сборка мусора

-/+

+

+

-

Инструкция goto

+

+

-

+

Инструкции break без метки

+

+

+

+

Инструкция break с меткой

-

-

+

-

Поддержка try/catch

+

+

+

+

Блок finally

-

+

+

+

Блок else (исключения)

-

+

+

+

Кортежи

+/-

+/-

-

-

Контроль границ массивов

+/-

+

+

+

Цикл foreach

+

+

+

+

List comprehensions

-

-/+

-

-

Целые числа произвольной длины

-

+

+

-

Интерфейсы

+

+

+

+

Анонимные функции

+

+

-

+/-

Каррирование

+/-

+

-

+/-

Именованные параметры

-

+

-

-/+

Значения параметров по умолчанию

+

+

-

+

Продолжение Таблицы 1.3

Возможность

Язык

C++

C#

Java

Delphi

Сопоставление с образцом

-

+/-

-

-

Контрактное программирование

-

+

+/-

-

Стандарты

ISO

ISO ECMA

-

-

C# - это относительно новый язык программирования, который характеризируется следующими преимуществами:

1) он спроектирован специально для применения с Microsoft .NET Framework (развитой платформой разработки, развертывания и исполнения распределенных приложений).

2) это язык, основанный на современной объектно-ориентированной методологии проектирования, при разработке которого специалисты Microsoft опирались на опыт создания подобных языков, построенных в соответствии с объектно-ориентированными принципами, которые были впервые предложены около 20 лет назад.

3) преимущества управляемого кода. Промежуточный язык Microsoft (MSIL) разделяет с байт-кодом Java идею низкоуровневого языка с простым синтаксисом (базирующегося на числовых кодах вместо текста), который может быть очень быстро транслирован в родной машинный код. Наличие этого кода с четко определенным универсальным синтаксисом дает ряд существенных преимуществ.

4) повышение производительности, IL всегда компилируется оперативно (Just-In-Time, известна также, как JIT-компиляция). Вместо компиляции всего приложения за один проход (что может привести к задержкам при запуске), JIT-компилятор просто компилирует каждую порцию кода при ее вызове (just-in-time оперативно). Если промежуточный код однажды скомпилирован, то результирующий машинный исполняемый код сохраняется до момента завершения работы приложения, поэтому его перекомпиляция при повторных вызовах не требуется. Microsoft аргументирует, что такой процесс более эффективен, чем компиляция всего приложения при запуске, поскольку высока вероятность того, что большие куски кода приложения на самом деле не будут выполняться при каждом запуске. Финальная стадия компиляции проходит во время выполнения, JIT-компилятор на этот момент уже знает, на каком типе процессора будет запущена программа. А это значит, что он может оптимизировать финальный исполняемый код, используя инструкции конкретного машинного кода, предназначенные для конкретного процессора. Традиционные компиляторы оптимизируют код, но они могут выполнить лишь ту оптимизацию, которая не зависит от конкретного процессора, на котором код будет выполняться. Это происходит потому, что традиционные компиляторы генерируют исполняемые программы до того, как они поставляются пользователям;

5) языковая способность к взаимодействию. Применение IL не только обеспечивает независимость от платформы; оно также обеспечивает способность к взаимодействию. Только представьте, что вы можете скомпилировать программу на одном языке в код IL, и этот скомпилированный код сможет свободно взаимодействовать с IL-кодом, скомпилированным из другого языка.

2.4 Программы аналоги

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

2.4.1 Grapger-solver-95.

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

Grapger-solver-95 – математическая программа по построению графиков функций f(x) и g(x) методом полиномов Лагранжа или кубическими сплайнами, где функция f(x) задается полиномом, а g(x) – точками, решающая уравнение f(x) = g(x) методом Ньютона на определенном промежутке, и выводящая корень с заданной точностью. Скриншот программы можно увидеть в приложении Б.

Таблица 1.4 Характеристики продукта

Язык программирования

Java

GUI

javax.swing

XML- парсер

Castor.

2.4.2 Программа расчета линейной регрессии методом наименьших квадратов

Программа, реализующая МНК для линейной модели вида Y=A*X+B.

Которая использует критерия Фишера для проверки значимости модели, критерия Стьюдента для проверки значимости параметров модели.

Исходные данные в виде пар X,Y (до 84 точек) вводятся в форму ниже. Пустые ячейки игнорируются, поэтому при необходимости можно отбрасывать точки путем удаления соответствующих значений X и Y. Параметры A и B рассчитываются вместе с их стандартными отклонениями. Погрешность каждого из параметров можно определить: S - стандартное отклонение; N - число точек; t - коэффициент Стьюдента для принятой доверительной вероятности при числе степеней свободы, равном N-2. Скриншот программы можно увидеть в приложении В.

2.4.3 MNK+ 1.3

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

Таблица 1.5 Характеристики продукта

Выпуск:

8 июня 2008 г. 00:10:02

Размер:

252 Кб

Лицензия:

Shareware

ОС:

Windows 98,ME,NT,2000,XP

Автор

Ansa Programs

Соседние файлы в папке docx53