Предмет: Информатика,
автор: lozroman
Vba.
как переделать этот код , что б он считал и менял меж собой минимальные и максимальные элементы не столбцов,А строк?
Private Sub CommandButton1_Click()
Dim s() As Integer, n As Integer, m As Integer
Dim i As Integer, j As Integer
Dim min As Integer, max As Integer
Cells.Clear
n = InputBox("CTROKI", , 4)
m = InputBox("CTOLBEC", , 5)
Randomize
ReDim s(n, m) As Integer
For j = 1 To m
max = -100: min = 100
For i = 1 To n
s(i, j) = Rnd() * 60 - 10
Cells(i + 1, j + 1) = s(i, j)
Cells(i + 3 + n, j + 1) = s(i, j)
If min > s(i, j) Then
min = s(i, j)
q = j
End If
If max < s(i, j) Then
max = s(i, j)
w = j
End If
Next
s(i, q) = min
Cells(w + 3 + n, j + 1) = s(w, j)
s(i, w) = max
Cells(q + 3 + n, j + 1) = s(q, j)
Next
End Sub
Аноним:
А он у Вас не работает, слетает по неверной индексации на s(i, q) = min
s(w, j) = min
Cells(w + 3 + n, j + 1) = s(w, j)
s(q, j) = max
Cells(q + 3 + n, j + 1) = s(q, j)
Next
End Sub
а если заменить вот так?
Cells(w + 3 + n, j + 1) = s(w, j)
s(q, j) = max
Cells(q + 3 + n, j + 1) = s(q, j)
Next
End Sub
а если заменить вот так?
Да запустите проверьте с Вашими же значениями по умолчанию
у меня работает,иногда ,непонятно почему,дает осечку. Но не в этом вопрос
Вопрос в этом, потому что Вы просите не НАПИСАТЬ, а ПЕРЕДЕЛАТЬ.
Для этого должно исходное четко работать
Вот этот код работает.
Но когда я пытаюсь его переделать как нужно он как раз и начинает ругаться на индексы
Но когда я пытаюсь его переделать как нужно он как раз и начинает ругаться на индексы
Это код НЕ РАБОТАЕТ! Я уже написал, что он дает ошибку при значениях по умолчанию.
При n=4, m=5 оператор s(i, q) = min не может выполниться для i=5
Т.е. при Вашей последней переделке теперь w=5
Ответы
Автор ответа:
0
Private Sub CommandButton1_Click()
Dim s() As Integer, n As Integer, m As Integer
Dim i As Integer, j As Integer
Dim min As Integer, max As Integer, q As Integer, w As Integer
Cells.Clear
n = InputBox("CTROKI", , 4)
m = InputBox("CTOLBEC", , 5)
Randomize
ReDim s(n, m) As Integer
For i = 1 To n
max = -100: min = 100
For j = 1 To m
s(i, j) = Int(Rnd() * 60 - 10)
Cells(i, j) = s(i, j)
Cells(i + 2 + n, j) = s(i, j)
If min > s(i, j) Then
min = s(i, j)
q = j
End If
If max < s(i, j) Then
max = s(i, j)
w = j
End If
Next j
Cells(i + 2 + n, w) = min
Cells(i + 2 + n, q) = max
Next i
End Sub
Dim s() As Integer, n As Integer, m As Integer
Dim i As Integer, j As Integer
Dim min As Integer, max As Integer, q As Integer, w As Integer
Cells.Clear
n = InputBox("CTROKI", , 4)
m = InputBox("CTOLBEC", , 5)
Randomize
ReDim s(n, m) As Integer
For i = 1 To n
max = -100: min = 100
For j = 1 To m
s(i, j) = Int(Rnd() * 60 - 10)
Cells(i, j) = s(i, j)
Cells(i + 2 + n, j) = s(i, j)
If min > s(i, j) Then
min = s(i, j)
q = j
End If
If max < s(i, j) Then
max = s(i, j)
w = j
End If
Next j
Cells(i + 2 + n, w) = min
Cells(i + 2 + n, q) = max
Next i
End Sub
Похожие вопросы
Предмет: Английский язык,
автор: jfjcjcjxj
Предмет: Русский язык,
автор: Волк123111
Предмет: Английский язык,
автор: sjoyv
Предмет: Физика,
автор: lord6919
Предмет: Химия,
автор: anurgazieva23