Задания для самостоятельной работы
Требуется разработать блок-схему или словесное описание алгоритма, создать проект в 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.
Второе задание.Программирование ветвлений.
1. Вычислить величину Y:
2. Рассчитать заработную плату сотруднику с учетом подоходного налога:
Р = Зарп – Н, где Зарп – зарплата без учета подоходного налога (начислено)
Н - подоходный налог
Р - зарплата с учетом подоходного налога (к выдаче)
3. Рассчитать коэффициент К, изменяющего премиальное вознаграждение работника в зависимости от выполнения плана работы Р:
4. Вычислить площадь геометрических фигур:
5. Вычислить величину Y:
где z = x2+5x.
6. Вычислить величину Y:
7. Вычислить величину Z:
8. Вычислить величину Y:
9. Если X, Y, Z упорядочены по возрастанию, то удвоить каждое из них, иначе заменить числа их модулями.
10. Если 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.
Найти наибольший элемент и его индекс.
Блок-cхема алгоритма
Код
Dim A() As Single, MAX As Single
Dim N As Integer, K As Integer, I As Integer
--------------------------------------------
Private Sub CommandButton1_Click()
N = Val(TextBox1)
Redim A(1 To N)
For I = 1 To N
A(I) = InputBox (“введи массив A”)
Next I
MAX = A(1) : K = 1
For I = 1 To N
If A(I) > MAX Then
MAX = A(I) : K = I
End If
Next I
TextBox1 = Str(MAX)
TextBox2 = Str(K)
End Sub
|
Свойство Caption изменено у элементов Label1, Label2, Label3.
Пятое задание. Двумерные массивы (матрицы).
1.Вычислить сумму элементов каждой строки матрицы А
размерности N*M. Результат получить в виде вектора В.
M
Вi = ∑ Aij , i := 1, 2, …, N
J=1
2.Вычислить произведение элементов каждой строки матрицы А
размерности N*M. Результат получить в виде вектора В.
M
Вi = ∏ Aij , i := 1, 2, …, N
J=1
3.Вычислить сумму элементов каждого столбца матрицы А
размерности N*M. Результат получить в виде вектора В.
N
Вj = ∑ Aij , j = 1, 2, …, M
i=1
4.Вычислить произведение элементов каждого столбца матрицы А
размерности N*M. Результат получить в виде вектора В.
N
Вj = ∏ Aij , j = 1, 2, …, M
i=1
5.Вычислить произведение матрицы А размерности N*M на вектор В.
Результат получить в виде вектора С.
M
Ci = ∑ Aij * Bj , i = 1, 2, …, N
J=1
6.Вычислить сумму двух матриц А и В размерности N*M.
Результат получить в виде матрицы С.
Cij = Aij + Bij , i = 1,2, …, N
j = 1,2, …, M
7. Найти максимальный элемент и его индексы в матрице А
размерности N*M.
8. Найти минимальный элемент и его индексы в матрице А
размерности N*M.
9. Найти среднее арифметическое элементов матрицы A размерности N*M.
10. К элементам K-й строки прибавить элементы L-й строки, умноженные
на число В, матрицы А размерности N*M.
Результат получить в виде вектора С.
Cj = Akj + B*Alj, J = 1,2, …, M
11. К элементам K-го столбца прибавить элементы L-го столбца, умноженные на число В, матрицы А размерности N*M. Результат получить в виде вектора С.
Ci = Aik + B*Ail, i = 1,2, …, N
12. Вычислить произведение двух матриц А и В размерности N*M.
Результат получить в виде матрицы С.
p
Сij = ∑ Aik*Bkj , i = 1,2, …, N
i:=1
J = 1, 2, …, M
Пример14. В каждой строке матрицы А размерности N*M вычислить сумму положительных элементов.
Результат получить в виде вектора В.
Словесное описание алгоритма
Начало
1. Задать (N, M, A(1:N, 1:M))
2. Для I := 1 до N выполнить
B(I) := 1
Для J :=1 до M выполнить
Если A(I,J) > 0 то B(I) := B(I) + A(I,J)
3. Выдать B(1:N)
Конец
Код
Dim A() As Single, B() As Single, N As Integer, M As Integer
-------------------------------------------------------------------------
Private Sub CommandButton1_ Click()