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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2011, 09:45   #1
chege
Новичок
Джуниор
 
Регистрация: 15.10.2011
Сообщений: 2
По умолчанию Формирование матрицы соединений!

Доброе время суток друзья)) Прошу вас помочь с моей проблемой или дать совет как лучше сделать.
Суть подпрограммы:формирование матрицы соединений))
исх данные: таблица из 2х столбцов и Nого количества строк.
Первый столбец: начало ветви схемы,
Второй: конец ветви схемы.
Нужно получить: матрицу соединений, в которой столбцы, это номера ветвей (и следовательно номера строк в таблице исх. данных),
а строки это узлы(колличество узлов равно максимальному элементу таблицы исх. данных).
В итоге в матрице будет следующая картина: если в i-ой строке исх таблицы присутствует k-ый узел, тогда в новой матрице элементу присвоенно значение 1, если нет, то 0.

Вот часть программы что сделал, в итоге я получаю таблицу со всеми нулевыми элементами.

Sub MASSIVI()
Dim MASS_ISX() As Double, MASS_REZ() As Double
'Переменные массивов'
Dim i As Integer 'номер строки MASS_ISX, номер столбца массива MASS_REZ'
Dim j As Integer 'номер столбца массива MASS_ISX'
Dim k As Integer 'номер строки массива MASS_REZ'

'Размерности массивов'

'Для массива MASS_ISX'

g = Selection.Rows.Count 'количество строк в диапозоне'
h = Selection.Columns.Count 'количество столбцов в диапозоне'

'Для массива MASS_REZ'

o = 4 'количество строк(узлов в схеме) в массиве MASS_REZ'
p = g 'количество столбцов(ветвей в схеме) в массиве MASS_REZ'
'Формирование массива'
ReDim MASS_ISX(g, h)
ReDim MASS_REZ(o, p)
'Цикл формирования матрицы результата'
For k = 1 To o
For i = 1 To p
For j = 1 To h
If MASS_ISX(i, j) = k Then
MASS_REZ(k, i) = 1
Else
MASS_REZ(k, i) = 0
End If
Next j
Next i
Next k
'Итоговый массив'
Worksheets("Лист2").Cells(1, 1).Resize(o, p).Value = MASS_REZ
End Sub
Заранее благодарю за вашу помощь))

Последний раз редактировалось chege; 15.10.2011 в 10:28.
chege вне форума Ответить с цитированием
Старый 15.10.2011, 10:19   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
формирование матрицы соединений
Вот и нужно было примерно так назвать тему.
Читайте правила форума.
p.s. Не удивлюсь, если модераторы удалят или закроют Вашу тему...
p.p.s.
А вот теперь мой пост хоть удаляй))
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 15.10.2011 в 10:41.
VictorM вне форума Ответить с цитированием
Старый 15.10.2011, 11:05   #3
chege
Новичок
Джуниор
 
Регистрация: 15.10.2011
Сообщений: 2
По умолчанию

Нееее оставлю на память))) Спасибо и за эту помощь)))
chege вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
добрый день на паскале ddeman666 Помощь студентам 3 03.06.2010 17:08