Код | Public Sub BinaryInsertionSort(Arr() As Long, ByVal n As Long) Dim Arr(-100 To 100) As Integer
Option Explicit Dim F As Long Private Sub Command1_Click() Dim mass As String CommonDialog1.Filter = "Текстовый документ (*.txt) Базы данных (*.dat)|*.txt;*.dat" CommonDialog1.Flags = cdlOFNFileMustExist CommonDialog1.DialogTitle = "Загрузить текстовый файл" CommonDialog1.ShowOpen Picture3.Cls Picture1.Cls i = 0 F = FreeFile Dim Arr(-100 To 100) As Integer Open CommonDialog1.FileName For Input As #F Do While Not EOF(F) Line Input #F, mass i = i + 1 Arr(i) = Val(mass) Picture1.Print Arr(i) Loop n = i For o = 1 To n 'Код создания гистограммы Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(205, 0, 0), BF Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(28, 28, 28), B Next Close #F
End Sub
Private Sub Command2_Click() n = Val(Text2) Picture1.Cls Picture3.Cls Dim Arr(-100 To 100) As Integer Rendomize: For i = 1 To n Arr(i) = Int(Rnd * (201)) - 1 Picture1.Print Arr(i) For o = 1 To n 'код создания гистограммы Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(205, 0, 0), BF Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(28, 28, 28), B Next Next i End Sub Private Sub Command3_Click(Index As Integer) Dim Arr(-100 To 100) As Integer n = Val(Text3) Picture1.Cls Picture3.Cls For i = 1 To n Arr(i) = InputBox("Введите число", "Заполнение массива") Picture1.Print Arr(i) Next i MsgBox ("Ввод массива окончен") For o = 1 To n 'код создания гистограммы Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(205, 0, 0), BF Picture3.Line (0, 0 + 20 * o)-(Arr(o), 20 + 20 * o), RGB(28, 28, 28), B Next End Sub
Private Sub Command4_Click(Index As Integer)' Сортировка бинарной вставкой Dim Arr(-100 To 100) As Integer Picture2.Cls Dim B As Long Dim C As Long Dim E As Long Dim i As Long Dim j As Long Dim k As Long Dim R As Long On Error GoTo HandlerError i = 2 Do B = 1 E = i - 1 C = (B + E) \ 2 Do While B <> C If Arr(C) > Arr(i) Then E = C Else B = C End If C = (B + E) \ 2 Loop If Arr(B) < Arr(i) Then If Arr(i) > Arr(E) Then B = E + 1 Else B = E End If End If k = i R = Arr(i) Do While k > B Arr(k) = Arr(k - 1) k = k - 1 Loop Arr(B) = R i = i + 1 Loop Until Not i <= n Picture2.Print R
HandlerError: If Err <> 0 Then Err.Clear End If End Sub
Private Sub Command8_Click() 'Сортировка простой вставкой Public Sub InsertionSort(mas() As Long, ByVal n As Long) Picture2.Cls Dim Arr(-100 To 100) As Integer Dim i As Long Dim j As Long Dim k As Long Dim R As Long On Error GoTo HandlerError i = 2 Do j = 1 Do If mas(i) < mas(j) Then k = i R = mas(i) Do mas(k) = mas(k - 1) k = k - 1 Loop Until Not k > j mas(j) = R j = i Else j = j + 1 End If Loop Until Not j < i i = i + 1 Loop Until Not i <= n HandlerError: If Err <> 0 Then Err.Clear End If
End Sub
|
Вот часть кода моей программы, Кнопка1,2,3- ввод массива(тремя способами) Кнопка4,8- сортировка массива помогите пожалуйста поставить Picrure2.Print Arr(i) на свое место (сортировка массивов), И сделать так чтоб программа сортировала массив. Мне кажется, что программа не видит массив Arr(i), так как на Picture2 он выводил 0. Оч нужна ваша помощь, сама я додуматься не могу, уже двое суток мучаю и себя и ноут!((( Это сообщение отредактировал(а) MelissaHell - 22.5.2011, 12:29
|