Рефераты - Афоризмы - Словари
Русские, белорусские и английские сочинения
Русские и белорусские изложения

Использование 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

0

-1

-1

0

2

1

15

2

692

3

На следующем шаге переменная y примет значение 1437287, а переменная x - значение 4, в результате чего в блоке 6 управление будет передано на завершение программы.

1.2. В случае, когда в блоке 6 управление передается не на блок 3, а на блок 4 на каждой итерации цикла вычисления будут проводиться точно также, однако результата на экране монитора мы не увидим. Задание №2

Составить в среде VBA линейную программу на языке Basic в виде подпрограммы-функции для вычисления заданной величины s в соответствии с вариантом (раздел А), зависящей от величин p, q и r, заданных в разделе Б.

Вычислить в ЭТ Excel значение определенной функции, задав значения входным переменным.

N п/п

р

q

r

10

Выполнение задания

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

10

Выполнение задания

Для поставленной задачи: входные параметры -- б, в, г, х и у; вычисляемые параметры -- 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 вар.

10

Выполнение задания

Составление в среде 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.

ref.by 2006—2025
contextus@mail.ru