Использование Visual Basic Application
В случае, когда в блоке 6 управление передается не на блок 3, а на блок 4 на каждой итерации цикла вычисления будут проводиться точно также, однако результата на экране монитора мы не увидим. Задание № 2. В ходе выполнения блока 2 производится инициализация первоначальных значений переменных x, y и порогового значения b1. В результате в ячейке x будет храниться значение -1, в ячейке y — 0… Читать ещё >
Использование Visual Basic Application (реферат, курсовая, диплом, контрольная)
Министерство образования Республики Беларусь
Учреждение образования
«Брестский государственный технический университет»
Кафедра информатики и прикладной математики
Контрольная работа № 2
по дисциплине: «Информатика»
Брест 2009
Задание № 1
Описать работу ЭВМ при выполнении программы по блок-схеме из раздела, А при указанных в разделе Б исходных данных.
Как будет работать ЭВМ, если управление из блока 6 блок-схемы, А передается не на блок 3, а на блок N?
Решение дифференциального уравнения y'= f (x, y) с начальным условием y (a)=y0.
f (x, y) = x+3y2, a = -1, y (a) = 0
Алгоритм выполнения расчетов представлен ниже:
1.1. Выполняя блок 1, машина «запросит» значения переменных a, b, h и y0. Если пользователь введет в ЭВМ числа -1, 3, 1 и 0, то в ячейки для переменных a, b h и y0 запишутся числа 2, 6, 1 соответственно. Затем управление будет передано на блок 2.
В ходе выполнения блока 2 производится инициализация первоначальных значений переменных x, y и порогового значения b1. В результате в ячейке x будет храниться значение -1, в ячейке y — 0, в ячейке b1 — 3.5.
Выполняя блок 3, ЭВМ должна вывести на экран значение переменных x, y. Далее управление должно быть передано на блок 4.
В блоке 4 производится расчет нового значения переменной y. В результате работы данного блока переменная y примет значение -1.Далее управлении передается в блок 5.
В блоке 5 производится расчет нового значения переменной x. В результате работы данного блока переменная x примет значение 0. Далее управлении передается в блок 6.
Блок 6 производит сравнение переменной x с переменной b1. Если значение переменной х меньше b1 — управление будет передано в блок 3. Иначе — будет выполнено завершение программы. В нашем случае значение 0 < 3.5, следовательно, управление будет передано в блок 3.
Таким образом программа будет выполняться по приведенному выше алгоритму до тех пор, пока значение переменной х не станет больше 3.5. При этом на экран монитора будут выведены следующие данные.
y | x | |
— 1 | ||
— 1 | ||
На следующем шаге переменная y примет значение 1 437 287, а переменная x — значение 4, в результате чего в блоке 6 управление будет передано на завершение программы.
1.2. В случае, когда в блоке 6 управление передается не на блок 3, а на блок 4 на каждой итерации цикла вычисления будут проводиться точно также, однако результата на экране монитора мы не увидим.Задание № 2
Составить в среде VBA линейную программу на языке Basic в виде подпрограммы-функции для вычисления заданной величины s в соответствии с вариантом (раздел А), зависящей от величин p, q и r, заданных в разделе Б.
Вычислить в ЭТ Excel значение определенной функции, задав значения входным переменным.
N п/п | р | q | r | |
Выполнение задания
1) Назовем процедуру-функцию для вычисления заданной величины Vel_S.
2) Введем обозначение переменных:
б>a, в>b, г>g, x > x, y>y, p>p, q>q, r>r, s>s.
3) Функция для вычисления s может иметь вид:
Function Vel_S (a, b, g, x, y)
p = (x / y) * ((a ^ 2 * x + 3 * b ^ 2 — y) / (a * x ^ 2 + y))
q = ((3 * x * y ^ 3) / (x * y ^ 2 + 2 * y)) — (b * y)
r = (8.6 * a ^ 2 * b) / (b * x + g * (x + y ^ 2))
s = 2 * p * (q * r ^ 2 + 7.42) — (4.3 * r ^ 2 + 1) ^ (1 / 3) + q * (r — 3.24 * q ^2)
Vel_S = s
End Function
4) Исходные данные разместим в ячейках С3: С7. Для расчета величины s с использованием определенной процедуры-функции необходимо в ячейку B10 ввести формулу =Vel_S (C3;C4;C5;C6;C7)
В результате получим:
Задание № 3
Составить в среде VBA линейную программу на языке Basic в виде подпрограммы-функции для вычисления заданной величины u в соответствии с вариантом (раздел А), зависящей от функций f1, f2 и f3, заданных в разделе Б.
Вычислить в ЭТ Excel значение определенной функции, задав значения входным переменным.
N п/п | f1 | f2 | f3 | |
Выполнение задания
Для поставленной задачи: входные параметры — б, в, г, х и у; вычисляемые параметры — p, q и r.
Составление в среде VBA программы на языке Basic:
1) Назовем процедуру-функцию для вычисления заданной величины Vel_U.
2) Введем обозначение переменных:
a>a, b>b, x>x, f1(x) > f1, f2(x) > f2, f3(x) > f3, u>u.
3) Функция для вычисления u может иметь вид:
Function Vel_U (a, b, x)
Pi = 4 * Atn (1)
f1 = 3 — 2 * (Cos ((x + 7) / 3)) ^ 2
f2 = Tan ((4 * Pi) / 5) + (2 * Exp (2 + x)) ^ (1 / 3)
f3 = Log (3 / (2 * x ^ 2 + 1))
buf1 = b * (f1 ^ 2) + Abs (7.05 — f2)
buf2 = Exp (f2 + (f3 ^ 2)) + 2
buf3 = a * (f1 + 2 * f3)
buf4 = Sqr (Abs (f2 + (f3 ^ 2)) + a ^ 2) + 2
buf5 = buf1 / buf2
abuf5 = Atn (buf5)
buf6 = buf3 / buf4
sbuf6 = Sin (buf6)
u = abuf5 + sbuf6
Vel_U = u
End Function
Исходные данные находятся в ячейках С3: С5. В ячейку B8 введем формулу =Vel_U (C3;C4;C5). В результате выполнения функции получим:
Задание № 4
Составить в среде VBA разветвляющуюся программу на языке Basic в виде подпрограммы-функции для вычисления функции y (x) в соответствии с вариантом (раздел А), зависящей от функций, заданных в разделе Б.
Вычислить в ЭТ Excel значение определенной функции, задав значение переменной x.
N вар. | |||||
Выполнение задания
Составление в среде VBA программы на языке Basic:
1) Назовем процедуру-функцию для вычисления заданной величины Fun_Y.
2) Введем обозначение переменных:
для входных параметров б>a, x>x
для выпомогательной величины
buf>buf, f1>f1, f2>f2, z1>z1, z2>z2
для искомого значения функции y (x) > y
3) Функция для вычисления Y может иметь вид:
Function Fun_Y (x, a)
f1 = x ^ 4 — 3
f2 = 2 * x + 1
z1 = Log (3 + Abs (x — 1))
z2 = (Cos (x)) ^ 2
buf1 = a + f2
buf2 = Cos (f1)
If buf1 < buf2 Then
y = ((z1 — a) ^ (1 / 3) + f1) / (1 + Log (1 + f2 ^ 2))
Else
y = z2 * Sqr (a + (Atn (f1)) ^ 2)
End If
Fun_Y = y
End Function
В ячейки С3: С4 заносим исходные данные. В ячейку B7 введем формулу =Fun_Y (C4;C3). В результате получим:
Задание № 5
программа макрос процедура функция
1. Составить в среде VBA программу на языке Basic в виде подпрограммы-процедуры для решения задачи, указанной в разделе А. Выполнить в ЭТ Excel макрос (процедуру) для функции y=f (x), указанной в разделе Б, при этом результаты вывести на рабочий лист.
2. В СКМ MathCad на отрезке [-2; 2] найти
а) все корни функции y=f (x) с помощью функции root ();
б) все локальные экстремумы (максимумы и минимумы) функции y=f (x) с помощью функций Maximize () (Minimize ()).
3. В ЭТ Excel выполнить задание пункта 2 с помощью надстройки Поиск решения, предварительно построив таблицу значений функции y=f (x) на отрезке [-2; 2] при количестве разбиений n=25.
Программа для приближенного решения дифференциального уравнения y'=f (x), y (a)=y0, по формуле Эйлера.
Описание действий по выполнению задания
1. Введем обозначение переменных nN, yY, sS.
2. Исходными данными в задаче являются значения переменных: a, b, n. вычисляемые: s.
3. Исходные данные считываем с активного листа Excel, туда же выводим результат вычислений.
4. Исходные данные располагаются в следующей таблице.
Текст программы-процедуры:
Sub Fun_S ()
a = Range («C3»).Value
b = Range («C4»).Value
n = Range («C5»).Value
y0 = Range («C6»).Value
h = (b — a) / n
S = y0
For x = a To b Step h
f = h*((2*Cos (x+3))-((Log ((3+2*x)^2+1))/((2-x)^2+5)))
S = S + f
Next x
Range («C9»).Value = S
Range («C10»).Value = h
End Sub
В результате получим:
Выполнение задания в СКМ MathCad:
В ЭТ Excel построим таблицу значений функции y=f (x) (протабулируем функцию). Для этого напишем программу-процедуру:
Sub Tab_S ()
a = Range («C3»).Value
b = Range («C4»).Value
n = Range («C5»).Value
h = (b — a) / n
rw = 10
For x = a To b Step h
f = h * ((2 * Cos (x + 3)) — ((Log ((3 + 2 * x) ^ 2 + 1)) / ((2 — x) ^ 2 + 5)))
Cells (rw, 2).Value = x
Cells (rw, 3).Value = f
rw = rw + 1
Next x
End Sub
Результат выполнения Tab_S () представлен ниже.
Выберем отрезок, содержащий корень функции y=f (x) с помощью операций копирования и специальной вставки:
В ячейку С8 введем начальное значение, принадлежащее выбранному отрезку, в ячейку С9 — формулу для расчета функции y=f (x):
Уточним значение используя надстройку Поиск решения:
Аналогичным образом уточняем значения всех остальных корней:
Выберем отрезок, содержащий локальный максимум функции y=f (x).
В ячейку С9 введем значение, соответствующее середине выбранного отрезка, а в ячейку С10 — формулу для расчета значения функции:
Уточним значение локального максимума, используя надстройку Поиск решения:
Аналогичным образом уточняем второй локальный максимум:
Уточним значение локального минимума, используя надстройку Поиск решения. В ячейку С9 введем значение, соответствующее середине выбранного отрезка, а в ячейку С10 — формулу для расчета значении функции:
Аналогичным образом уточняем второй локальный минимум:
Гельман В. Я. Решение математических задач средствами Excel: Практикум. — СПб.: Питер, 2000.
Долженков В.А., Колесников Ю. В. Microsoft Excel 2000. СПб.:BHV-С-Петербург, 1999.
Ларсен Рональд У. Инженерные расчеты в Excel. — М.: Издательский дом «Вильямс», 2002.
Попов А.А. Excel: практическое руководство. — М. ДЕСС КОМ, 2000.