Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Требования к программным компонентам




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

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

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

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

Варианты заданий

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

Пример выполнения лабораторного задания на Fortran

Пусть задана функция на интервале , и .

Стартуем среду разработки MS Visual Studio (открываем файл NMM_PetrovIS.sln). Создаем новый проект LabTask_8f консольного приложения на языке программирования Fortran. Включаем в этот проект новый файл y(x).f90, в котором размещаем код функции, вычисляющей значения в соответствии с формулой :

Теперь приступим к созданию функции, выполняющей интерполирование по Лагранжу:

.

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

Реализуем сказанное в следующем виде:

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

1. получение данных от пользователя (значения параметров и );

2. создание исходной таблицы функции;

3. вычисление шага субтабулирования для новой таблицы;

4. выполнение субтабулирования;

5. вычисление абсолютной и относительной ошибок субтабулирования;

6. сохранение результатов вычислений в виде текстового файла.

Текст основной программной единицы может быть, например, таким:

 

Интерфейсы функций, вызываемых в основной программной единице, разместим, как обычно, в соответствующем модуле:

После успешной компиляции и компоновки исполняемого файла запустим его на выполнение. Теперь в окне консольного приложения нам предстоит ввести значения параметров и :

Результаты вычислений данной программы сохраняются в последовательном форматном файле с именем SubTable.txt. Подключим этот файл к проекту и откроем его:

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

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

Пример выполнения лабораторного задания на C#

Приступим к разработке нового проекта – LabTask_08с консольного приложения на языке C#.

Вспомогательные программные компоненты разместим в отдельном классе – Class_08:

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

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

Обратите внимание на особенности реализации ввода–вывода в классе Console.

Тип Console определяет методы, обрабатывающие данные ввода и вывода, причем все его методы определены как статические и поэтому они вызываются на уровне класса.

Метод Write() вставляет текст в выходной поток без возврата каретки и перехода на новую строку консоли, см. строки 19 и 21 кода.

Метод ReadLine() позволяет получить информацию из входного потока (из консоли) вплоть до символа возврата каретки. Если считываемое данное есть некоторое число, то строку, прочитанную из входного потока необходимо конвертировать в число требуемого типа, см. строки 20 и 22 кода.

Особенности работы с текстовыми файлами результатов обсуждались в предыдущей лабораторной работе, поэтому мы здесь повторяться не будем. Отметим лишь, что для удобства сопоставления результатов мы внесли очевидное изменение в имя файла, см. строку 37.

Для того чтобы результаты выводились в виде упорядоченной таблицы заданного формата, мы воспользовались дополнительными методами, которыми обладают объекты типа string, в частности – .PadLeft(kk).

Смысл этого метода очевиден – выводимая строка (число) выравнивается по правому краю, а отсутствующие символы заменяются слева пробелами. При этом общее количество символов в выводимой строке – kk – задается в качестве параметра этого метода.

 

 

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

 

Сопоставить эти файлы удобно непосредственно в окне среды разработки, если воспользоваться пунктом меню:

 

После запуска на выполнение текущего проекта:

выполним сопоставление файлов результатов (их одинаковых фрагментов):

Совпадение данных в файлах очевидно. Цель лабораторной работы достигнута.

Теперь Вам предстоит реализовать полученные знания для выполнения Вашего варианта задания.

Контроль выполнения варианта лабораторного задания № 8

Для проверки правильности выполнения Вами лабораторной работы № 8 воспользуйтесь приложением NMM_Labs.

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

Данная форма предполагает два этапа выполнения вычислений. На первом этапе строится исходная таблица функции – кнопка «Вычислить значения для исходной таблицы функции».

После выполнения этого этапа следует этап непосредственной интерполяции по методу Лагранжа – уплотнение таблицы функции между узлами интерполирования – кнопка «Выполнить уплотнение таблицы»:

 

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

 




Поделиться с друзьями:


Дата добавления: 2014-12-24; Просмотров: 340; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.