Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Метод квадратичной интерполяции – экстраполяции
Метод Пауэлла Метод Давидона Для написания программы была использована библиотека MFC (Microsoft Foundation Classes) и соответствующий мастер диалогового окна MFC AppWizard. Итоговая программа получилась благодаря созданию новых классов и функций, а также созданию ресурса основного диалогового окна с дружественным интерфейсом.
Программа состоит из восьми классов: 1. CEnterFunction - парсер 2. CMatrix - класс матриц 3. CMETODI - методы оптимизации 4. CMalgin_kursApp - приложение 5. CMalgin_kursDlg - диалоговое окно
Рассмотрим подробнее каждый из этих классов.
1. CEnterFunction – этот класс представляет собой интерпретатор формул. В качестве аргумента он получает строку с формулой и две переменных, в которые при ошибке возвращается номер ошибочной позиции и текст ошибки. После вычислений, при условии отсутствия ошибок в формуле, возвращается значение типа double. Для непосредственной работы с классом существует только один открытый метод – Calculation, посредством которого и осуществляются все вычисления. Остальные методы являются закрытыми и не представляют особого интереса при программировании.
2. CMatrix – один из основных классов программы. Посредством него появляется возможность работы с векторами и матрицами. Класс обладает широким набором различных методов и переопределённых операторов, что позволяет максимально удобно использовать его в прикладных задачах.
3. CMETODI – самый главный класс. Содержит различные методы поиска, представленные в виде отдельных членов класса. Кроме того, в него включены вспомогательные методы, такие, как, например, численное дифференцирование, получение значения функции, получение матрицы Гессе, получение обратной матрицы методом Гаусса-Жордана и т.д. При создании класса ему передаётся строка с формулой (не содержащая ошибок, т.е. заранее проверенная) и дальше можно пользоваться различными методами. Рассмотрим подробнее члены класса.
4. CMalgin_kursApp – стандартный класс приложения, который создаётся мастером. Особо интересной информации для нас не содержит, разве что вызов главного диалогового окна.
5. CMalgin_kursDlg – класс основного диалогового окна. Именно оно представляет собой весь интерфейс. Класс содержит все необходимые методы для работы с окном, а, также, вспомогательную функцию проверки правильности ввода данных GOTOVMOST(), которая возвращает true при отсутствии ошибок и false при их наличии. Пример объекта класса:
Описание логики работы программы.
Логика работы программы не представляет собою ничего сложного. Она основывается на простой последовательности действий и в ближайшем рассмотрении выглядит следующим образом: ввод данных – проверка корректности введённых данных – поиск минимума – вывод результатов поиска. Более детальное представление о логике работы программы может дать следующая блок-схема:
Т.е., в итоге, эта последовательность действий позволила получить программу с достаточно простым интерфейсом и предсказуемой логикой работы, что, в свою очередь, влияет на удобство работы с программой, которая позволяет легко задавать функции или выбирать из уже имеющихся, исправлять ошибки при вводе данных, повторять процессы минимизации. Результаты тестирования программы |
||
Последнее изменение этой страницы: 2018-04-12; просмотров: 261. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |