Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2011, 18:14   #1
Aion
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 16
По умолчанию vba сортировка массива

здравствуйте, на 3 курсе проходим VBA в аксесе, вообще подобные задачи решали на 1 по паскалю, но уже забыл всю эту муть с сортировкой

задача звучит так
Дан двумерный масс mxn. характеристикой столбца целочисленной матрицы назовем сумму его + элементов. Переставить столбцы матрицы в соответствии с убыванием характеристик

потрудился немного - вот что получилось
компилятор ругается на Next j во втором блоке for(пометил)
подкскажите в чем ошибка или может быть вариант более рациональный

PHP код:
Sub LR_8()
Dim Mass() As Double
Dim Mass2
() As Double
Dim i 
As IntegerAs IntegerAs IntegerAs IntegerAs Double

InputBox("введите размерность массива - n")
InputBox("введите размерность массива - m")
count 0

ReDim Mass
(1 To n1 To m) As Double
ReDim Mass2
(1 To 21 To m) As Double

For 1 To n
    
For 1 To m
        Mass
(ij) = InputBox("введите элемент Mass(" "," ")")
        
Mass2(1j) = j
    Next j
Next i

For 1 To n
    
For 1 To m
        
If (Mass(ij) >= 0Then
        Mass2
(2j) = Mass2(2j) + Mass(ij)
    
Next j////////////тут компилятор говорит, мол Next без For
Next i

For 1 To n
    
For n To (1Step -1
        
If Mass2(21) < Mass2(2jThen
        L 
Mass2(21): Mass2(21) = Mass2(2j): Mass2(2j) = L
        L 
Mass2(11): Mass2(11) = Mass2(1j): Mass2(1j) = L
    Next j
Next i





Debug
.Print "итоговый масс"
For 1 To n
    
For 1 To m
        Debug
.Print Mass(iMass2(1j))
    
Next j
    Debug
.Print
Next i

Debug
.Print
End Sub 
Aion вне форума Ответить с цитированием
Старый 29.05.2011, 20:20   #2
Aion
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 16
По умолчанию

добавил недостающие End if, программа запускается, но работает некорректно
Aion вне форума Ответить с цитированием
Старый 01.06.2011, 12:14   #3
ovt256
Форумчанин
 
Регистрация: 01.04.2011
Сообщений: 226
По умолчанию

Проверьте этот вариант:
Код:
Dim Mass() As Double
Dim Mass2() As Double
Dim i As Integer, j As Integer, m As Integer, n As Integer, L As Double

n = InputBox("введите размерность массива - n")
m = InputBox("введите размерность массива - m")
Cnt = 0

ReDim Mass(1 To n, 1 To m) As Double
ReDim Mass2(1 To 2, 1 To m) As Double

For i = 1 To n
    For j = 1 To m
        Mass(i, j) = InputBox("введите элемент Mass(" & i & "," & j & ")")
    Next j
Next i

For i = 1 To n
    For j = 1 To m
        If (Mass(i, j) >= 0) Then
           Mass2(2, j) = Mass2(2, j) + Mass(i, j)
        End If
        Mass2(1, j) = j
    Next j
Next i

For i = 1 To m - 1
  For j = 1 To m - i
        If Mass2(2, j) < Mass2(2, j + 1) Then
        L = Mass2(2, j): Mass2(2, j) = Mass2(2, j + 1): Mass2(2, j + 1) = L
        L = Mass2(1, j): Mass2(1, j) = Mass2(1, j + 1): Mass2(1, j + 1) = L
        End If
    Next j
Next i





Debug.Print "итоговый масс"
For i = 1 To n
    For j = 1 To m
        Debug.Print Mass(i, Mass2(1, j))
    Next j
    Debug.Print
Next i

Debug.Print
Если руки золотые, то не важно, откуда они растут.
ovt256 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка с помощью VBA Lyubov1990 Microsoft Office Excel 11 22.11.2011 20:06
VBA сортировка одномерного массива MIKE11IPME Помощь студентам 1 17.04.2011 20:58
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
Сортировка писем Outlook с помощью VBA. GoreProgrammist Microsoft Office Excel 0 28.09.2009 14:14
VBA Сортировка 2007 vs. 2003 Acro Microsoft Office Excel 0 10.05.2009 23:58