S
stap
У меня есть код
Sub EntRand(n As Integer, m As Integer)
For i = 1 To n
For j = 1 To m
Cells(i, j) = Int(100 * Rnd)
Next j
Next i
MsgBox ("Matrix generated")
End Sub
Sub EntSelf(n As Integer, m As Integer)
For i = 1 To n
For j = 1 To m
Cells(i, j) = InputBox("Element " & i & "," & j & ":")
Next j
Next i
MsgBox ("Matrix generated")
End Sub
Sub Diag(n As Integer, m As Integer)
For i = 1 To n
Cells(i, i).Font.Color = RGB("0.255.255")
Next i
End Sub
Sub Otr()
End Sub
Sub Summ()
End Sub
Sub Razd(k As Integer)
k = InputBox("Введите число, на которое следует поделить все элементы матрицы")
For i = 1 To n
For j = 1 To m
End Sub
Sub main()
Dim n As Integer, m As Integer
While 1
resp = InputBox("1 - Ввод размера, 2 - Ввод матрицы, 3 - Диагональ, 4 - Вывести все строки матрицы, в которых есть хотя бы один отрицательный элемент, 5 - Просуммировать элементы матрицы по главной диагонали, 6 - Поделить все элементы матрицы на число, вводимое с экрана по запросу пользователем, Другая - Выход")
Select Case resp
Case 1
n = InputBox("N=")
m = InputBox("M=")
Case 2
resp = InputBox("1 - Автоматически, 2 - Вручную, Другая - Главное меню")
Select Case resp
Case 1
Call EntRand(n, m)
Case 2
Call EntSelf(n, m)
Case Else
Call main
End Select
Case 3
Call Diag(n, m)
Case 4
Call Otr
Case 5
Call Summ
Case 6
Call Razd
Case Else
Range(Cells(1, 1), Cells(n, m)).Clear
Exit Sub
End Select
Wend
End Sub
Задание явно не сложное.
Надо чтобы работали Case 3, 4, 5, 6.
Case 3 (Sub Diag) - ошибка Argument not optional. (Там возможно Cells (i,j) вместо Cells (i,i)
Пытался сделать Case 6, но не смог.
Case 4,5,6 (Subs: Otr, Summ, Razd) не сделаны (они по сути только намечены).
Case 4 - Вывести все строки матрицы, в которых есть хотя бы один отрицательный элемент.
Case 5 - Просуммировать элементы матрицы по главной диагонали.
Case 6 - Поделить все элементы матрицы на число, вводимое с экрана по запросу пользователем.
Для меня важно, чтобы было не перегружено неизвестным новичку кодом. Если не трудно - с пояснениями, потому что мне важно понять где что происходит.
Заранее преогромное спасибо! B)
Sub EntRand(n As Integer, m As Integer)
For i = 1 To n
For j = 1 To m
Cells(i, j) = Int(100 * Rnd)
Next j
Next i
MsgBox ("Matrix generated")
End Sub
Sub EntSelf(n As Integer, m As Integer)
For i = 1 To n
For j = 1 To m
Cells(i, j) = InputBox("Element " & i & "," & j & ":")
Next j
Next i
MsgBox ("Matrix generated")
End Sub
Sub Diag(n As Integer, m As Integer)
For i = 1 To n
Cells(i, i).Font.Color = RGB("0.255.255")
Next i
End Sub
Sub Otr()
End Sub
Sub Summ()
End Sub
Sub Razd(k As Integer)
k = InputBox("Введите число, на которое следует поделить все элементы матрицы")
For i = 1 To n
For j = 1 To m
End Sub
Sub main()
Dim n As Integer, m As Integer
While 1
resp = InputBox("1 - Ввод размера, 2 - Ввод матрицы, 3 - Диагональ, 4 - Вывести все строки матрицы, в которых есть хотя бы один отрицательный элемент, 5 - Просуммировать элементы матрицы по главной диагонали, 6 - Поделить все элементы матрицы на число, вводимое с экрана по запросу пользователем, Другая - Выход")
Select Case resp
Case 1
n = InputBox("N=")
m = InputBox("M=")
Case 2
resp = InputBox("1 - Автоматически, 2 - Вручную, Другая - Главное меню")
Select Case resp
Case 1
Call EntRand(n, m)
Case 2
Call EntSelf(n, m)
Case Else
Call main
End Select
Case 3
Call Diag(n, m)
Case 4
Call Otr
Case 5
Call Summ
Case 6
Call Razd
Case Else
Range(Cells(1, 1), Cells(n, m)).Clear
Exit Sub
End Select
Wend
End Sub
Задание явно не сложное.
Надо чтобы работали Case 3, 4, 5, 6.
Case 3 (Sub Diag) - ошибка Argument not optional. (Там возможно Cells (i,j) вместо Cells (i,i)
Пытался сделать Case 6, но не смог.
Case 4,5,6 (Subs: Otr, Summ, Razd) не сделаны (они по сути только намечены).
Case 4 - Вывести все строки матрицы, в которых есть хотя бы один отрицательный элемент.
Case 5 - Просуммировать элементы матрицы по главной диагонали.
Case 6 - Поделить все элементы матрицы на число, вводимое с экрана по запросу пользователем.
Для меня важно, чтобы было не перегружено неизвестным новичку кодом. Если не трудно - с пояснениями, потому что мне важно понять где что происходит.
Заранее преогромное спасибо! B)