![]() |
Модераторы: Poseidon |
![]() ![]() ![]() |
|
SERJ2006 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 22.1.2012 Репутация: нет Всего: нет |
требуется написать программу, которая будет сравнивать 2 столбца двумерного массива, и векторно меньший копировать другой двумерный массив. идея такая: создаем два двумерных массива. инициализируем первый. сравниваем первый элемент столбца и второй в первой строчке, если первый больше присваиваем некоторой переменной k=0, переходим на следующую строчку и также проверяем первый и второй элемент, если также больше, то двигаемся к следующей строчке, и так до последней строки. если 1 столбец полностью больше, то второй столбец копирум в новый массив.
если же при сравнивании в одной строке 1 элементы столбца больше 2, но во второй строчке наоборот, то переходить к следующему столбцу. проверку производить до последнего столбца. вот программа, но оно тупо копирует массив A в B. а должно в моем приеме оставаться только 1 0 1 1 1 0
помогите пожалуйста ее доделать! |
|||
|
||||
jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 1 Всего: 75 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
Mirkes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 586 Регистрация: 18.8.2011 Где: Красноярск Репутация: 4 Всего: 17 |
А почему не сравниваете элементы первой строки? И почему не сравниваете элементы последней строки? Сравнение работает только по второй строке. А вот за такие вещи в циклах for бьют канделябрами! Вобщем текст - полный бред. Что вы пытались сэкономить? Ведь в описании алгоритма вы по человечески описали, что нужно сделать, а в тексте программы? Что должно происходить при равенстве элементов? Что будет если первый столбец меньше второго? Почему вы предлагаете сравнивать столбцы, а сравниваете строки? Если прочитать задачу следующим образом: Сравнить попарно все столбцы матрицы A. Если все элементы столбца i меньше всех элементов одного из других столбцов, то скопировать столбец i во вторую матрицу. Для такой задачи реализация может быть следующей:
Код не проверял. писал по месту -------------------- Mirkes |
|||
|
||||
SERJ2006 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 22.1.2012 Репутация: нет Всего: нет |
извините, со строчками ошибся. если элементы равны продолжать сравнение элементов столбцов в другой строчке. если первый столбец меньше второго, то первый уже сравнивать с третим, если нельзя сравнивать(к примеру в первом столбце первый элемент строки больше второго элемента второго столбца, тойже строчки, а элемент 1 столбца 2 строчки меньше элемента 2 столбца второй строки, то заносить два столбца в новый массив.
Добавлено через 1 минуту и 54 секунды вот алгаритм: 0) Считаем исходную таблицу покрытий текущей, а множество ядерных строк – пустым. 1) Находим ядерные строки, запоминаем множество ядерных строк. Текущую таблицу покрытий сокращаем, вычеркивая ядерные строки и все столбцы, покрытые ими. 2) Вычеркиваем антиядерные строки. 3) Вычеркиваем поглощающие столбцы. 4) Вычеркиваем поглощаемые строки. 5) Если в результате выполнения пунктов с 1 по 4 текущая таблица покрытий изменилась, снова выполняем пункт 1, иначе преобразование заканчиваем. Поэтому алгоритм работы следующий: 1) ввод числа строк и столбцов таблицы покрытия; 2) ввод таблицы покрытия ; 3) поиск ядерных строк. Если их нет, то п.4. Иначе, запоминаем эти ядерные строки. Ищем столбцы, покрытые ядерными строками. Вычеркиваем все ядерные строки и столбцы, покрытые ими. 4) вычеркивание антиядерных строк. Переход в п.5. 6) вычеркивание поглощающих столбцов. 7) вычеркивание поглощаемых строк. 8) если в результате преобразований таблица покрытий изменилась, выполняем пункт 3. Иначе - вывод множества покрытия, конец алгоритма. Добавлено через 4 минуты и 27 секунд ядерная - это когда в таблице строчка или столбец, содержащий одну еденицу, если ядерная строка, то мы ее вычеркиваем, и все поглащаемые ею строки, и запоминаем. если столбец, то поглощаем(если есть чем). Добавлено через 6 минут и 15 секунд требуется написать программу, которая будет сокращать марицу(через двумерный массив), т.е. результаты записывать в другой массив. 1) нужно через цикл for сделать, чтобы сокращалось по принципу: 1 0 1 0 0 1 1 1 0 0 0 1 сокращение столбцов: сравнивать 2 столбца, и меньший столбец(разность должна быть в 1 еденице) заносится в новую матрицу, большие не заносятся. а не сравниваемые, заносятся результат после сокращения таков: 2 столбец поглощает четвертый, первый поглощает третий. 1 0 0 1 0 0 2)метод, который выполняет сокращение по строкам( из оставшихся элементов) только сдесь большая заносится в новый массив, а меньшая нет. например: 1 0 0 0 1 1 0 1 0 2 строка поглощает 3 результат: 1 0 0 0 1 1 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Центр помощи" | |
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |