Предмет: Информатика, автор: steamlabydidabydai

Работа нужна в exele

Приложения:

Ответы

Автор ответа: alexlar30
0

Ответ:

Объяснение:

Процедуры модуля с обработчиками кнопок ( к сожалению, файл с макросом не позволено добавлять, поэтому придется нарисовать все так, как на картинках, создать модуль и в него положить обработчики с дополнительными функциями, которые ниже). Имена кнопок и элементов управления смотри по коду. Для кнопок они совпадают с названиями обработчиков.

Private Sub FindMax(ByRef a() As Long, ByRef maxElem As Long, ByRef index_max As Long)

   first = LBound(a)

   last = UBound(a)

   maxElem = a(first)

   index_max = first

   For i = first + 1 To last

       If (maxElem < a(i)) Then

           maxElem = a(i)

           index_max = i

       End If

   Next i

End Sub

Private Sub swap(ByRef a() As Long, ByVal i As Long, ByVal j As Long)

   Dim temp As Long

   temp = a(i)

   a(i) = a(j)

   a(j) = temp

End Sub

Private Sub BublSort(ByRef a() As Long, ByVal first As Long, ByVal last As Long)

Dim iCur, iLast As Long

   iLast = last - 1

   Do

       iCur = -1

       For i = first To iLast

           If a(i) > a(i + 1) Then

               swap a, i, i + 1

               iCur = i

           End If

       Next i

       If iCur >= 0 Then

           iLast = iCur

       End If

   Loop While iCur <> -1

End Sub

Public Sub btnMaxElem_Click()

   Dim massiv_A(1 To 10) As Long

   For i = 1 To 10

       massiv_A(i) = Int(Rnd * 21 - 10)

   Next i

   Range("A1") = "Íà÷àëüíûé ìàññèâ"

   Range("A2:J2") = massiv_A

   Dim maxElem As Long, index_max As Long

   FindMax massiv_A, maxElem, index_max

   Range("A3") = "Ìàêñèìàëüíûé ýëåìåíò"

   Range("A4") = "A(" & CStr(index_max) & ") = " & CStr(maxElem)

   swap massiv_A, 5, index_max

   Range("A5") = "Èçìåíåííûé ìàññèâ"

   Range("A6:J6") = massiv_A

End Sub

Sub btnClear_Click()

   Dim a As String

   Sheets("TestControls").textBoxMassive.Text = ""

End Sub

Sub btnSort_Click()

   Dim strText As String

   Dim strMassive() As String

   Dim intMassive() As Long

   

   strText = Sheets("TestControls").textBoxMassive.Text

   strMassive = Split(strText, ",")

   If UBound(strMassive) > 0 Then

       ReDim intMassive(UBound(strMassive))

       For i = 0 To UBound(strMassive)

           Debug.Print (strMassive(i))

           intMassive(i) = CLng(strMassive(i))

       Next i

       BublSort intMassive, 0, UBound(intMassive)

       For i = 0 To UBound(intMassive)

           Debug.Print (intMassive(i))

       Next i

       Sheets("TestControls").lstBoxElements.List = intMassive

   End If

End Sub

Приложения:
Похожие вопросы
Предмет: Другие предметы, автор: kryukovaoksank1
Предмет: Технология, автор: 1Оля11
Предмет: Английский язык, автор: Некит5198
Предмет: Математика, автор: karhaninavika