Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 2
Регистрация: 08.08.2011
Сообщений: 61

Переупорядочить массив по убыванию

24.12.2012, 09:54. Показов 1294. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите никак не могу доделать. Не могу вывести отсортированный массив в MSFlexGrid2
Элементы массива упорядочены по возрастанию элементов в столбцах. Переупорядочить массив по убыванию его элементов в столбцах.
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Dim Am(10, 10) As Double
Dim av() As String
Public n, m As Integer
Private Sub Command1_Click()
  n = Text1
  m = Text2
  If n > 10 Or m > 10 Or (n * m) > 25 Then
  MsgBox "Ðàçìåðíîñòü ïî êàæäîìó èçìåðåíèþ íå áîëüøå 10, âñåãî ýëåìåíòîâ íå áîëåå 15"
  End
  End If
End Sub
 
Private Sub Command4_Click()
  av = Split(Text3, " ")
  MSFlexGrid1.Rows = n + 1
  MSFlexGrid1.Cols = m + 1
  MSFlexGrid1.Row = 0
  For i = 0 To m
    MSFlexGrid1.Col = i
    MSFlexGrid1.ColWidth(i) = 700
    MSFlexGrid1.Text = i
  Next
  MSFlexGrid1.Col = 0
  MSFlexGrid1.ColWidth(0) = 300
  For i = 0 To n
    MSFlexGrid1.Row = i
    MSFlexGrid1.Text = i
  Next
  k = 0
  For i = 0 To n - 1
  MSFlexGrid1.Row = i + 1
    For j = 0 To m - 1
      Am(i, j) = Val(av(k))
      MSFlexGrid1.Col = j + 1
      MSFlexGrid1.Text = Am(i, j)
      k = k + 1
  Next
Next
End Sub
 
Private Sub Command3_Click()
MSFlexGrid2.Rows = n + 1
  MSFlexGrid2.Cols = m + 1
  MSFlexGrid2.Row = 0
  For i = 0 To m
    MSFlexGrid2.Col = i
    MSFlexGrid2.ColWidth(i) = 700
    MSFlexGrid2.Text = i
  Next
  MSFlexGrid2.Col = 0
  MSFlexGrid2.ColWidth(0) = 300
  For i = 0 To n
    MSFlexGrid2.Row = i
    MSFlexGrid2.Text = i
Next
For i = 1 To n
    'Max = 0
    For j = 1 To m
        f = j
        Do While f > 0
            If Am(i, f) < Am(i, f - 1) Then
                t = Am(i, f)
                Am(i, f) = Am(i, f - 1)
                Am(i, f - 1) = t
                f = f - 1
            Else
                Exit Do
            End If
        Loop
    Next
Next
'Âûâîä
For i = 1 To n
    For j = 1 To m
        MSFlexGrid2.Text = Am(i, j)
    Next
Next
End Sub
Private Sub Command2_Click()
End
End Sub
Добавлено через 10 часов 54 минуты
Друзья неужели никто не знает ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2012, 09:54
Ответы с готовыми решениями:

Переупорядочить массив по убыванию в строках
Элементы массива упорядочены по возрастанию в строках. Переупорядочить массив по убыванию в строках.

