Программа не сортирует массив из чисел, заданный txt файлом - VB
Формулировка задачи:
Доброе время суток Господа!
Программа не сортирует массив из чисел, заданный txt файлом, чтение проходит хорошо, данные выводятся в picture1, а далее сортировка по методу вставки, косячит.
Посмотрите пожалуйста свежим профессиональным глазом, заранее огромное спасибо!
Листинг программы
- Dim n As Integer, x() As Integer
- Private Sub Command1_Click()
- Open "D:\A.txt" For Input As #1
- n = 0
- Dim a(200) As Integer
- While Not EOF(1): n = n + 1
- Input #1, a(n)
- Wend
- Close #1
- ReDim x(n) As Integer
- For i = 1 To n: x(i) = a(i)
- Picture1.Print x(i);
- Next i
- End Sub
- Private Sub Command2_Click()
- Unload Me
- End Sub
- Public Sub sortirovkavstavkoy(min As Integer, max As Integer)
- Dim i As Long
- Dim j As Long
- Dim k As Long
- Dim max_sort As Long
- Dim next_num As Long
- max_sort = min - 1
- For i = min To max
- ' Vstavl chislo.
- next_num = x(i)
- 'poisk chisla v spiske.
- For j = min To max_sort
- If x(j) >= next_num Then Exit For
- Next j
- ' peremestim bolshie elementi vniz, 4tobi osvobodit' mesto dlya
- 'novogo chisla
- For k = max_sort To j Step -1
- x(k + 1) = x(k)
- Next k
- 'pomestit' noviy element
- x(j) = next_num
- ' uvelichit' chtchik otsortirovannih elementov.
- max_sorted = max_sort + 1
- Next i
- For i = min To max
- Picture2.Print x(i);
- Next i
- End Sub
- Private Sub Command3_Click()
- Call sortirovkavstavkoy(1, n)
- End Sub
Решение задачи: «Программа не сортирует массив из чисел, заданный txt файлом»
textual
Листинг программы
- Dim n As Integer, x() As Integer
- Private Sub Command1_Click()
- Open "D:\A.txt" For Input As #1
- n = 0
- Dim a(200) As Integer
- While Not EOF(1): n = n + 1
- Input #1, a(n)
- Wend
- Close #1
- ReDim x(n) As Integer
- For i = 1 To n: x(i) = a(i)
- Picture1.Print x(i);
- Next i
- End Sub
- Private Sub Command2_Click()
- Unload Me
- End Sub
- Public Sub insertionsort(min As Integer, max As Integer)
- max_sorted = min - 1
- For i = min To max
- 'Вставляем число
- next_num = x(i)
- 'Поиск числа в нашем списке
- For j = min To max_sorted
- If x(j) <= next_num Then Exit For
- Next j
- 'Переместим большие элементы вниз, чтобы освободить место для нового числа
- For k = max_sorted To j Step -1
- x(k + 1) = x(k)
- Next k
- 'Поместить новый элемент
- x(j) = next_num
- 'Увеличить счетчик отсортированных элементов
- max_sorted = max_sorted + 1
- Next i
- For i = min To max
- Picture2.Print x(i);
- Next i
- End Sub
- Private Sub Command3_Click()
- Call insertionsort(1, n)
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д