Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2015, 07:50   #1
nepyti
Новичок
Джуниор
 
Регистрация: 03.06.2015
Сообщений: 1
По умолчанию Программа для сортировки последовательности чисел

Текст программы:
Код:
Userform1:
Public Sort_Method As Integer
Private Sub CommandButton1_Click()
Dim I As Integer, J As Integer, S As String, N As Integer, A() As Integer
UserForm1.TextBox1.SetFocus
N = CInt(UserForm1.TextBox1.LineCount)
If N = 0 Then MsgBox ("Вы не ввели ни одного числа!")
    If N = 1 Then MsgBox ("Вы ввели всего одно число! Для сортировки этого не  достаточно!")
      If N = 0 Or N = 1 Then Exit Sub
ReDim A(1 To N)
S = UserForm1.TextBox1.Text
While (Len(S) > 0)
 I = InStr(S, vbCrLf)
     If (I = 0) Then I = Len(S) + 1
J = J + 1
       If IsNumeric(Left(S, I - 1)) Then
             A(J) = CInt(Left(S, I - 1))
           Else
                MsgBox ("Ошибка! Вы ввели не число!" + vbCrLf + "Строка №" + CStr(J) + "; введено: " + Left(S, I - 1))
                Exit Sub
        End If
S = Mid(S, I + 2)
Wend
A = Module1.Sorting(A, N, UserForm1.Sort_Method)
UserForm1.TextBox2.Text = ""
For I = 1 To N
     If I <> 1 Then UserForm1.TextBox2.Text = UserForm1.TextBox2.Text + vbCrLf
UserForm1.TextBox2.Text = UserForm1.TextBox2.Text + CStr(A(I))
Next I
End Sub

Private Sub CommandButton2_Click()
UserForm1.TextBox1.Text = ""
UserForm1.TextBox2.Text = ""
End Sub

Private Sub CommandButton3_Click()
UserForm2.Show vbModal
End Sub

Private Sub UserForm_Activate()
UserForm1.Sort_Method = 1
End Sub

Userform2:
Private Sub CommandButton1_Click()
If UserForm2.OptionButton1.Value Then UserForm1.Sort_Method = 1
If UserForm2.OptionButton2.Value Then UserForm1.Sort_Method = 2
Unload UserForm2
End Sub

Module 1:
Public Function Sorting(A As Variant, I As Integer, M As Integer) As Variant
If M = 1 Then Sorting = Bubble(A, I)
If M = 2 Then Sorting = SelSort(A, I)
End Function

Private Function Bubble(A As Variant, I As Integer)
Dim B As Integer, T As Boolean, J As Integer
T = True
N = 0
While T
T = False
For J = 1 To I - 1
N = N + 1
    If A(J) > A(J + 1) Then
          B = A(J + 1)
          A(J + 1) = A(J)
          A(J) = B
          T = True
    End If
Next J
Wend
Bubble = A
End Function

Private Function SelSort(A As Variant, I As Integer)
Dim M As Integer, J As Integer, K As Integer, B As Integer
N = 0
For J = 1 To I - 1
M = J
For K = J + 1 To I
N = N + 1
    If A(K) < A(M) Then M = K
Next K
        If M <> J Then
            B = A(J)
            A(J) = A(M)
            A(M) = B
      End If
Next J
SelSort = A
End Function
Если зайти в свойства и выбрать второй метод сортировки,
выбрать сохранить, закрыть, еще раз зайти в настройку - там опять выбран первый метод. Как это изменить?? Помогите...
Код:
Userform2:
Private Sub CommandButton1_Click()
If UserForm2.OptionButton1.Value Then UserForm1.Sort_Method = 1
If UserForm2.OptionButton2.Value Then UserForm1.Sort_Method = 2
Unload UserForm2
End Sub
То есть нужно сохранить optionbutton как-то...

Последний раз редактировалось Аватар; 03.06.2015 в 07:53.
nepyti вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа, сортирующая исходный одномерный массив целых чисел методами пузырьковой сортировки и сортировки прямым выбором (язык С) igor01 Помощь студентам 7 16.05.2014 23:21
Программа для сортировки четных чисел (используется While...Do) AntoshkaK Паскаль, Turbo Pascal, PascalABC.NET 3 24.12.2011 07:53
Программа (подкорректировать) для сортировки четных чисел (используется While...Do) AntoshkaK Фриланс 4 23.12.2011 19:13
программа по вычислению последовательности чисел crystalcat Помощь студентам 3 03.11.2009 22:59