6378
.pdf
Окончание табл. 2.1
1 |
|
|
|
2 |
|
|
|
|
|
|
|
3 |
|
|
lg x |
3 |
|
x |
|
, x 1 |
|
||||
|
|
|
|
|||||||||
|
a |
|
|
|
|
|||||||
12 |
y |
|
|
|
|
|
|
|
|
2 |
|
a = 0,9 |
|
|
|
|
|
|
|
|
|
|
, x 1 |
|
|
|
2a cos x 3x |
|
|
|||||||||
|
|
a |
bi |
2 |
c,i 4 |
|
||||||
|
|
|
|
|
||||||||
|
|
i |
|
|
|
|
|
|
|
|
a = 2,1 |
|
13 |
|
i, 4 i 6 |
|
|
b = 1,8 |
|||||||
|
|
|
ai bi3, i |
6 |
c = –20,5 |
|||||||
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
i2 1 |
|
i2 1 |
0 |
|
|||
|
a sin |
|
, |
|
|
|
|
||
|
|
|
n |
|
|
n |
|
a = 0,3 |
|
14 |
|
|
|
|
|||||
z |
|
|
i2 1 |
|
|
n = 10 |
|||
|
|
|
1 |
0 |
|||||
|
cos i |
, |
|
n |
|
|
|||
|
|
|
n |
|
|
|
|
|
|
|
|
at2 b sin t 1, t 0,1 |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
t 0 |
|
|
|
|
|
a = 2,5 |
15 |
at b, |
|
|
|
|
|
|||
|
at2 b cos t 1, t 0,1 |
b = 0,4 |
|||||||
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Пример выполнения работы
Вычислить на ЭВМ значение функции
at b, at 1 s cos at, at 1
e at cos at, at 1
для a = 1,3, b = 1,29.
Схема алгоритма решения представлена на рисунке 2.1.
10
1
|
|
|
|
начало |
|
|
|
|
|
|
ввод исходных данных |
||
|
|
|
|
|||
2 |
|
|
||||
|
|
|
|
a,b,t |
|
вычисление значений |
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
3 |
|
|
|
||
|
|
|
|
s=f1(t) |
|
функции s при любых at |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
да |
|
|
|
|
|
|
||
4 |
|
at=1 |
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
вычисление значений |
||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
функции s при at= 1 |
||
|
|
нет |
|
|
|
|
|
s=f2(x,z) |
|
|||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
6 |
|
at>1 |
да |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
вычисление значений |
||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
|
|
|
|
||
|
|
|
|
|
|
|
|
|
функции s при at>1 |
|||
|
|
нет |
|
|
|
|
|
s=f2(x,z) |
|
|||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||||
8 |
|
|
s |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
вывод вычисленных |
|||
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
значений функции s |
||
9 |
|
|
|
|
|
|
|
|
|
|||
|
|
конец |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|||
Рисунок 2.1 – Схема алгоритма программы
Программа, реализующая на языке VBA схему алгоритма, представленную на рисунке 2.1, имеет вид:
Sub LR2()
'Объявление переменных
Dim a As Double, b As Double, t As Double, s As Double
a= Val(InputBox("a=")) 'Ввод a
b= Val(InputBox("b=")) 'Ввод b
11
t = Val(InputBox("t=")) 'Ввод t
s = a * t + b 'Вычисление значения функции для любых at
If a * t = 1 Then s = Cos(a * t) 'Вычисление значения функции для at=1
If a * t > 1 Then s = Exp(-a * t) * Cos(a * t) 'Вычисление значения функции для at>1
sp = MsgBox(s, , "s=") 'Вывод s End Sub
В качестве тестовых наборов исходных данных примем следующие тесты:
1)a = 1, b = 1, t = 0,5, s = 1 0,5 + 1 = 1,5;
2)a = 1, b = 1, t = 1, s = cos(1) = 0,5403;
3)a = 2, b = 1, t = 1, s = e–2 cos(2) = 0,0563.
Лабораторная работа № 3
ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ
Цель работы: овладеть практическими навыками разработки и программирования алгоритмов циклической структуры, приобрести навыки по созданию форм пользователя и применению элементов управления.
Задания для самостоятельной подготовки
1. Изучить:
–организацию алгоритмов циклической структуры;
–возможности языка программирования для построения циклов;
–приемы программирования: вычисление определенных интегралов по методу прямоугольников и трапеций;
–свойства объектов.
2.Разработать алгоритм решения в соответствии с заданием.
3.Создать форму пользователя с необходимыми полями.
4.Составить программу решения задачи.
5.Для контроля вычислений определить математическое выражение точного значения интеграла и включить вычисление его в программу.
12
Задание к работе
Вычислить на ЭВМ значение интеграла
b
s f x dx,
a
приведенного в таблице 3.1, на заданном отрезке интегрирования [a,b] (в соответствии с вариантом задания). Считать заданным число разбиений отрезка интегрирования n и метод численного решения. Включить в программу вычисление точного значения интеграла по первообразной функции, приведенной в таблице 3.2. Вывести приближенное, точное значения интеграла и относительную погрешность вычисления в процентах.
Таблица 3.1
|
Подынтегральная |
Метод |
Число |
Отрезок |
Требуемая |
||||
Вариант |
численного |
разбиений |
интегри- |
||||||
|
функция f(x) |
решения |
n |
рования a,b |
точность |
||||
1 |
|
|
2 |
|
3 |
4 |
5 |
6 |
|
1 |
(ln2 x) / x |
Метод |
60 |
[1;4] |
10–4 |
||||
|
|
|
|
|
трапеций |
|
|
|
|
|
1 |
sin 1 |
Метод |
|
|
0,5.10–3 |
|||
2 |
прямо- |
50 |
[1;2,5] |
||||||
|
x 2 |
||||||||
|
|
x |
угольников |
|
|
|
|||
3 |
xx 1 ln x |
Метод |
40 |
[1;3] |
10–4 |
||||
|
|
|
|
|
трапеций |
|
|
|
|
4 |
|
cos x |
|
-//- |
60 |
[0; /2] |
10–4 |
||
5 |
|
sin2 x |
|
-//- |
60 |
[0; /2] |
0,5.10–3 |
||
6 |
|
ex sin x |
|
-//- |
100 |
[0;1] |
10–4 |
||
|
((ln x) / x)2 |
Метод |
|
|
10–4 |
||||
7 |
прямо- |
50 |
[1;2,5] |
||||||
|
|
|
|
|
угольников |
|
|
|
|
8 |
|
x arctg x |
Метод |
50 |
[0;3] |
0,5.10–3 |
|||
|
|
|
|
|
трапеций |
|
|
|
|
9 |
|
|
|
2 |
Метод |
|
|
10–5 |
|
1 / |
9 x |
прямо- |
100 |
[0;2] |
|||||
|
|
угольников |
|
|
|
||||
|
|
|
|
|
|
|
|
||
10 |
|
ex cos2 x |
Метод |
60 |
[0; ] |
10–4 |
|||
|
|
|
|
|
трапеций |
|
|
|
|
13
Окончание табл. 3.1
1 |
|
|
|
2 |
|
|
3 |
4 |
5 |
6 |
|
x3 / 3 x2 |
Метод |
|
|
0,5.10–4 |
|||||
11 |
прямо- |
80 |
[1;2] |
|||||||
|
|
|
|
|
|
|
угольников |
|
|
|
12 |
x2 ln(x2 1) |
Метод |
50 |
1;2 |
10–4 |
|||||
|
|
|
|
|
|
|
трапеций |
|
|
|
|
|
e |
x |
e |
x |
|
Метод |
|
|
|
13 |
x |
|
|
|
прямо- |
50 |
0;2 |
10–4 |
||
|
|
2 |
|
|||||||
|
|
|
|
|
|
угольников |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
14 |
x2 sin2 x |
|
Метод |
100 |
1;2 |
10–4 |
||||
|
|
|
|
|
|
|
трапеций |
|
|
|
15 |
|
|
|
x |
|
|
-//- |
50 |
1;2 |
0,5.10–3 |
|
|
x 1 |
|
|
||||||
|
|
|
|
|
|
|
|
|
||
Таблица 3.2
Ва- |
Первообразные функции |
|
риант |
F x |
f x dx |
1 |
2 |
|
1(ln3 x) / 3
2cos 1 / x
3 |
|
|
|
|
|
|
xx |
|
|
|
|
|
4 |
|
|
|
|
|
sin x |
|
|
|
|
||
5 |
|
|
|
x |
|
sin 2x |
|
|
|
|||
|
|
|
2 |
|
|
4 |
|
|
|
|
||
6 |
|
ex |
|
|
|
|
|
|
|
|||
|
2 sin x cos x |
|||||||||||
|
|
|||||||||||
7 |
|
1 ln2 x 2 ln x 2 |
||||||||||
|
|
x |
|
|
|
|
|
|
|
|
|
|
8 |
x2 |
1 |
arctg x |
x |
||||||||
|
|
|
2 |
|
|
|
2 |
|
||||
9 |
|
ln |
|
|
x |
2 |
9 |
|
||||
|
x |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
||||
1 |
2 |
1010ex cos 2x 2sin 2x 5
11x2 3 ln x2 3
|
|
|
|
|
2 |
|
|
|
|
2 |
|
|
|
|
|
|
|||
|
|
x3 |
|
|
|
|
|
|
|
|
2x3 |
|
|
2x |
|
|
|||
|
|
|
ln x2 |
1 |
9 |
3 |
|
||||||||||||
12 |
|
3 |
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
2 arctg x |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
|
|
1 |
x |
|
1 |
|
|||||||
13 |
|
e x |
|
|
|
|
|
|
ex |
|
|
|
|
|
|||||
|
2 |
2 |
2 |
2 |
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
x3 |
|
x2 |
|
|
1 |
|
|
|
xcos2x |
|||||||||
14 |
|
|
|
|
|
|
|
|
|
|
sin 2x |
|
|
|
|
|
|||
6 |
|
|
4 |
|
8 |
|
|
4 |
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
|
|
2 |
|
|
x 2 arctg |
|
|
x |
|
|
||||||||
14
В таблице 3.2 приведены выражения для вычисления первообразных функций
b f x dx F x ba F b F a .
a
Пример выполнения работы
Вычислить на ЭВМ методом трапеций значение интеграла
b |
sin2 x |
|
для a = 0, b = π, |
|
s |
|
dx, |
||
1 cos x |
||||
a |
|
|
разбивая отрезок интегрирования на 60 частей. Для контроля вычислить точное значение интеграла и оценить на ЭВМ относительную погрешность метода.
Вычислим точное значение интеграла
|
sin2 x |
|
0 |
|
dx F(b) F(a) b sin b (a sin a) . |
1 cos x |
||
Для оформления интерфейса создадим форму пользователя:
–заходим в редактор VBA (Alt+F11);
–в меню выбираем команду Insert→UserForm;
–изменяем название формы Caption (в окне Properties UserForm1) на «Иванов И.И. гр.101317 Лабораторная работа № 3»;
–вставляем в форму из панели инструментов Toolbox/Controls
следующие объекты: 8 Label, 6 TextBox и один CommandButton;
–располагаем объекты и изменяем заголовки Label и CommandButton как показано на рисунке 3.1.
Двойным щелчком по кнопке «Расчет» заходим в окно редактирования кода программы. В открывшемся окне набираем код программы.
15
Рисунок 3.1 – Внешний вид интерфейса программы
16
1 |
начало |
|
|
|
|
||
2 |
a,b,n |
ввод исходных данных |
|
|
|
||
3 |
|
вычисление полусуммы значений функции |
|
s=(fa+fb)/2 |
на концах отрезка |
||
|
|||
|
|
||
4 |
dx=(b-a)/n |
расчет шага интегрирования |
|
|
|
||
5 |
x=a, i=1 |
присвоение начальных значений x, i |
|
|
|
||
|
|
условие выхода из цикла |
|
6 |
i<=n |
нет |
|
|
|
||
7 |
да |
|
|
|
|
||
|
x=x+dx |
|
|
8 |
|
|
|
|
s=s+f(x) |
|
|
9 |
|
изменение параметра условия |
|
i=i+1 |
выхода из цикла |
||
|
|||
|
|
||
10 |
|
вычисление приближенного |
|
|
s=s*dx |
значения интеграла |
|
|
|
||
11 |
|
вычисление точного значения |
|
st=F(b)-F(a) |
интеграла |
||
|
|||
|
|
||
12 |
|
вычисление погрешности |
|
|
delta=(s-st)/st |
||
|
|
||
13 |
|
вывод результатов |
|
|
s, st, delta |
||
|
|
||
|
конец |
|
Рисунок 3.2 – Схема алгоритма циклической структуры
17
Код программы, реализующей схему алгоритма, представленного на рисунке 3.2, имеет вид:
Dim A As Double, B As Double, N As Integer, S As Double, St As Double, delta As Double, dX As Double
Dim X As Double, I As Integer
Private Sub CommandButton1_Click()
A = Val(TextBox1.Text)
B = Val(TextBox2.Text)
N = Val(TextBox3.Text)
dX = (B - A) / N
S = (((Sin(A)) ^ 2 / (1 + Cos(A))) + ((Sin(B)) ^ 2 / (1 + Cos(B)))) / 2 X = A
For I = 2 To N - 1
X = X + dX
S = S + (Sin(X)) ^ 2 / (1 + Cos(X))
Next I
S = S * dX
St = (B - Sin(B)) - (A - Sin(A)) delta = (St - S) / St
TextBox4.Text = Str(S)
TextBox5.Text = Str(St)
TextBox6.Text = Left(Str(delta), 5) + Right(Str(delta), 4)
End Sub
18
Лабораторная работа № 4
ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ
Цель работы: овладеть практическими навыками разработки и программирования алгоритмов обработки данных, хранящихся в одномерном массиве, приобрести навыки по созданию форм пользователя и применению элементов управления.
Задания для самостоятельной подготовки
1. Изучить:
–способы описания массивов на языке программирования;
–способы ввода и вывода массивов;
–реализацию на языке программирования приемов накопления суммы или произведения, запоминания результатов, нахождения наибольшего и наименьшего.
2.Разработать алгоритм решения в соответствии с заданием.
3.Создать форму с соответствующими полями.
4.Составить программу решения задачи.
5.Подготовить тест для проверки программы.
|
|
|
|
Задания к работе |
|
1. |
Обработать на ЭВМ одномерный массив в соответствии с ва- |
||||
риантом задания, указанного в таблице 4.1. |
|||||
Таблица 4.1 |
Действия |
|
|||
|
Вариант |
Массив |
|
||
|
1 |
|
2 |
3 |
|
|
1 |
|
X(100) |
Вычислить сумму и количество положительных элемен- |
|
|
|
|
|
тов массива Х |
|
|
2 |
|
A(80) |
Вычислить среднее арифметическое значение элементов |
|
|
|
массива А |
|
||
|
3 |
|
X(70) |
Переписать элементы массива Х, удовлетворяющие |
|
|
|
|
|
условию –1<X<1, в массив Y и подсчитать их количество |
|
|
4 |
|
В(50) |
Определить максимальный элемент массива В и его |
|
|
|
|
|
порядковый номер |
|
|
5 |
|
C(40) |
Вычислить минимальный элемент массива С и его номер |
|
|
6 |
|
D(80) |
Найти максимальный и минимальный элементы массива |
|
|
|
D и поменять их местами |
|
||
|
7 |
|
Y(20) |
Вычислить среднее геометрическое элементов массива Y |
|
19
