![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Вот в этом куске твоего кода я и не разобрался ![]()
Это просто названия переменных. Мы для начала помечаем столбцы которые нужно удалить и храним это в ColumnsState. ToDelete - просто счетчик, сколько столбцов нужно удалить (как в твоем коде переменная "r"). Логика такова, сначала проходимся по матрице и находим столбцы для удаления.(прошлись по магазину выбрали нужные вещи, попутно посчитали сколько сумок надо, чтобы все это унести) Затем создаем новый массив с уже меньшим числом столбцов (берем нужное число сумок) и копируем в него поэлементно только то, что нужно (складываем только выбраные вещи). -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
Пума |
|
||||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Я эти коды от балды писала ![]()
m-кол-во строк, n-столбцов i,k текущий индекс строки j,t-текущий индекс столбца Вот я пыталась эти коды под свою задачу переделать |
||||
|
|||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Понятно, тогда лучше осмысли мной вариант. Там нет проверки на квадратность матрицы И стоит комментарий в том случае если все столбцы должны быть удалены. Все остальное должно работаь. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Пума |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Вот мои коды, переделанные под твои, но они не работают. Я уже замучалась
![]()
|
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Добавлено через 4 минуты и 10 секунд Во-первых, str - Это имя функции и для переменных лучше не использовать. Во-вторых, массив нужно заполнить значениями. В-третьих, когда выводишь, то новый массив имеет уже меньшее количество столбцов, поэтому для вывода тоже надо было ставить "Col - R" Это сообщение отредактировал(а) Fortop - 26.5.2008, 23:42 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Пума |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Когда запускаю выводит сообщение об ошибке:Compile error:Expected array и выделяет в строчке MsgBox "Удаляем " + str® + " столбцов ", vbOKOnly функцию str, типа здесь где-то ошибка
Какими значениями? |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Извини, но отладкой придется заниматься самостоятельно. Проверял в Excel 2007 - VBA, работает без запинки. Какими-нибудь ![]() У тебя изначально массив пустой. В моем коде я добавил его инициализацию значениями от -7 до 1 Цикл после
-------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Пума |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Я переделала у себя кое-что , теперь ошибка связанная с str не появляется. Но проблемы другие:
1) прог-ма не всегда удаляет нужные столбцы; 2)после ввода матрицы выскакивает сообщение, к примеру : "Удаляем 1 столбец!". После нажатия кнопки Ok происходит выход из программы, а новая матрица (без удаленных столбцов) не печатается. |
|||
|
||||
Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Что значит не всегда? ![]() Если тебе не нужно учитывать диагональ (для определения удалять/неудалять), то измени вот эту строку
на
А вот этого быть не должно. Там просто негде выходить. Пробуй отлаживать по шагам. -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
Пума |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
По-моему у меня удаляются нужные столбцы не выше а ниже диагонали. Например: -9 -7 -6 0 -9 8 7 -7 6 -10 -6 1 -5 1 8 3 Выводится сообщение "удаляем 2 столбца". И еще: vbCrLf, + Str® +, Debug.Print "End" что это за функции? и для чего двоеточие в Lne = Lne & ":" & Format(q(I, J), "00;-0") |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
vbCrLf - константа. Означает перевод строки.
Str() - переводит число в строку Debug.Print "End" - просто печать в окно отладочной информации. Просто чтобы разделить между собой данные внутри одной строки. Добавлено через 1 минуту и 44 секунды
Согласно условию должны удалиться 2й (8ка на диагонали) и 4й (1ца над диагональю) столбец. Если не захватывать диагональ (я писал об этом выше), то только 4й и должно сообщать "удаляем 1 столбец" -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Пума |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Само задание: Из матрицы удалить столбцы, ПЕРВЫЕ положительные эл-ты которых расположены выше главной диагонали. Тогда по идее в приведенной матрице вообще ничего не должно удаляться, т. к. все первые элементы столбцов отрицательные, а последний столбец начинается с 0. |
|||
|
||||
Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
Читаем внимательно.
первые положительные элементы которых.... А не первые элементы которых положительны... Добавлено @ 21:15 Короче нам достаточно чтобы любой положительный элемент в столбце был выше диагонали.... Это сообщение отредактировал(а) Fortop - 28.5.2008, 21:16 -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
Пума |
|
|||
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 18.5.2008 Репутация: нет Всего: нет |
Слушай, а ты мозг!
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |