
- •Содержание
- •1.1 Постановка задачи 3
- •2. Основы векторной и растровой графики 25
- •2.1 Постановка задачи 25
- •3. Заключение 30
- •1. Основы программирования и численных алгоритмов
- •1.1 Постановка задачи
- •1.1.1 Цель работы
- •1.1.2 Обобщённая формулировка задачи
- •1.2. Анализ задачи
- •1.2.1 Метод бисекции
- •1.2.2 Метод Ньютона
- •1.2.3 Математическое решение задачи
- •1.3 Решение путём написания программы
- •1.3.1 Блок схема программы и блок-схемы алгоритма поиска
- •1.3.2 Руководство пользователя
- •1.3.3 Тексты программы
- •1.3.4 Тестовая задача и результаты прогона тестовой задачи
- •1.4 Решение таблицей в Excel
- •1.4.1 Структура таблицы
- •1.4.2 Таблица в виде формул
- •1.4.3 Макрос
- •1.4.4 Таблица результатов
- •Стоит отметить, что 10 значений явно недостаточно для определения точного результата, который, судя по таблице, расположен в диапазоне [-7.8; -7.72].
- •1.4.5 График результатов
- •1.4.6 Методика применения таблицы
- •1.5. Выводы
- •1.5.1 Сравнение результатов
- •1.5.2 Сравнение методов решения
- •1.5.3 Рекомендации по области применения методов
- •2. Основы векторной и растровой графики
- •2.1 Постановка задачи
- •2.1.1 Цель работы
- •2.1.2 Обобщённая формулировка задачи
- •2.2 Векторная 2d графика
- •2.2.1 Анализ чертежа
- •2.2.2 Описание построения чертежа
- •2.2.3 Чертёж, вставленный в формате gif
- •2.2.4 Чертёж вставленный в Word, в формате wmf
- •2.2.5 Сравнительный анализ качества преобразования изображения
- •2.3 Векторная 3d графика
- •2.3.1 Анализ формы модели
- •2.3.2 Описание построения модели
- •3. Заключение
1.4.2 Таблица в виде формул
Поскольку заполнение таблицы Excel производится с помощью макроса, то удобнее заполнять таблицу непосредственно вычисленными значениями. Однако рассмотрим, как можно было бы заполнить таблицу в виде формул.
Таблица имеет четыре столбца. Первый из них это значения x, которые меняются с определённым шагом и на определённом отрезке значений. Определим формулы Excel для остальных трёх столбцов относительно значения x, которое находится в ячейке A1:
Таблица 1. Формулы для таблицы Excel
Поле таблицы |
Формула Excel |
tan(x) |
=TAN(A1) |
2*x |
=2*A1 |
tan(x)-2*x |
=TAN(A1) – 2*A1 |
1.4.3 Макрос
Как уже отмечалось, таблица Excel заполняется при помощи простого макроса написанного на языке VBA стандартными средствами среды MS Excel. Также данный макрос обновляет диаграммы. Рассмотрим последовательно действия макроса.
Прежде всего, макрос делает активным страницу на которой расположены все таблицы и диаграммы. Называется эта страница «List». После это в соответствующие переменные записываются значения правой и левой границы, а также точности (количества строк в таблице данных). На основе входных данных вычисляется шаг, на который меняется значение в столбце с X. После этого макрос используя цикл заполняет таблицу данных, автоматически вычисляя значения полей. Цикл выполняет ровно столько итераций, сколько указано в поле «Точность». Когда таблица сформирована можно обновлять данные в диаграммах. Для каждой диаграммы обновляется диапазон значений исходных данный, в результате чего диаграммы автоматически перестраиваются.
Код макроса приведён ниже:
Sub CalcPolya()
Worksheets.Item("List").Activate
a = Range("G1")
b = Range("G2")
e = Range("G3")
step = (b - a) / e
temp = a
Range("A1").Select
For i = 1 To e
ActiveSheet.Cells(i + 1, 1) = temp
ActiveSheet.Cells(i + 1, 2) = Tan(temp)
ActiveSheet.Cells(i + 1, 3) = 2 * temp
ActiveSheet.Cells(i + 1, 4) = Tan(temp) - 2 * temp
temp = temp + step
Next i
' tan(x)-2*x
ActiveSheet.ChartObjects(1).Activate
ActiveChart.SeriesCollection(1).XValues = ActiveSheet.Range(Cells(2, 1), Cells(e, 1))
ActiveChart.SeriesCollection(1).Values = ActiveSheet.Range(Cells(2, 4), Cells(e, 4))
' tan(x) 2*x
ActiveSheet.ChartObjects(2).Activate
ActiveChart.SeriesCollection(1).XValues = ActiveSheet.Range(Cells(2, 1), Cells(e, 1))
ActiveChart.SeriesCollection(1).Values = ActiveSheet.Range(Cells(2, 2), Cells(e, 2))
ActiveChart.SeriesCollection(2).XValues = ActiveSheet.Range(Cells(2, 1), Cells(e, 1))
ActiveChart.SeriesCollection(2).Values = ActiveSheet.Range(Cells(2, 3), Cells(e, 3))
' tan(x) tan(x)-2*x
ActiveSheet.ChartObjects(3).Activate
ActiveChart.SeriesCollection(1).XValues = ActiveSheet.Range(Cells(2, 1), Cells(e, 1))
ActiveChart.SeriesCollection(1).Values = ActiveSheet.Range(Cells(2, 2), Cells(e, 2))
ActiveChart.SeriesCollection(2).XValues = ActiveSheet.Range(Cells(2, 1), Cells(e, 1))
ActiveChart.SeriesCollection(2).Values = ActiveSheet.Range(Cells(2, 4), Cells(e, 4))
End Sub