Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/25: Рейтинг темы: голосов - 25, средняя оценка - 4.88
14 / 14 / 0
Регистрация: 16.04.2011
Сообщений: 236

Сортировка массивов

04.10.2011, 16:40. Показов 5097. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очень хочется разобраться с сортировкой массивов!!!
Дан фрагмент программы для организации сортировки простым выбором
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Private Sub Command1_Click()
For i = 1 To n
    k = i: x = a(i)
    For j = i + 1 To n
        If a(j) > x Then
            x = a(j): k = j
        End If
    Next j
    a(k) = a(i): a(i) = x
Next i
For i = 1 To n
Print " "; a(i);
Next i
End Sub
Предположим массив будет 1 до 5, то как будет выглядеть код и объясните пожалуйста что за что отвечает? Заранее спасибо!!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.10.2011, 16:40
Ответы с готовыми решениями:

Массивы. Обьявление массивов. Сортировка массивов
Массивы. Массивы, друзья мои, очень простая и крайне необходимая штука. Простой пример: ты считал из директории 50 имен файлов и...

Сортировка и слияние массивов
Заданы два одномерных массива с различным количеством элементов и натуральное число k. Объединить их в один массив, включив второй массив...

Сортировка массивов методом подсчета: написать код по образцу
Здравствуйте, еще раз выкладываю вот это задание: СОртировка массивов методом подсчета. Внизу есть образец Заранее спасибо! Алг...

4
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
04.10.2011, 22:06
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Private Sub Command1_Click()
'объявляем:
'счетчики циклов
Dim i As Integer, j As Integer
Dim a() ' собственно иассив /пока без указания размерности/
Dim n As Integer 'и переменную для размерности массива
 
n = 5 'inputbox("n-?")'устанавливаем (5) или вводим размерность
ReDim a(n) ' переобъявляем массив с учетом размерности
For i = 1 To n  'в цикле по размерности
'генерируем или вводим эл.массива
a(i) = Int(Rnd * 20) 'inputbox("a(" & i & "-?")
Next i
 
For i = 1 To n - 1 'просматриваем все эл до предпоследнего
                   ' включительно (последний автоматом будет на месте
    k = i: x = a(i) 'запомним текущий эл и его индекс (номер)
    For j = i + 1 To n 'для него перебираем эл, следующие после
        'если найдем больший (меньший), то
        If a(j) > x Then ' If a(j) < x Then
            'запомним его значение и номер
            x = a(j): k = j
        End If
    Next j
    'после перебора всех последующих тот который запомнили последним
    'и есть наибольший (наименьший) /от i до n/
    'меняем местами текущий (i) и который определили (k)
    a(k) = a(i): a(i) = x
    
Next i
'вывод
For i = 1 To n
Print " "; a(i);
Next i
End Sub
вот как то так
пример: массив 5 6 1
фиксируем 5 и сравниваем его с 6 и с 1
5 больше 6 --- нет --- пропускаем
5 больше 1 --- да --- меняем местами
массив 1 6 5
фиксируем следующий 6 и сравниваем его с 5 (все после 6)
6 больше 5 --- да --- меняем местами
массив 1 5 6
2
14 / 14 / 0
Регистрация: 16.04.2011
Сообщений: 236
06.10.2011, 23:53  [ТС]
Если можно поясните пожалуйста на примере как осуществляется замена значений!
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
07.10.2011, 00:31
на форме Command1 и List1
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Private Sub Command1_Click()
 
Dim i As Integer, j As Integer, m
Dim a()
Dim n As Integer, lb As String
 List1.Clear
n = 5
lb = "Это исходный массив:    "
ReDim a(n)
For i = 1 To n
a(i) = Int(Rnd * 20)
lb = lb & a(i) & "   "
Next i
 List1.AddItem lb
 List1.AddItem String(125, ".")
For i = 1 To n - 1
List1.AddItem String(125, " ") & "шаг: " & i
  List1.AddItem String(45, " ") & "               фиксируем  а(" & i & ")=" & a(i)
  List1.AddItem "запомним его значение " & a(i) & "   и его номер  " & i
    k = i: x = a(i)
   List1.AddItem "     с ним сравниваем: "
   
    For j = i + 1 To n
          List1.AddItem "                  a(" & j & ")=" & a(j)
 
        If a(j) > x Then ' If a(j) < x Then
           List1.AddItem "----->  " & a(j) & " > " & x & _
           "    !!!  значит   запомним  a(" & j & ")=" & a(j) & "   и его номер  " & j
 
            x = a(j): k = j
        End If
    Next j
    a(k) = a(i): a(i) = x
List1.AddItem String(115, "-")
List1.AddItem "фиксировали: а(" & i & ")=" & a(i) & "   запомннили: a(" & k & ")=" & x
   List1.AddItem "меняем их местами --- получаем массив:"
 
lb = ""
For m = 1 To n
lb = lb & a(m) & "   "
Next m
 List1.AddItem lb
 List1.AddItem String(125, ".")
Next i
 
List1.AddItem "": List1.AddItem "-----------  Все :)"
End Sub
1
14 / 14 / 0
Регистрация: 16.04.2011
Сообщений: 236
07.10.2011, 15:48  [ТС]
Огромное спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.10.2011, 15:48
Помогаю со студенческими работами здесь

программы усложненной структуры, обработка двухмерных массивов, использование стандартных функций для работы с массивами, сортировка массивов.
Искала задачи, нашла в с++, а нужно в паскале сотворить следующее. Использование стандартных функций для работы с массивами. ...

Обработка одномерных массивов. Сортировка массивов
Здравствуйсте! Помогите пожалуйста написать программу! В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1)...

Обработка одномерных массивов. Сортировка массивов
Здравствуйте, помогите пожалуйста решить задачу легким способом. В одномерном массиве, состоящем из n вещественных элементов, вычислить: ...

Сортировка массивов по убыванию и замена массивов
Задача: Даны два массива: А3 и В3х3. Массив А упорядочить по убыванию и заменить им первую строку матрицы В. Где-то раньше у вас был...

Вывод элементов массивов, сортировка массивов
вот ссылки program 1аЬ4; uses crt; const е=0.0010; d=l.Зе-7; var a, b, г, s, х, fa, fг, n, с : real; begin write('введите айв:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru