|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.04.2012, 18:22 | #1 |
Регистрация: 07.04.2012
Сообщений: 6
|
Удаление строки столбца в массива vba excel
Добрый день!
Задача такова: Дана квадратная матрица вещественных чисел. Найти наибольший по модулю элемент, получить квадратную матрицу из исходной, путем выбрасывания строки и столбца, на пересечении которых находится распооженный элемент с найденным значением. Элемент сам нашел, и вроде бы написал алгоритм для новой матрицы, но что-то не работает, проверьте, помогите пожалуйста Код HTML:
Sub maximum() Dim i As Single Dim j As Single Dim x As Single Dim y As Single Dim n As Single Dim m As Single Dim max As Integer Dim A() As Variant Dim B() As Variant Sheets("Лист1").Activate Range("A1").CurrentRegion.Select n = Selection.Rows.Count m = Selection.Columns.Count ReDim A(n, m) For i = 1 To n For j = 1 To m A(i, j) = Range("A1").Cells(i, j) Next j Next i max = A(1, 1): k1 = 1: l1 = 1 For i = 1 To n For j = 1 To m If Abs(A(i, j)) > max Then max = Abs(A(i, j)) k1 = i l1 = j Next j Next i MsgBox ("max=") & max Sheets("Лист1").Activate Range("A1").CurrentRegion.Select n = Selection.Rows.Count m = Selection.Columns.Count ReDim B(n - 1, m - 1) For x = 1 To n - 1 For y = 1 To m - 1 Next y Next x If k1 <> i And l1 <> j Then B(x, y) = A(i, j) x = x + 1 y = y + 1 End If For x = 1 To n - 1 For y = 1 To m - 1 B(x, y) = Range("A1").Cells(x, y) Next y Next x End Sub |
13.04.2012, 20:25 | #2 |
Старожил
Регистрация: 23.10.2010
Сообщений: 2,306
|
Код:
Думаю, что алгоритм должен быть простым: 1. Нашли i и j максимального элемента (столбец, строка) 2. (Если нужен новый массив) Переписываем все столбцы до i как есть, затем начинаем цикл с i+1 и переписываем оставшиеся столбцы со с сдвигом вправо. Я бы, при этом, использовал дополнительную переменную, которая указывала бы на номер переносимого столбца (до i эта переменная совпадает с параметром цикла, а затем принимает значение на 1 больше). 3. Аналогично, но со сдвигом вверх переписываем строки. Как-то так ...
Как-то так, ...
|
13.04.2012, 20:29 | #3 |
Регистрация: 07.04.2012
Сообщений: 6
|
ну я подразумевал новую матрицу на порядок ниже
а не могли бы вы написать данный код, пожалуйста, потому что не совсем понимаю как это осуществить. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удаление определенных строки и столбца из матрицы | X-QuadrO | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 19.05.2011 18:17 |
обмен столбца и строки двумерного массива | Shelena | Помощь студентам | 12 | 08.11.2010 12:04 |
Удаление строки и столбца | sllh_111 | Помощь студентам | 1 | 18.03.2010 15:41 |
удаление строки и столбца из матрицы | Laplas | Помощь студентам | 3 | 08.01.2010 04:41 |