- •© Королева е.М., Котельницкая л.И.
- •Типовые структуры алгоритмов и их реализация
- •Visual Basic содержит несколько отдельных окон, любое из них можно сделать “плавающим” путем перетаскивания строки заголовка по экрану Размеры можно изменить, перетаскивания их границы и углы.
- •Элементы управления
- •Image (изображение)
- •InputBox(строка_сообщение [, Заголовок_ окна] [, НачЗначение]),
- •Задания для самостоятельной работы
- •Блок-cхема алгоритма
- •Варианты контрольных работ для студентов заочной формы обучения
- •Второе задание
- •Блок-схема алгоритма
- •Третье задание
Задания для самостоятельной работы
Требуется разработать блок-схему или словесное описание алгоритма, создать проект в VBA
Первое задание. Линейное программирование.
1. Вычислить величину Y:
2. Вычислить величину Y:
3. Вычислить величины U и V:
4. Вычислить величину Y:
5. Вычислить площадь треугольника по формуле Герона:
где
- стороны треугольника.
6. Вычислить расстояние между двумя точками М1(х1,y1) и М2(х2,y2) на
плоскости:
7. Вычислить сумму, разность, произведение, частное двух чисел.
8. Вычислить объем правильной треугольной пирамиды:
,
где h – высота, а – сторона основания пирамиды.
9. Найти координаты
вершины параболы
10. По двум катетам найти гипотенузу и площадь прямоугольного треугольника.
11. Поменять местами переменные, находящиеся в двух текстовых полях
экранной формы.
12. В трех текстовых полях экранной формы находятся фамилия, имя,
отчество. Получить в четвертом поле фамилия с инициалами.
13. В текстовом поле экранной формы находится дата рождения.
Получить в трех текстовых окнах день, месяц, год рождения.
Пример8. Создать проект для задачи примера1:
Вычислить среднее арифметическое и среднее геометрическое двух неотрицательных чисел: А, В.
Код
Private Sub CommandButton1_Click()
Dim A As Single, B As Single
Dim X As Single, Y As Single
A = Val(TextBox1)
B = Val(TextBox2)
X = (A + B) / 2
Y = Sqr(A*B)
TextBox3 = Str(X)
TextBox4 = Str(Y)
End Sub
--------------------------------------
Private Sub CommandButton2_Click()
TextBox1 = “ “
TextBox2 = “ “
TextBox3 = “ “
TextBox4 = “ “
End Sub
Н
Свойство Caption изменено у элементов Label1, Label2, Label3, Label4, CommandButton1, CommandButton2.
Пример9. Спроектируйте приложение, которое выдает три числа, количество суток оставшихся до ближайших критических точек трех биоритмов человека: физического (период 23 дня), эмоционального (период 28 дней), интеллектуального (период 33 дня).
Код
Private Sub CommandButton1_ Click()
Dim TD As Date ‘ TD – текущая дата
Dim DR As Date ‘ DR – день рождения
Dim PD As Long ‘ PD – количество прожитых дней
TD = Date
DR = TextBox1
PD = TD – DR
TextBox2 = Str(22 – PD Mod 23) + “дней”
TextBox3
= Str(27 – PD Mod 28) + “дней”
TextBox4 = Str(32 – PD Mod 33) + “дней”
Label1.Caption = Str(TD)
End Sub
На форму нанесены элементы управления: TextBox1, TextBox2,
TextBox3,TextBox4, CommandButton1, Label1, Label2, Label3, Label4,
Label5, Label6, Label7, Label8, Label9, Label10.
Свойство Caption изменено у элементов: Label2, Label3, Label4, Label5,
Labe6, Label7, Label8, Label9, Label10, CommandButton1.
Второе задание. Программирование ветвлений.
Вычислить величину Y:
Рассчитать заработную плату сотруднику с учетом подоходного налога:
Р = Зарп – Н, где Зарп – зарплата без учета подоходного налога (начислено)
Н - подоходный налог
Р - зарплата с учетом подоходного налога (к выдаче)
Рассчитать коэффициент К, изменяющего премиальное вознаграждение работника в зависимости от выполнения плана работы Р:
Вычислить площадь геометрических фигур:
Вычислить величину Y:
где z = x2+5x.
Вычислить величину Y:
Вычислить величину Z:
Вычислить величину Y:
Если X, Y, Z упорядочены по возрастанию, то удвоить каждое из них, иначе заменить числа их модулями.
Если X, Y, Z упорядочены по убыванию, то заменить числа их модулями, иначе каждое из чисел разделить на 3.
11. Найти среди заданных чисел a, b, c, d количество положительных и
количество отрицательных.
12. Если остаток при делении заданного числа на 3 больше 1, то
утроить это число, иначе оставить без изменения.
13. Даны три произвольные стороны треугольника, Выдать
сообщение, можно ли такой треугольник построить.
Пример10. Вычислить величину Т:
Блок – схема алгоритма задачи:
Private Sub CommandButton1_Click()
Dim X As Single, Y As Single
Dim A As Single, T As Single
X = Val(TextBox1)
Y = Val(TextBox2)
A = Val(TextBox3)
If A = 1 Then
If X > Y Then
T = X
Else
T = Y
End If
Else
If A > 1 Then
T = X * X + Y * Y
Else
T = Abs(X + Y)
End If
End If
TextBox4 = Str(T)
End Sub
---------------------------------------
Private Sub CommandButton2_Click()
Text Box1 = “ “
Text Box2 = “ “
Text Box3 = “ “
Text Box4 = “ “
End Sub
Н
Свойство Caption изменено у элементов: Label1, Label2, Label3, Label4, CommandButton1, CommandButton2.
Третье задание Программирование циклов.
1. Вычислить величину Y:
Y
= n!
( n!
=
n)
2. Дано натуральное n. Вычислить значение функции:
для x = 1, 1.1, 1.2,…, 1+0.1n
3. Вычислить Y:
4. Вычислить число
,
пользуясь рядом Грегори:
(100 членов)
5. Определить число
Фибоначчи с номером к. (используются
формулы
;
;
)
6. Вычислить значение
по формуле:
,
7. Вычислить
с точностью Е, используя итерационную
формулу
,
8. Вычислить значение ряда с заданной точностью Е
9. Вычислить сумму S = 1 + 2 + 3 + …. . Вычисления прекратить, если
значение S превысит заданное значение А.
10. Вычислить значения функции в заданном интервале
Пример11. Вычислить
величину:
Блок – схема алгоритма
+ -
Код
Private Sub СommandButton1_Click()
Dim p As Single, i As Integer
Dim y As Single, n As Integer
n = Val(TextBox1)
p = 1
For i = 1 To n
p = p*i / (i + 1)
Next i
y = 1 + p
TextBox2 = Str(y)
End Sub
Private Sub CommandButton2_Click()
TextBox1 = “ “
TextBox2 = “ “
End Sub
Н
Свойство Caption изменено у элементов Label1, Label2, CommandButton1,
CommandButton2.
Пример12. Вычислить значение ряда с точностью Е
Блок – схема алгоритма
Код
Private Sub CommandButton1_Click()
Dim х As Single, E As Single, U As Single
Dim n As Integer, Z As Single, Y As Single
x = InputBox(“введи x”)
E = InputBox(“введи E“)
Y = 0 : U = 1 : n = 1
Do While abs(U)> E
Y = Y + U : U = U*x / n : n = n +1
Loop
Z = exp(x)
Text Box1 = Str(Y)
Text Box2 = Str(Z)
End Sub
Н
Свойство Caption изменено у элементов Label1, Label2, CommandButton1.
Четвертое задание. Одномерные массивы (векторы).
1. Даны два вектора А и В размерности N. Вычислить косинус угла между ними.
2. Дан одномерный массив А размерности N. Найти сумму положительных элементов, произведение отрицательных элементов.
3. Дан одномерный массив А размерности N. Найти количество элементов, больших заданного числа В.
4. Дан одномерный массив А размерности N . Найти отношение максимального элемента к минимальному.
5. Дан одномерный массив А размерности N. Поменять местами максимальный и минимальный элементы.
6. Дан одномерный массив А размерности N. Найти сумму элементов, расположенных между максимальным и минимальным.
7. Дан одномерный массив А размерности N. Найти произведение элементов, расположенных до максимального, и количество после минимального.
8. Дан одномерный массив А размерности N. Найти среднее арифметическое элементов, расположенных между максимальным и минимальным.
9. Дан одномерный массив А размерности N. Если первый элемент массива неотрицателен, то умножить все элементы на минимальный, в противном случае – на максимальный.
10. Вычислить значение многочлена, используя формулу Горнера:
11. Дан одномерный массив А размерности N. Получить массив В, записанный в обратном порядке.
12. Дан одномерный массив А размерности N. Получить массив В, элементы которого расположены в порядке возрастания.
Пример13. Создать проект для задачи примера4.
Код
Dim N As Integer, i As Integer
Dim X() As Single, Y As Single
---------------------------------------
Private Sub CommandButton1_Click()
N = Val(TextBox1)
Redim X(1 to N)
For i = 1 To N
X(i) = InputBox(“введи исходные данные – массив”)
Next i
Y = 0
For i = 1 To N
Y = Y + X(i)
Next i
Y = Y / N
ТextBox2 = Str(Y)
End Sub
.
Н
CommandButton1.
Свойство Caption изменено у элементов Label1, Label2.
.
Пример14. Дан одномерный массив А размерности N.
Найти наибольший элемент и его индекс.
