Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

LABORATORNAYa_RABOTA_9

.pdf
Скачиваний:
17
Добавлен:
04.06.2015
Размер:
624.53 Кб
Скачать

ЛАБОРАТОРНАЯ РАБОТА № 9

Задание 1. Вычисление определённого интеграла

Цель работы: уяснить сущность метода численного решения задачи и овладеть первичными навыками составления, ввода, трансляции, отладки, исполнения и оформления программного модуля.

Содержание работы:

1.Для заданного варианта интегрируемой функции (номер варианта соответствует порядковому номеру в списке группы) составить и ввести программный код подпрограммы-функции. Пример:

Function f(ByVal x As Single) As Single f = (Заданное выражение функции)

End Function

2.Объявить (описать) переменные, используемые в модуле программы.

Пример:

Dim a As Single

3.Составить и ввести программные коды для ввода исходных данных с клавиатуры.

Пример программного кода: Do

Do

prom=InputBox("Введите начальную границу отрезка a=")

If Not Isnumeric(prom) then MsgBox("Повторите ввод")

Loop Until Isnumeric(prom) a=prom

Do

prom=InputBox("Введите конечную границу отрезка b=") If Not Isnumeric(prom) then MsgBox("Повторите ввод")

Loop Until Isnumeric(prom) b=prom

If a >= b then MsgBox("Повторите ввод")

Loop until a<B< strong> Do

prom=InputBox("Введите погрешность вычисления e =") If Not Isnumeric(prom) then MsgBox("Повторите ввод")

Loop Until Isnumeric(prom) e=prom

WorkSheets("Лист5").Activate 'Из семейства рабочих листов выбрать "Лист5" и сделать его активным.

Cells.Clear 'Очистить все ячейки активного рабочего листа.

ActiveSheet.ChartObjects.Delete 'С активного рабочего листа удалить все графические объекты.

4.Результат решения задачи оформить на выбранном рабочем листе рабочей книги MS Excel. Для этого в тексте программного кода предусмотреть вывод на рабочий лист следующих сообщений: Range("d1") ="Лабораторная работа № 9"

Range("c2")="Вычисление определённого интеграла y = f(x)"

(интегрируемая функция должна соответствовать заданию)

Range("e3")="Исходные данные" Range("d4")="Нижний предел интегрирования a =

"&Csng(a)

Range("d5")="Верхний предел интегрирования b =

"&Csng(b)

Range("d6")="Погрешность вычисления e = "&Csng(e)

5.Используя алгоритм решения задачи, составить и ввести программный код вычисления определённого интеграла.

6.Вывести на рабочий лист результат вычисления:

Cells(8,4).Value="Значение интеграла S = "&Csng(s)

Все эти сообщения должны располагаться на рабочем листе в центре каждой строки видимой части рабочего листа.

7.С помощью макрорекодера записать макрос, в котором отформатировать результаты на рабочем листе:

для первой строки текста задать: шрифт Times New Roman, размер 16, полужирный;

для второй строки текста задать: шрифт Times New Roman, размер 14, полужирный;

для третьей и последующих строк задать: шрифт Times New Roman, размер 12, полужирный.

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

9.Проверить действия отредактированного основного программного кода и после безошибочного его выполнения удалить модуль макроса.

Запись макроса

Для записи макроса необходимо:

1.В режиме открытой рабочей книги MS Excel и активного рабочего листа книги, на котором выведены результаты вычисления интеграла, раскрыть меню Сервис и выполнить щелчок мышкой по строке Макрос.

2.В меню Макрос выполнить щелчок мышкой по строке Начать запись. После выполнения этой команды на рабочем листе появится кнопка Остановить запись, которую переместить в правый верхний угол видимой части рабочего листа. Для этого установить указатель мышки на поле кнопки и при нажатой левой клавише мышки переместить её в нужное место.

3.Начать форматирование текста. После окончания форматирования выполнить щелчок мышкой по кнопке

Остановить запись.

Вывод программного кода макроса в окно редактора Visual Basic

Для вывода программного кода макроса в окно редактора Visual Basic необходимо:

1.В режиме открытой рабочей книги MS Excel и активного рабочего листа книги, на котором выведены результаты вычисления интеграла, раскрыть меню Сервис и выполнить щелчок мышкой по строке Макрос.

2.В меню Макрос выполнить щелчок мышкой по строке

Редактор Visual Basic.

3.В окне Project - VBAProject выполнить щелчок мышкой по крестику слева от папки Modules, а затем выполнить двойной щелчок мышкой по ярлыку Module1. Если создано несколько макросов, то выбирается нужный номер макроса.

Методы вычисления определённого интеграла

