Программа не сортирует массив из чисел, заданный txt файлом - VB

Узнай цену своей работы

Формулировка задачи:

Доброе время суток Господа! Программа не сортирует массив из чисел, заданный txt файлом, чтение проходит хорошо, данные выводятся в picture1, а далее сортировка по методу вставки, косячит. Посмотрите пожалуйста свежим профессиональным глазом, заранее огромное спасибо!
Листинг программы
  1. Dim n As Integer, x() As Integer
  2. Private Sub Command1_Click()
  3. Open "D:\A.txt" For Input As #1
  4. n = 0
  5. Dim a(200) As Integer
  6. While Not EOF(1): n = n + 1
  7. Input #1, a(n)
  8. Wend
  9. Close #1
  10. ReDim x(n) As Integer
  11. For i = 1 To n: x(i) = a(i)
  12. Picture1.Print x(i);
  13. Next i
  14. End Sub
  15. Private Sub Command2_Click()
  16. Unload Me
  17. End Sub
  18. Public Sub sortirovkavstavkoy(min As Integer, max As Integer)
  19. Dim i As Long
  20. Dim j As Long
  21. Dim k As Long
  22. Dim max_sort As Long
  23. Dim next_num As Long
  24. max_sort = min - 1
  25. For i = min To max
  26. ' Vstavl chislo.
  27. next_num = x(i)
  28. 'poisk chisla v spiske.
  29. For j = min To max_sort
  30. If x(j) >= next_num Then Exit For
  31. Next j
  32. ' peremestim bolshie elementi vniz, 4tobi osvobodit' mesto dlya
  33. 'novogo chisla
  34. For k = max_sort To j Step -1
  35. x(k + 1) = x(k)
  36. Next k
  37. 'pomestit' noviy element
  38. x(j) = next_num
  39. ' uvelichit' chtchik otsortirovannih elementov.
  40. max_sorted = max_sort + 1
  41. Next i
  42. For i = min To max
  43. Picture2.Print x(i);
  44. Next i
  45. End Sub
  46.  
  47. Private Sub Command3_Click()
  48. Call sortirovkavstavkoy(1, n)
  49. End Sub

Решение задачи: «Программа не сортирует массив из чисел, заданный txt файлом»

textual
Листинг программы
  1. Dim n As Integer, x() As Integer
  2. Private Sub Command1_Click()
  3. Open "D:\A.txt" For Input As #1
  4. n = 0
  5. Dim a(200) As Integer
  6. While Not EOF(1): n = n + 1
  7. Input #1, a(n)
  8. Wend
  9. Close #1
  10. ReDim x(n) As Integer
  11. For i = 1 To n: x(i) = a(i)
  12. Picture1.Print x(i);
  13. Next i
  14. End Sub
  15.  
  16. Private Sub Command2_Click()
  17. Unload Me
  18. End Sub
  19. Public Sub insertionsort(min As Integer, max As Integer)
  20.     max_sorted = min - 1
  21.     For i = min To max
  22.         'Вставляем число
  23.            next_num = x(i)
  24.          'Поиск числа в нашем списке
  25.        For j = min To max_sorted
  26.             If x(j) <= next_num Then Exit For
  27.         Next j
  28.         'Переместим большие элементы вниз, чтобы освободить место для нового числа
  29.        For k = max_sorted To j Step -1
  30.             x(k + 1) = x(k)
  31.         Next k
  32.         'Поместить новый элемент
  33.            x(j) = next_num
  34.         'Увеличить счетчик отсортированных элементов
  35.           max_sorted = max_sorted + 1
  36.           Next i
  37.         For i = min To max
  38.           Picture2.Print x(i);
  39.         Next i
  40. End Sub
  41.  
  42.  
  43. Private Sub Command3_Click()
  44. Call insertionsort(1, n)
  45. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы