Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
INFORMATIKA.docx
Скачиваний:
0
Добавлен:
25.01.2020
Размер:
625.41 Кб
Скачать

Дизайн-проект задачи

Проект состоит из двух листов:

Лист1:

Как уже было сказано, кнопки запускают соответствующий макрос.

Примечание:

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

Лист2:

Аналогично с Листом1, кнопки запускают соответствующие макросы. Также здесь намеренно не показана ячейка целевой функции, так как задача состоит в решении системы, то есть в нахождении неизвестных (столбец Значения).

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

Данный пример показывает работоспособность программы с нелинейными системами уравнений.

Текст макросов

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

Sub Макрос1()

Range("Q14:U16").Select

SolverOk SetCell:="$Q$14", MaxMinVal:=2, ValueOf:=0, ByChange:="$A$16:$J$25", _

Engine:=1, EngineDesc:="GRG Nonlinear"

SolverOptions MaxTime:=0, Iterations:=0, Precision:=0.000001, Convergence:= _

0.0001, StepThru:=False, Scaling:=True, AssumeNonNeg:=True, Derivatives:=1

SolverOptions PopulationSize:=100, RandomSeed:=0, MutationRate:=0.075, Multistart _

:=False, RequireBounds:=True, MaxSubproblems:=0, MaxIntegerSols:=0, _

IntTolerance:=1, SolveWithout:=False, MaxTimeNoImp:=30

SolverOk SetCell:="$Q$14", MaxMinVal:=2, ValueOf:=0, ByChange:="$A$16:$J$25", _

Engine:=1, EngineDesc:="GRG Nonlinear"

SolverOk SetCell:="$Q$14", MaxMinVal:=2, ValueOf:=0, ByChange:="$A$16:$J$25", _

Engine:=1, EngineDesc:="GRG Nonlinear"

SolverSolve

End Sub

Sub Макрос2()

Range("Q14:U16").Select

Selection.ClearContents

Range("A16:J25").Select

Selection.ClearContents

Range("Q14:U16").Select

ActiveCell.FormulaR1C1 = "=SUM(R[-11]C[-5]:R[-2]C[4])"

End Sub

Sub Макрос3()

Sheets("Лист2").Select

End Sub

Функции, выполняемые данными макросами, оговаривались выше: расчет (подбор), очистка ячеек, переход на другой лист.

Заключение

В ходе курсовой работы был подробно изучен метод Поиска решения и его использование в макросах. Важно отметить, что по умолчания в Excel макросы не работают с Поиском решения. Для корректной работы и избежания ошибок необходимо зайти в код какого-либо из макросов, остановить запущенный макрос квадратной кнопкой Reset. Далее зайти на вкладку Tools, открыть References и поставить галочку напротив Solver. Нажать OK и выйти. После данной процедуры проблем взаимодействия макросов с надстройкой Поиск решения у меня не возникло.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]