Численное решение рассматриваемой задачи в режиме программирования может быть выполнено рядом методов. Среди них можно отметить следующие методы: метод прямоугольников, метод трапеций и метод Симпсона (метод парабол). Эти методы с точки зрения программной реализации отличаются только методом вычисления площади фигуры, ограниченной отрезками функции в точках нижнего и верхнего пределов интегрирования [a, b], линией графика функции и отрезком оси X в границах [a, b]. Методы могут отличаться точностью результатов вычислений, если задачу решать без достижения требуемой точности, а также скоростью решения. Однако, если задачу решать, добиваясь требуемой точности результата, то указанные различия могут быть только в скорости решения. Различия в скорости решения можно определить по величине числа N, которое зависит от количества повторений (итераций) внешнего цикла в алгоритме задачи. Поэтому остановимся только на методе прямоугольников как наиболее простом.

Алгоритм вычисления определённого интеграла методом прямоугольников

Варианты к заданию 1

 

Функция f(x)

п/п

 

 

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

a

 

b

 

 

Функция f(x)

 

a

 

b

 

 

п/п

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

2

 

15

 

 

 

0,5

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

2

 

16

 

 

 

-1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

2

 

17

 

 

 

0

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,5

 

1,5

 

18

 

 

 

-1

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

3

 

19

 

 

 

0

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

2

 

20

 

 

 

0,5

 

1,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

21

 

 

 

0,5

 

1,5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

22

 

 

 

0

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0,5

 

2

 

23

 

 

 

1

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1,5

 

24

 

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

1

 

25

 

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

2

 

26

 

 

 

0

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

2

 

27

 

 

 

1

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

2

 

28

 

 

 

0

 

1

 

 

 

 

 

 

 

 

 

 

 

Задание 2. Табулирование функции одной переменной

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

Содержание работы:

1.Проанализировать заданную функцию на предмет выявления возможных неопределённостей и результаты анализа реализовать при составлении программного модуля. Алгоритм вычисления функции должен обеспечивать исключение вычисления функции в точках неопределённостей и выдавать сообщение о наличии таковых. Эту задачу можно реализовать либо в основном программном модуле, либо в подпрограммефункции.

2.Для выражения функции составить и ввести программный код подпрограммы-функции.

3.Объявить (описать) переменные, используемые в модуле программы.

4.Составить и ввести программные коды для ввода исходных данных с клавиатуры.

5.Используя алгоритм решения задачи, составить и ввести программный код табулирования функции.

6.Результаты решения задачи оформить на выбранном рабочем листе рабочей книги MS Excel. Для этого в тексте программного кода предусмотреть вывод на рабочий лист следующих сообщений: ;

"Табулирование функции y = xLn(x) - 1" (функция должна соответствовать заданию);

"Исходные данные";

"Начальная граница функции a = " + значение;

"Конечная граница функции b = " + значение;

"Количество шагов табулирования n = " + значение;"

"Величина шага табулирования h = " + значение;

"Результаты вычислений" - заголовок таблицы;

"№ п/п" - имя первой колонки таблицы;

"x" - имя второй колонки таблицы;

"y" - имя третьей колонки таблицы.

7.Тщательно рассчитать адреса ячеек рабочего листа для всех выводимых на лист результатов.

8.С помощью макрорекодера записать макрос, в котором оформить рамку таблицы, отформатировать содержание таблицы и все другие результаты на рабочем листе аналогично заданию 1, создать диаграмму-график и оформить её.

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

также блок кода, создающего диаграмму-график функции. 10.Проверить действия отредактированного программного кода и

после безошибочного его выполнения удалить модуль макроса. 11.Отформатировать диаграмму-график и разместить на рабочем

листе MS Excel.

Алгоритм табулирования функции

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

Варианты к заданию 2

 

Функция f(x)

 

 

Функция f(x)

п/п

 

 

п/п

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

17

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

18

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

19

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

21

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

22

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

 

23

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

 

 

 

24

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10

 

 

 

25

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

11

 

 

 

26

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

27

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

13

 

 

 

28

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

14

 

 

 

29

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15

 

 

 

30

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вычисление значения функции arcSin(x), отсутствующей в языке программирования VBA, можно свести к элементарным тригонометрическим преобразованиям:

Возведение в степень xy (если возникают проблемы, которые возможны при отрицательном x или при нецелочисленном y) можно свести к эквивалентному представлению для неотрицательного x:

при x > 0 xy =

при x = 0, y = 0 xy = 1;

при x = 0, y > 0 xy = 0;

если x < 0, а значение y целое и чётное, тогда xy = ;

если x < 0, а значение y целое и нечётное, тогда xy = - ;

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