Переупорядочить массив по убыванию его элементов в строках
помогите доделать задание: 1.Организовать ввод элементов двумерного массива размерностью N*M из текстового файла(открытие файла через...

Элементы массива упорядочены по возрастанию элементов в строках. Переупорядочить массив по убыванию его элементов в строках
Элементы массива упорядочены по возрастанию элементов в строках. Переупорядочить массив по убыванию его элементов в строках.

7
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
24.12.2012, 13:55
Скорее всего просто лениво создавать проект, бросать на него контролы( а для этого ещё подключать контролы). Переименовывать всё так что бы совпало с кодом...
Прицепил бы проект

Добавлено через 1 час 24 минуты
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Option Explicit
 
Dim Am(10, 10) As Double
Dim av() As String
Dim N, M As Integer
Dim i, j, F, T
 
Private Sub Комманда2_Click()
End
End Sub
 
Private Sub Комманда3_Click() 'форматирование гридов и подпись заголовков
 
  N = 20
  M = 8
 
MSFlexGrid1.Rows = N + 1
  MSFlexGrid1.Cols = M + 1
MSFlexGrid2.Rows = N + 1
  MSFlexGrid2.Cols = M + 1
  
  For i = 0 To M
    MSFlexGrid1.TextMatrix(0, i) = i
    MSFlexGrid1.ColWidth(i) = MSFlexGrid1.Width / (M + 1) * 0.98
    MSFlexGrid1.ColAlignment(i) = 3
    MSFlexGrid2.TextMatrix(0, i) = i
    MSFlexGrid2.ColWidth(i) = MSFlexGrid2.Width / (M + 1) * 0.98
     MSFlexGrid2.ColAlignment(i) = 3
  Next
 
  For i = 0 To N
    MSFlexGrid1.TextMatrix(i, 0) = i
    MSFlexGrid2.TextMatrix(i, 0) = i
Next
 
Randomize
  For i = 1 To N
  For j = 1 To M
MSFlexGrid1.TextMatrix(i, j) = Int(90 * Rnd + 10)
MSFlexGrid2.TextMatrix(i, j) = MSFlexGrid1.TextMatrix(i, j)
  Next
Next
 
End Sub
 
Private Sub Комманда4_Click() 'сортировка 1 грида по возрастанию
Dim R, C, T, Max
With MSFlexGrid1
        For i = 1 To M
                For R = 1 To N
            
                Max = Val(.TextMatrix(R, i))
                T = R
                    For C = R To N
                                If Max > Val(.TextMatrix(C, i)) Then Max = Val(.TextMatrix(C, i)): T = C
                    Next C
                    C = .TextMatrix(T, i): .TextMatrix(T, i) = .TextMatrix(R, i):  .TextMatrix(R, i) = C
                Next R
        Next i
End With
End Sub
 
 
Private Sub Комманда1_Click() ' сортировка второго грида по убыванию
Dim R, C, T, Max
With MSFlexGrid2
        For i = 1 To M
                For R = 1 To N
            
                Max = Val(.TextMatrix(R, i))
                T = R
                    For C = R To N
                                If Max < Val(.TextMatrix(C, i)) Then Max = Val(.TextMatrix(C, i)): T = C
                    Next C
                    C = .TextMatrix(T, i): .TextMatrix(T, i) = .TextMatrix(R, i):  .TextMatrix(R, i) = C
                Next R
        Next i
End With
 
End Sub
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
24.12.2012, 20:59
Если массив уже упорядочен (по возрастанию), для переупорядочения не нужно его сортировать - достаточно переставить элементы в обратном порядке:

Visual Basic
1
2
3
4
5
6
7
8
9
10
i1%=1
i2%=n%
for i%=1 to n%
    Tmp%=X(i1%)
    X(i1%)=X(i2%)
    X(i2%)=Tmp%
    i1%=i1%+1
    i2%=i2%-1
    if i1%>=i2% then Exit for 
Next i%
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
24.12.2012, 21:24
Catstail, восьмая строка лишняя
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
24.12.2012, 23:02
Гм...

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Test()
 
    X = Array(0, 1, 2, 3, 4, 5, 6, 7, 8)
 
    i1% = 1
    i2% = 8
    
    For i% = 1 To 8
        Tmp% = X(i1%)
        X(i1%) = X(i2%)
        X(i2%) = Tmp%
        i1% = i1% + 1
        i2% = i2% - 1
        If i1% >= i2% Then Exit For
    Next i%
    
    For i% = 1 To 8
        Debug.Print X(i%)
    Next i%
    
End Sub
Вывод:
8
7
6
5
4
3
2
1

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Test()
 
    X = Array(0, 1, 2, 3, 4, 5, 6, 7, 8)
 
    i1% = 1
    i2% = 8
    
    For i% = 1 To 8
        Tmp% = X(i1%)
        X(i1%) = X(i2%)
        X(i2%) = Tmp%
        'i1% = i1% + 1  ''' Забил
        i2% = i2% - 1
        If i1% >= i2% Then Exit For
    Next i%
    
    For i% = 1 To 8
        Debug.Print X(i%)
    Next i%
    
End Sub
Результат:

2
3
4
5
6
7
8
1
0
 Аватар для Апострофф
9908 / 3924 / 742
Регистрация: 11.10.2011
Сообщений: 5,904
25.12.2012, 05:25
Visual Basic
1
2
3
4
5
6
7
8
9
10
'i1%=1
i2%=n%
for i%=1 to n%\2
    Tmp%=X(i%)
    X(i%)=X(i2%)
    X(i2%)=Tmp%
'    i1%=i1%+1
    i2%=i2%-1
'    if i1%>=i2% then Exit for 
Next i%
Да там оказывается не одна, а три строчки лишние
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38177 / 21112 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
25.12.2012, 10:55
С этим соглашусь...
0
1 / 1 / 2
Регистрация: 08.08.2011
Сообщений: 61
06.01.2013, 21:24  [ТС]
Такой вопрос вывожу массив в два picture, затем нужно нажать на кнопку и заменить нечетный элемент каждой строки нулем , код написал, а как из первого picture взять исходный сгенирированный массив ?

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
Dim a(100, 100) As Integer
Dim n, m As Integer
Private Sub Command1_Click()
n = Val(Text1)
m = Val(Text2)
For i = 1 To n
For j = 1 To m
    a(i, j) = Int(Rnd * 30)
Picture1.Print a(i, j);
Picture2.Print a(i, j);
Next
Picture1.Print
Picture2.Print
Next
End Sub
 
Private Sub Command3_Click()
Picture2.Cls
For i = 1 To n
For j = 1 To m
If a(i, j) Mod 2 <> 0 Then a(i, j) = 0
Picture2.Print a(i, j)
Next k
Next j
Picture2.Print
Next
End Sub
Добавлено через 18 минут
все разобрался
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2013, 21:24
Помогаю со студенческими работами здесь

Переупорядочить массив по возрастанию
) Дан одномерный массив А длиной М&lt;=20, упорядоченный по убыванию. - пере упорядочить массив А по возрастанию его элементов, используя...

переупорядочить заданный одномерный массив так, чтобы его элементы шли в порядке возрастания их близости к целым числам
не могу сделать задачу.....помогите пожалуйста ))))))))) задача: переупорядочить заданный одномерный массив так, чтобы его элементы шли в...

Заданы два упорядоченных по убыванию массива. Соединить их в один массив, так чтобы элементы были упорядоченны по убыванию
Заданы два упорядоченных по убыванию массива А и В, состоящих из N и M вещественных элементов соответственно. Соединить их в один массив С,...

Переупорядочить строки
Есть, допустим, текстовый файл: и есть список некоторых целых чисел: Как бы мне, взяв строки из первого файла, записать их в...

Переупорядочить колонки DataGridView
Есть DataGridView. В нем надо переупорядочить колонки. Поступаем так: '----Упорядочиваем колонки Grid-а ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 из исходников с помощью 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
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru