Нужно вывести 100 рандомных чисел в текстовый файл, после чего отсортировать по возрастанию - VB

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

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

Дан одномерный массив. Нужно вывести 100 рандомных чисел в текстовый файл, после чего отсортировать по возрастанию. Вот кусок кода который смог сделать я помогите с сортировкой...
Листинг программы
  1. Option Explicit
  2. Dim fn As String
  3. Dim ln As String, s(100) As Integer, i As Integer
  4. Private Sub Command1_Click()
  5. 'fn = Text1.Text
  6. 'ln = Text2.Text
  7. Open "data.txt" For Output As #1
  8. Print #1,
  9. For i = 0 To 30
  10. 'здесь начинаеться код генерации случайных чисел
  11. s(i) = Rnd() * 140 + 10
  12. 'печать чисел в файл
  13. Print #1, s(i)
  14. Next
  15. MsgBox "Генерация завершена!"
  16. Close #1
  17. End Sub

Решение задачи: «Нужно вывести 100 рандомных чисел в текстовый файл, после чего отсортировать по возрастанию»

textual
Листинг программы
  1. 'Процедура для упорядочивания массива пирамидальной сортировкой
  2. 'Входные параметры:
  3. '    Arr -   сортируемый массив.
  4. '            Нумерация элементов от 0 до N-1
  5. '    N   -   размер массива
  6. '
  7. 'Выходные параметры:
  8. '    Arr -   массив, упорядоченный по возрастанию.
  9. '            Нумерация элементов от 0 до N-1
  10. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  11. Public Sub HeapSort(ByRef Arr() As Double, ByVal N As Long)
  12.     Dim I As Long
  13.     Dim J As Long
  14.     Dim K As Long
  15.     Dim T As Long
  16.     Dim Tmp As Double
  17.  
  18.     If N=1# then
  19.         Exit Sub
  20.     End If
  21.     i = 2#
  22.     Do
  23.         t = i
  24.         Do While t<>1#
  25.             k = t\2#
  26.             If Arr(k-1#)>=Arr(t-1#) then
  27.                 t = 1#
  28.             Else
  29.                 Tmp = Arr(k-1#)
  30.                 Arr(k-1#) = Arr(t-1#)
  31.                 Arr(t-1#) = Tmp
  32.                 t = k
  33.             End If
  34.         Loop
  35.         i = i+1#
  36.     Loop Until  Not i<=n
  37.     i = n-1#
  38.     Do
  39.         Tmp = Arr(i)
  40.         Arr(i) = Arr(0#)
  41.         Arr(0#) = Tmp
  42.         t = 1#
  43.         Do While t<>0#
  44.             k = 2#*t
  45.             If k>i then
  46.                 t = 0#
  47.             Else
  48.                 If k<i then
  49.                     If Arr(k)>Arr(k-1#) then
  50.                         k = k+1#
  51.                     End If
  52.                 End If
  53.                 If Arr(t-1#)>=Arr(k-1#) then
  54.                     t = 0#
  55.                 Else
  56.                     Tmp = Arr(k-1#)
  57.                     Arr(k-1#) = Arr(t-1#)
  58.                     Arr(t-1#) = Tmp
  59.                     t = k
  60.                 End If
  61.             End If
  62.         Loop
  63.         i = i-1#
  64.     Loop Until  Not i>=1#
  65. End Sub

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


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

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

15   голосов , оценка 4 из 5

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

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

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