Тема: Операторы повторения (циклы). Итерационные методы вычислений
Вариант №0 Задача: Разработать программу на VBA вычисления заданной площади, используя три различных метода вычислений: прямоугольников, трапеции и Симпсона. Результат вывести в таблицы EXCEL.
Пояснения:Для решения реализации данной задачи были разработаны следующие процедуры и функции: Расчет(), F(x), Sbar(n), Strap(n), SSim(n), S_figyri, Очистка(). Главной среди данных процедур является процедура Расчет. В этой процедуре с помощью команды InputBox происходит ввод значений переменных a и b, а – это начало отрезка интегрирования (суммирования площадей), b - это конец отрезка интегрирования. Так как в методическом пособии не была указана функция, образующая фигуру, то мы сами выбрали эту функцию и интервалы интегрирования. После введения интервала интегрирования мы, используя цикл с параметром, вводим количество разбиений интервала интегрирования. По заданию их 3. Их значения сохраняем в одномерном массиве N().Так как вводимые значения воспринимаются средой VBA как строки, то используя функцию Val, преобразуем введенные значения в числовые. Далее, используя цикл с параметром i от 1 до 3 и вложенный в него цикл по j от 1 до 3 заполняем двумерный массив S() 3 на 3 значениями площади заданной фигуры, рассчитанной тремя различными методами и с различными вариантами разбиения интервала интегрирования. Методы вычисления площадей записаны в отдельных функциях, описанных ниже, а количество разбиений берем из заполненного ранее массива N. Далее идет обращение к процедуре S_figyri. Эта процедура изначально создана с помощью записи макроса, ее цель – оформление таблицы на листе Excel заданным образом. Затем мы зашли в VBA и отредактировали макрос так, чтобы он еще и заполнял таблицу полученными значениями площадей. Далее, используя процедуру вывода MsgBox и константу vbYesNo, мы выводим на экран окно с вопросом о повторе вычислений. Если пользователь нажмет YES, то произойдет сначала очистка ячеек таблицы с помощью процедуры Очистка (записана как макрос), а затем переход к метке 1 и начнется повтор ввода данных и вычисления. Если пользователь выберет No, то произойдет завершение работы программы. В программе каждый метод отыскания площади записан как отдельная функция. Ниже приведены блок-схемы для каждого метода. Справочный материал 1. Формулы прямоугольников: h[Y(0)+Y(1)+... +Y(N-1)]
2. Формула трапеций: h[(Y(0)+Y(N))/2+Y(1)+Y(2)+... +Y(N-1)]
3. Формула Симпсона: h/6[(Y(0)+Y(N)+2(Y(1)+Y(2)+... +Y(N-1))+ +4(Y(1/2)+Y(3/2)+... +Y(N-1/2))]
Здесь: h - шаг дискретизации (h=(B-A)/N) на отрезке интегрирования [A,B]; N - число разбиений; Y(i) - значение подинтегральной функции на i-том шаге дискретизации, Y(0) и Y(N) - соответственно значения функции в начальной и конечной точках отрезка интегрирования, Y(1/2), Y(3/2), Y(N-1/2) - значения функции в точках середин отрезков соответственно между 1-м и 2-м, 2-м и 3-м, (N-1)-м и N-м итерациями или шагами. Так как в задании не указана функция, по которой нужно находить площадь, то мы взяли для примера элементарную F = x ^ 2, которую можно заменить, сделав исправления в функции
|