КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |