2Постановка задачи
Составить алгоритм и программу для вычисления и вывода на печать в общепринятом виде элементов матрицы Zij по формуле:
,
где i=1, 2, …, 11; j=1, 2, …, 11; а=3.
После вычисления элементов матрицы определить среднее арифметическое значений отрицательных элементов в каждой строке этой матрицы.
3Блок-схема
4Описание блок-схемы
Блок 1 – ввод значений заданных элементов массивов Xi, Yj.
Блок 2 – ввод значения а.
Блок 3-6 – сложный цикл для вычисления элементов матрицы.
Блок 3 – начало внешнего цикла: вычисление матрицы по строкам.
Блок 4 – начало внутреннего цикла: вычисление элементов матрицы в текущей строке.
Блок 5 – вычисление элемента матрицы.
Блок 6 – печать вычисленных элементов матрицы.
Блок 7-12 – сложный цикл для вычисления среднего арифметического отрицательных значений матрицы по строкам.
Блок 7 – задание начального количества отрицательных значений матрицы.
Блок 8 – начало внешнего цикла: вычисление среднего арифметического отрицательных значений матрицы по строкам.
Блок 9 – начало внутреннего цикла: вычисление среднего арифметического отрицательных значений матрицы в текущей строке.
Блок 10 – проверка условия, является ли текущий элемент матрицы отрицательным.
Блок 11 – вычисление суммы отрицательных значений матрицы в текущей строке.
Блок 12 – вычисление количества отрицательных значений матрицы в текущей строке.
Блок 13 – проверка условия деления на 0.
Блок 14 – вычисление среднего арифметического отрицательных значений матрицы в текущей строке.
Блок 15 – печать вычисленных значений среднего арифметического отрицательных значений матрицы в текущей строке.
5Программный код
Private Sub Command1_Click()
' Описание массивов и переменных
Dim x(11) As Single, y(11) As Single, z(11, 11) As Single, E(11) As Single
Dim a As Single
Dim i As Byte, j As Byte, n As Single
' Ввод
Print "Значение массива X"
For i = 1 To 11
x(i) = Val(InputBox("Введите x(i)", "Массив X"))
Print x(i);
Next i
Print "Значение массива Y"
For j = 1 To 11
y(j) = Val(InputBox("Введите y(j)", "Массив Y"))
Print y(j);
Next j
a = Val(InputBox("Введите a", "Значение a"))
Print "a ="; a
'Вычисление и вывод
Print "Элементы матрицы"
For i = 1 To 11
For j = 1 To 11
z(i, j) = (Sin(x(i)) ^ 2 + 2 * a * y(j)) / (Sin((x(i) * y(j)) ^ 3) + (a + 2) ^ (1 / 3))
Print z(i, j);
Next j
Next i
' Вычисление варианта 92
Print ("Среднее арифметическое отрицательных элементов по строкам")
For i = 1 To 11
n = 0
For j = 1 To 11
If z(i, j) < 0 Then 'Проверка условия
E(i) = E(i) + z(i, j)
n = n + 1
End If
Next j
If n > 0 Then
E(i) = E(i) / n
End If
Print E(i)
Next i
End Sub
6Описание операторов, используемых в программе
Private Sub … End Sub – операторы начала и окончания процедуры соответственно.
DIM – оператор описывает тип используемых одномерных массивов Xi и Yj, двумерного массива Zij, среднего арифметического Ei и простых переменных i и j.
Single – тип переменной; вещественная переменная одинарной точности с плавающей десятичной точкой.
Byte – тип переменной; положительное целое число.
Val – тип переменной; указывает, что данные являются числом, а не текстом.
Print – оператор вывода на экранную форму проекта.
InputBox – системная функция получения данных от пользователя.
For … Next – операторы начала и окончания цикла соответственно.
If … Then – операторы условия.
‘ – оператор-комментарий, используется для пояснения отдельных фрагментов программного кода, непосредственного участия в работе программы не принимает.
