k = (2 * x * y * z) / (3 * x - z) - (5 * x * y - z) / (z - 4 * y)
t = abs(3 * c - d - a) / (abs(a - d) * 5 * a * b)
Объяснение:
Т.к. математических выражений нет, исправлены очевидные ошибки, но возможно наличие отличий от математических выражений
Считаем, что оператор оператор присваивания равно (=), а abs - математическая функция возвращающая абсолютное значение числового выражения
Правила записи математических выражений:
1) Выражение записывается в одну в строку (линейная запись)
2) Для обозначения переменных используются буквы латинского алфавита
3) Операции выполняются в порядке старшинства: сначала вычисление функций, затем возведение в степень, потом умножение и деление, а последние сложение и вычитание
4) Операции одного старшинства выполняются слева направо. Для регулирования порядка операций используются круглые скобки
5) Нельзя ставить рядом два знака операций
6) Нельзя опускать знак умножения между множителями
7) Разделителем целой и дробной части числа является точка
Объяснение:
Числовые,буквенные выражения и выражения с переменными в своей записи могут содержать знаки различных арифметических действий. При преобразовании выражений и вычислении значений выражений действия выполняются в определенной очередности, иными словами, нужно соблюдать порядок выполнения действий.
В этой статье мы разберемся, какие действия следует выполнять сначала, а какие следом за ними. Начнем с самых простых случаев, когда выражение содержит лишь числа или переменные, соединенные знаками плюс, минус, умножить и разделить. Дальше разъясним, какого порядка выполнения действий следует придерживаться в выражениях со скобками. Наконец, рассмотрим, в какой последовательности выполняются действия в выражениях, содержащих степени, корни и другие функции.
Sub abcd()
Dim a(1 To 10, 1 To 10) As Double
Dim n As Integer, m As Integer, i As Integer, j As Integer
Dim imx As Integer, jmx As Integer
Dim mx As Double
Range(Cells(1, 1), Cells(30, 20)).Clear
Do
n = CInt(InputBox("Введите размер матрицы от 2 до 10"))
Loop Until n >= 2 And n <= 10
Randomize Timer
Cells(1, 1) = "Исходная матрица"
For i = 1 To n
For j = 1 To n
a(i, j) = 18 * Rnd - 9
If i + j = 2 Then
mx = a(1, 1)
imx = 1
jmx = 1
Else
If Abs(a(i, j)) > Abs(mx) Then
mx = a(i, j)
imx = i
jmx = j
End If
End If
Next j
Next i
Dim r As Range
Set r = Range(Cells(2, 1), Cells(1 + n, n))
r = a
r.NumberFormat = "0.00"
Dim cr As Integer
cr = n + 2
Cells(cr, 1) = "Максимальный по модулю элемент= " + Format(mx, "##0.00") + _
" в строке " + CStr(imx) + " в столбце " + CStr(jmx)
cr = cr + 1
m = n
If imx < m Then
For i = imx To m - 1
For j = 1 To n
a(i, j) = a(i + 1, j)
Next j
Next i
End If
m = m - 1
If jmx < n Then
For j = jmx To n - 1
For i = 1 To m
a(i, j) = a(i, j + 1)
Next i
Next j
End If
n = n - 1
Cells(cr, 1) = "Удаление строки " + CStr(imx) + " и столбца " + CStr(jmx)
Set r = Range(Cells(cr + 1, 1), Cells(cr + n, n))
r = a
r.NumberFormat = "0.00"
End Sub
Вывод будет или на лист, куда вставлен код (или где кнопка с кодом), или на текущий лист, если код сделать модулем проекта.