Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сложная задача с матрицей, алгоритмические манипуляции с матрицей 
:(
    Опции темы
Determinant
  Дата 1.10.2012, 17:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 6.11.2011

Репутация: нет
Всего: нет



Всем доброе время суток! По ходу написание программы пришлось столкнуться с обработкой матрицы, задача состоит в следующем: допустим дана матрица А следующего вида:
1 1 2 2 0 0
3 3 4 4 5 5
6 6 0 0 7 7
8 8 9 9 10 10
11 11 12 12 0 0
0 0 0 0 13 13
и пользователь задает некое число допустим это число В=3 (В это число которое вводит пользователь и оно значит максимально возможное количество значимых элементов в одной строке, то есть если В=3, то строка: 1 2 3 0 0, не может стать после оптимизации например вот такой строкой: 1 2 3 4 4, ибо значимых элементов в таком случае будет уже 4)...
данная матрица включает в себя понятие значимого элемента, такими элементами являются все элементы не равные нулю взятые по одному разу, например для первой строки эти элементы: 1,2; для второй: 3,4,5. требуется провести оптимизацию этой матрицы по следующему принципу, число В определяет количество возможных значимых элементов матрицы в любой из строк, требуется, если это возможно перенести значимый элемент на строку выше, если там над этими элементами стоят нулевые, то есть, из исходной матрицы после такой оптимизации мы должны получить матрицу С вида:
1 1 2 2 5 5
3 3 4 4 7 7
6 6 9 9 10 10
8 8 12 12 13 13
11 11 0 0 0 0
то есть строка в которой все элементы нулевые просто удаляется, прощу помощи ибо очень запутался в самом алгоритме реализации такой операции, заранее спасибо!

Это сообщение отредактировал(а) Determinant - 2.10.2012, 23:38
PM MAIL   Вверх
FTTA
Дата 27.10.2012, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 25.10.2011

Репутация: нет
Всего: нет



Код

int C[6][6];
/*
Здесь ты ее как-то заполняешь
*/
//далше сортируеш

int n,m,max;
max=6;
for(n=0;n<max;n++)
  for(m=0;m<max;m++)
    {
    if((C[n][m]==0)&&((n+1)<max))
       {
       C[n][m]=C[n+1][m];
       C[n+1][m]=0;
       }
    }      


Алгоритм несколько несовершенен, но думаю это даст тебе общее понятие об одном из возможных вариантов сортировки

Это сообщение отредактировал(а) FTTA - 27.10.2012, 01:08
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0460 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.