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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2012, 02:36   #1
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию

Всем привет,возникла проблема с задачкой в вба,необходимо пересчитать значения двумерного массива след. образом:
если aij < j тогда надо к aij прибавить j иначе
aij умножить на j

Посмотрите пожалуйста и скажите правильно ли я делаю?Последнее с чем не могу справится,так это вывести полученный массив на List1
Код:
Public Sub Mass_arr()
i%,j%,k%,n%,a()% 
 
 n = InputBox("Vvedite razmernost")
 ReDim a(1 To n, 1 To n)
 For i = 1 To n
      For j = 1 To n
          a(i, j) = InputBox(" A(" & i & "," & j & ") =")
            Sheets("List1").Cells(i, j).Value = a(i, j)
    Next j
Next i

For i = 1 To n
    For j = 1 To n
If a(i, j) < j Then
a(i, j) = a(i, j) + j
Else
a(i, j) = a(i, j) * j
End If
Next
Next
End Sub
Прошу помощи!

Возник еще вопрос,необходим ли тут еще один массив,так сказать итоговый,для вывода полученных результатов?
Что-то вроде:

Код:
For i = 1 To n
    For j = 1 To n
If a(i, j) < j Then
vv(i, j) = a(i, j) + j
Else
vv(i, j) = a(i, j) * j
End If
 Next
    Next
    Вывод результата
End Sub
Правда не знаю,правильное ли присвоение здесь происходит...

Последний раз редактировалось Stilet; 16.06.2012 в 11:12.
xrenomx вне форума Ответить с цитированием
Старый 16.06.2012, 11:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Упростим?
Код:
Public Sub Mass_arr()
i%,j%,k%,n%,a()% 
 
 n = InputBox("Vvedite razmernost")
 ReDim a(1 To n, 1 To n)
 For i = 1 To n
      For j = 1 To n
          a(i, j) = InputBox(" A(" & i & "," & j & ") =")

If a(i, j) < j Then
a(i, j) = a(i, j) + j
Else
a(i, j) = a(i, j) * j
End If

          Sheets("List1").Cells(i, j).Value = a(i, j)
    Next j
Next i
End Sub
Цитата:
так сказать итоговый,для вывода полученных результатов?
На кой кукарач он нужен? У тебя весь экзель мегамассив.
Да и потом:
Код:
 debug.print  a(i, j)
Еще никто не отменял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.06.2012, 13:33   #3
xrenomx
Пользователь
 
Аватар для xrenomx
 
Регистрация: 05.02.2011
Сообщений: 63
По умолчанию

Биг спс,щас проверю...
xrenomx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сместить значения массива kettanaito Общие вопросы Delphi 10 25.09.2011 11:35
как пересчитать ячейки стринггрида TotKtoNado БД в Delphi 7 17.04.2011 14:37
Delphi 2010 пересчитать все формы проекта программно. Человек_Борща Общие вопросы Delphi 6 13.04.2011 22:39
Значения массива Serebah Общие вопросы Delphi 7 09.02.2011 17:37
Пересчитать автоинкремент в таблице. strannik SQL, базы данных 1 08.05.2010 07:25