Помощь в написании студенческих работ
Антистрессовый сервис

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

Показать весь текст
Заполнить форму текущей работой