Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DieZZzz
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 29
#1

Упорядочить блоки по величине их диагоналей (по убыванию значений их диагоналей). - C++

31.10.2011, 23:41. Просмотров 616. Ответов 4
Метки нет (Все метки)

Итак, есть следующая задача:

В заданной двумерной матрице выделить 3 блока по 2 строки и 2 столбца (блоки расположены на главной диагонали матрицы). Упорядочить блоки по величине их диагоналей (по убыванию значений их диагоналей).

Сколько раз я не перечитывал условие, так и не смог его понять.
Буду благодарен, если кто-нибудь объяснит мне, что от меня хотят, ну и заодно, при случае, помогут с кодом.
Указатели, выделение памяти еще не проходили
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2011, 23:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Упорядочить блоки по величине их диагоналей (по убыванию значений их диагоналей). (C++):

произведение средних арифм. значений "диагоналей " в матрице - C++
Доброго времени суток! Не могли бы вы мне подсказать реализацию на Си, есть задача: по заданной треугольной матрице А сформировать матрицу...

Упорядочить элементы столбцов матрицы по убыванию их значений методом обмена - C++
Сортировать элементы столбцов матрицы по убыванию их значений методом обмена fi (aij) -произведение элементов в каждой...

Упорядочить столбцы матрицы по убыванию значений наибольших элементов столбцов - C++
Дана действ. матрица размера m*n, упорядочить столбцы матрицы по убыванию значений наибольших элементов столбцов

сумма диагоналей??? - C++
Вот в чем вопрос! Вроде все правильно, но сумму неправильно вычисляет, а именно нужно: Найти максимальную, из всех сумм диагоналей,...

Сумма диагоналей матрицы - C++
как найти сумму элементов каждой диагонали матрицы, параллельной побочной?

Сортировка диагоналей в массиве - C++
Прога крашиться, и не могу понять почему. Надо отсортировать гл. диагональ в массиве и параллельные ей по-отдельности. #include...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Bers
Заблокирован
31.10.2011, 23:52 #2
Я понял задачу так. Есть матрица:

330000
330000
002200
002200
000011
000011

Цыферками 3,2,1 выделил блоки на главной диагонали размером с 2 строки и 2 столбца.

Теперь извлекаем эти блоки:

33 22 11
33 22 11

Получили три маленькие матрицы, которые так же имеют свои главные диагонали:

30 20 10
03 02 01

Извлекаем эти диагонали:

33 22 11

Теперь расставляем предлежащие им мини-матрицы в порядке возрастания

11 22 33

Соответственно наши мини-матрицы переставляются местами:

11 22 33
11 22 33

Соответственно на большой матрице они переставляются местами:


110000
110000
002200
002200
000033
000033

зы: задание и правду сформулировано не удачно. Но головоломка забавная)
DieZZzz
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 29
01.11.2011, 00:02  [ТС] #3
Да уж, повезло. А что делать если таких блоков в матрице будет больше 3х?
Bers
Заблокирован
01.11.2011, 00:37 #4
Цитата Сообщение от DieZZzz Посмотреть сообщение
В заданной двумерной матрице выделить 3 блока
По задаче не важно сколько их может быть. Важно что выделить ты должен только 3.
Первые 3, последние 3, случайные 3. Любые 3

Главное, что исходя из задачи, их никак не может быть меньше трех. То есть, матрица по количеству строк и столбцов не может быть меньше, чем 6 на 6.

А вообще, если б я такое задание получил, я б запросил разъяснения.
Я б сказал: я не понял, что от меня требуется? Переформулируйте задачу. Я её не понимаю.
Потому что есть риск решить совсем не ту задачу, которую нужно.

Но если нет возможности получить разъяснения - нужно решать исходя из того, что есть, и надеяться, что это прокатит.

Поэтому, если у тебя нет возможности уточнить задание, то исходи из того, что размер твоей матрицы 6 на 6. То есть количество блоков в ней - строго три штуки.

И делать нужно так, что бы в случае чего, логику программы легко можно было переделать с минимальными изменениями кода.
DieZZzz
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 29
01.11.2011, 00:56  [ТС] #5
У меня еще запас 2 недели. Думаю вот как раз разберусь. Буду пошагово выполнять и компилировать, чтобы не ошибиться, а то уж слишком навороченный код получается.
В любом случае, спасибо за помощь. Первый шаг уже сделан
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 00:56
Привет! Вот еще темы с ответами:

Сумма паралельных диагоналей. - C++
Задача: Найти сумму всех диагоналей параллельных главной матрицы n*n. Вывести массив из сумм на экран, найти максимум нового массива. ...

Перестановка диагоналей в матрице - C++
Нужно переставить диагонали в матрице, сори если было не нашел: Вот тут написал уже кое-что: #include <iostream> #include <cstdlib> ...

.Упорядочить строки матрицы по убыванию значений произведений наименьшего и наибольшего элементов каждой строки - C++
Дана матрица чисел M*N.Упорядочить строки матрицы по убыванию значений произведений наименьшего и наибольшего элементов каждой строки.

Подсчет сумм диагоналей матрицы - C++
Доброе время суток. Сижу очень долго над задачей. Нашел решение. Но не могу понять простой код. Можете на пальцах объяснить что делает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
01.11.2011, 00:56
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru