
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

Ответы на вопрос

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



Код, который вы предоставили, выполняет следующие действия: создает массив s(n, m) размерности n x m, заполняет его случайными числами от -10 до 50, а затем находит минимальные и максимальные значения в каждом столбце. Он меняет эти значения и выводит результат в соседние столбцы.
Если я правильно понял ваш запрос, вы хотите изменить код так, чтобы он работал с минимальными и максимальными значениями не по столбцам, а по строкам. Давайте внесем соответствующие изменения в код:
```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 Dim minRowIndex As Integer, maxRowIndex As Integer Cells.Clear n = InputBox("CTROKI", , 4) m = InputBox("CTOLBEC", , 5) Randomize ReDim s(1 To n, 1 To m) As Integer ' Заполнение массива случайными значениями от -10 до 50 For i = 1 To n For j = 1 To m s(i, j) = Int(Rnd() * 60 - 10) Cells(i + 1, j + 1) = s(i, j) Next j Next i ' Инициализация min и max значениями, выходящими за пределы возможных значений в массиве min = 100 max = -100 ' Поиск минимальных и максимальных значений по строкам For i = 1 To n For j = 1 To m If min > s(i, j) Then min = s(i, j) minRowIndex = i End If If max < s(i, j) Then max = s(i, j) maxRowIndex = i End If Next j ' Замена минимального значения в строке на максимальное и наоборот s(minRowIndex, j) = max s(maxRowIndex, j) = min Next i ' Вывод результата For i = 1 To n For j = 1 To m Cells(i + 3, j + 1) = s(i, j) Next j Next i End Sub ```
Этот код ищет минимальные и максимальные значения в каждой строке массива и меняет их местами. Результат выводится в соседние столбцы.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili