|
Лабораторная работа № 14
VBA. Линейные операторы.
Цель работы: изучение объектов Visual Basic for Application на примере линейной программы
1. ОСНОВНЫЕ ТЕОРЕТИЧЕСКИЕ ПОЛОЖЕНИЯ:
Рабочая книга EXCEL состоит из рабочих листов. Основу рабочего листа составляет прямоугольная таблица ячеек.
Для обращения к рабочему листу из редактора VBA, следует использовать объект Worksheets (N), где N -номер рабочего листа рабочей книги. Этот объект не позволяет непосредственно обратится к ячейке таблицы.
Для получения данных из ячейки или их возврата в нее используется объект Range.
Объект Range имеет свойства: Range и Сells.
Для задания адресов ячеек используются два типа форматов:
— формат А1;
— формат R1C1.
В формате А1 имя ячейки строится из имени столбца (А, В…) и имени строки (1..16384). Адреса ячеек в этом формате являются относительными. Признаком абсолютного адреса является знак "$" в имени строки или столбца.
Формат R1C1 называется так потому, что адрес задается индексом строки (Row) и индексом столбца (Column). И здесь ссылки бывают абсолютные и относительные. В абсолютных ссылках указываются действительные индексы ячейки, в относительных - их смещение по отношению к активной ячейке. Смещение в относительных ссылках задаётся в квадратных скобках и со знаком, учитывающим направление смещения.
ПРИМЕЧАНИЕ: При вызове Range его параметры можно задавать только в формате А1. В формулах и циклах целесообразнее использовать свойство Сells и адресацию R1C1, чтобы явно подчеркнуть относительный характер ссылок.
Пример, характеризующий эти свойства:
|
Range ("A1").Value =5
Range ("A2").Formula = "=A1+2"
Range ("A3:A4").Formula = "=A1+A2"
Переделаем наш пример так, чтобы в формулах использовались ссылки формата R1C1:
|
Range ("A1").Value =5
Range ("A2").Formula = "=R1C1+2"
Range ("A3:A4").Formula = "=R[-2]+R[-1]"
1. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ:
1. Для вычисления выражения с использованием VBA следует ввести исходные данные в ячейки А1 и В1. Результат Вычисление вывести в ячейку С1.
2. Выполнить Сервис/Макрос/Редактор VBA
3.
4. Набрать программу для вычисления формулы, соответствующей вашему варианту.
5. Запустить программу на выполнение.
6. Просмотреть результаты выполнения на рабочем листе.
7. Внести изменения в программу, используя адресацию R1C1.
8. Оформить отчет.
Пример выполнения лабораторной работы:
Задание: вычислить выражение с=Sin(a)/Cos(b).
Текст программы:
Public Sub Lin() ' заголовок процедуры
Dim a, b, c As Double ' раздел описания переменных
'Исполняемая часть программы
a = Worksheets(1).Range("a1").Value 'присваивание переменной а числового значения ячейки а1 рабочего листа
b = Worksheets(1).Range("b1").Value ' присваивание переменной b числового значения ячейки b1 рабочего листа
c = Sin(a)/Cos(b) ' вычисление арифметического выражения
Worksheets(1).Range("c1").Value = c ' передача вычисленного значения в ячейку С1 рабочего листа 1
End Sub 'конец процедуры
СОДЕРЖАНИЕ ОТЧЕТА:
1. Название лабораторной работы.
2. Цель работы.
3. Задание
4. Схема алгоритма.
5. Текст программы.
6. Выводы.
ЗАДАНИЯ ДЛЯ ВЫПОЛНЕНИЯ
1. f(x,y¸z) = (x**2-y**2)/(1+z+x**2).
2. f(x,y,z) = (x+y+z)/(x**2+y**2+z**2).
3. Вычисление площади прямоугольного треугольника по двум катетам. Катет a=5, катет b = 3.
4. f(x,y)=x./(1+y)+y/(1+x)+1/(x+y).
5. Вычисление площади куба по его стороне а=3.
6. f(x,y,z)=(x+y+z)/(x*y*z).
7. f(a,b,c,x)=a*x**2+b*x+c.
8. Вычисление процентного отношения двух чисел (сколько процентов составляет величина первого от величины второго). Исходные данные: первое число 5.7 второе число 8.7.
9. f(x,y,z)=x/y/z+z/y/x/+y/x/z.
10. Вычисление дискриминанта квадратного уравнения. Исходные данные а=5.9, b=8.9, с= 0.7.
11. f(x,y)=(x+y)(x**2+y**2)(x**3+y**3).
12. Вычисление объема шара по заданному радиусу r =5.78.
13. Вычисление объема цилиндра по заданному радиусу и высоте - r=5.1 h=1.9.
14. f(x,y,z)=(x*y*z)/(x+y**2+z**3).
15. Вычисление главной диагонали параллелепипеда. Исходные данные a=4, b=3, c=6.
16. Вычисление произведения четырех вещественных чисел. Исходные данные x1=3 x2=4.1 x3=1.8 x4=0.8.
Дата добавления: 2015-11-04; просмотров: 20 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Контрольная работа по эконометрике №2 | | | Z=x*cos(y) , u=z^2+y^2+zy, z=x^2+y^2, z=sqrt(4+x^2+y^2) , z=x^3-3x^2y+3xy^2+1, z=ln(x+y), z=yln(x), z=x^3+2xy^2-y^4, |