Осуществить циклический ввод элементов массива целых чисел [ q [ i, j] , i =1,3; j=1,2] с...

0 голосов
57 просмотров

Осуществить циклический ввод элементов массива целых чисел [ q [ i, j] , i =1,3; j=1,2] с экрана (использовать функцию InputBox), найти наименьшие элементы каждой строки и поставить их первыми. Исходный и измененный массивы отобразить на листе Excel (использовать функцию Cells) помогите ))))))


Информатика (25 баллов) | 57 просмотров
0

Если наименьших несколько, их все поставить в начало?

0

Хотя... чего спрашивать, если всего два элемента? Либо менять их местами в строке, либо не менять.

Дан 1 ответ
0 голосов
Правильный ответ

Sub aaa()
    Dim i As Integer, j As Integer, d
    ReDim q(1 To 3, 1 To 2)
    For i = 1 To 3
        For j = 1 To 2
            q(i, j) = InputBox("Введите элемент (" + Str(i) + "," + Str(j) + ")")
        Next j
    Next i
    Cells(1, 1).Value = "Исходный массив"
    Range(Cells(2, 1), Cells(4, 2)).Value = q
    Cells(5, 1).Value = "Результирующий массив"
    For i = 1 To 3
        If q(i, 1) > q(i, 2) Then
            d = q(i, 1): q(i, 1) = q(i, 2): q(i, 2) = d
        End If
    Next i
    Range(Cells(6, 1), Cells(8, 2)).Value = q
End Sub


(142k баллов)
0

VBA во всей красе. Элементами строки могут быть данные любого типа (числа, строки, даты), главное, чтобы их можно было сравнивать друг с другом. ReDim и циклы for введены исключительно из-за требования работы с inputbox, а если бы данные считывались из ячеек таблицы, было бы достаточного одного оператора присваивания и размеры массива отрегулировались бы сами.