Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая Кочурова Н.СЭ-11.docx
Скачиваний:
1
Добавлен:
21.09.2019
Размер:
505.45 Кб
Скачать

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