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

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

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

Упорядочить элементы главной диагонали перестановкой столбцов - C++

08.01.2014, 16:48. Просмотров 1019. Ответов 10
Метки нет (Все метки)

Упорядочить элементы главной диагонали квадратичной матрицы(n x n) перестановкой столбцов n=5.
Элементы матрицы случайные действительные числа в диапазоне от -10 до 10
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 16:48     Упорядочить элементы главной диагонали перестановкой столбцов
Посмотрите здесь:

C++ Дан целочисленный массив a(n,m). Упорядочить по неубыванию элементы на главной диагонали и диагоналях, параллельных ей. Перестановка элементов допуска
Упорядочить элементы на главной диагонали по возрастанию C++
Упорядочить строки матрицы в порядке возрастания элементов главной диагонали C++
В прямоугольной целочисленной матрицы упорядочить элементы размещенных на главной диагонали по убыванию C++
Элементы, расположеные на главной диагонали, в первых 3 строках выше диагонали и в последних 2 строках ниже диагонали переместить в одномерный массив C++
Двумерный массив (перестановкой строк добиться расположения нулевых элементов по главной диагонали) C++
Сохранить все нулевые элементы, размещенные на главной диагонали и в верхней половине области выше диагонали C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
palva
2511 / 1733 / 229
Регистрация: 08.06.2007
Сообщений: 6,806
Записей в блоге: 4
08.01.2014, 18:06     Упорядочить элементы главной диагонали перестановкой столбцов #2
Разве это возможно? Возьмем матрицу
3 4
1 2
перестановкой столбцов вы не сделаете так, чтобы элементы главной диагонали шли по возрастанию.
Spellsinger
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
08.01.2014, 20:37  [ТС]     Упорядочить элементы главной диагонали перестановкой столбцов #3
Добавлено через 26 минут
Цитата Сообщение от palva Посмотреть сообщение
Разве это возможно? Возьмем матрицу
3 4
1 2
перестановкой столбцов вы не сделаете так, чтобы элементы главной диагонали шли по возрастанию.
Для этого нужно найти максимальный элемент первой строки матрицы столбец в котором он находиться меняем местами с 1 столбцом, потом находим максимальный элемент 2 рядка который больше либо равен элементу с 1 рядка но уже без учета элемента с 1 столбца потом меняем местами 2 столбец со столбцом с максимальным елементом 2 рядка и тд

Неделю колдую над этой программой вечно какие то ошибки!
Если знаешь напиши эту функцию для меня она очень сложна опыта маловато!
Ev_Hyper
Заблокирован
08.01.2014, 20:46     Упорядочить элементы главной диагонали перестановкой столбцов #4
Spellsinger, у вас задание не конкретно. Вам привели пример когда непонято что делать дальше с матрицей.
А что должна сделать программа в таком случае:
4 6 7 8 1
9 9 8 9 8
7 7 7 7 4
1 3 4 5 3
6 8 9 7 7
palva
2511 / 1733 / 229
Регистрация: 08.06.2007
Сообщений: 6,806
Записей в блоге: 4
08.01.2014, 20:46     Упорядочить элементы главной диагонали перестановкой столбцов #5
Я о том и толкую, что это невозможно сделать, разве только если матрица специально подобрана.
Цитата Сообщение от Spellsinger Посмотреть сообщение
потом находим максимальный элемент 2 рядка который больше либо равен элементу с 1 рядка но уже без учета элемента с 1 столбца
Может случиться, что такого элемента мы не найдем. Все элементы 2 рядка будут меньше чем элемент первого рядка. И что тогда должен делать алгоритм? Остановиться и сказать, что задача неразрешима? Но это тоже будет безосновательно.
Spellsinger
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
08.01.2014, 21:24  [ТС]     Упорядочить элементы главной диагонали перестановкой столбцов #6
Цитата Сообщение от palva Посмотреть сообщение
Я о том и толкую, что это невозможно сделать, разве только если матрица специально подобрана.
Может случиться, что такого элемента мы не найдем. Все элементы 2 рядка будут меньше чем элемент первого рядка. И что тогда должен делать алгоритм? Остановиться и сказать, что задача неразрешима? Но это тоже будет безосновательно.
Там ошибочка меньше либо равно.
А задание с методички и дословно оно выглядит так:"Заданная действи́тельная квадратная матрица размерности n х n. Переставить ее столбцы таким образом, чтобы упорядочить значения элементов главной диагонали. "

Добавлено через 2 минуты
Цитата Сообщение от palva Посмотреть сообщение
Я о том и толкую, что это невозможно сделать, разве только если матрица специально подобрана.
Может случиться, что такого элемента мы не найдем. Все элементы 2 рядка будут меньше чем элемент первого рядка. И что тогда должен делать алгоритм? Остановиться и сказать, что задача неразрешима? Но это тоже будет безосновательно.
Реально может там опечатка ну тогда что примерно там требовалось?
palva
2511 / 1733 / 229
Регистрация: 08.06.2007
Сообщений: 6,806
Записей в блоге: 4
08.01.2014, 21:30     Упорядочить элементы главной диагонали перестановкой столбцов #7
Цитата Сообщение от Spellsinger Посмотреть сообщение
ну тогда что примерно там требовалось?
Цитата Сообщение от Spellsinger Посмотреть сообщение
Переставить ее столбцы таким образом
Моя версия: Переставить ее столбцы и строки таким образом...
Если переcтавить i-й и k-й столбец, а затем i-ю и k-ю строку, то это будет означать перестановку элементов главной диагонали. Всякие другие перестановки будут приводить к тому, что некоторые элементы уйдут с главной диагонали, а некоторые появятся. То есть формально это не будет "упорядочением значения элементов главной диагонали".
Spellsinger
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
08.01.2014, 21:38  [ТС]     Упорядочить элементы главной диагонали перестановкой столбцов #8
Цитата Сообщение от palva Посмотреть сообщение
Моя версия: Переставить ее столбцы и строки таким образом...
Если переcтавить i-й и k-й столбец, а затем i-ю и k-ю строку, то это будет означать перестановку элементов главной диагонали. Всякие другие перестановки будут приводить к тому, что некоторые элементы уйдут с главной диагонали, а некоторые появятся. То есть формально это не будет "упорядочением значения элементов главной диагонали".
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <ctime>
 
const int N=5;
 
void swap(int& n1, int& n2);
 
int main()
{
    int** X = new int*[N];
    for (int i = 0; i < N; i++)
    {
        X[i] = new int[N];
        for (int j = 0; j < N; j++)
        {
            X[i][j] = rand() % 10;
            printf("%d ",X[i][j]);
        }
    
        printf("\n");
    }
 
    printf("\n");
 
    for (int i = 0; i < N; i++)
    {
        for (int k = i+1; k < N; k++)
            if (X[k][k] < X[i][i])
            {
                swap(X[i][k],X[k][k]);
                swap(X[k][i],X[i][i]);
                for (int m = 0; m < N; m++)
                    swap(X[m][i],X[m][k]);
            }
    }
 
    for (int z1 = 0; z1 < N; z1++)
    {
        for (int z2 = 0; z2 < N; z2++)
            printf("%d ",X[z1][z2]);
        printf("\n");
    }
 
  
 system("pause");
    return 0;
}
 
void swap(int& n1, int& n2)
 { int _tn = n1; n1 = n2; n2 = _tn; }
Типа такая программа?
palva
2511 / 1733 / 229
Регистрация: 08.06.2007
Сообщений: 6,806
Записей в блоге: 4
08.01.2014, 21:40     Упорядочить элементы главной диагонали перестановкой столбцов #9
Spellsinger, Только переставляются не отдельные элементы а полностью столбцы или строки.
Spellsinger
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 9
08.01.2014, 21:51  [ТС]     Упорядочить элементы главной диагонали перестановкой столбцов #10
Цитата Сообщение от palva Посмотреть сообщение
Spellsinger, Только переставляются не отдельные элементы а полностью столбцы или строки.
Да но если переставляются столбцы и строки тогда можно подобрать практически любую последовательность элементов!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2014, 22:16     Упорядочить элементы главной диагонали перестановкой столбцов
Еще ссылки по теме:

Заменить элементы главной диагонали матрицы суммами элементов столбцов C++
Обменять элементы массива на главной диагонали с элементами на побочной диагонали C++
Перестановкой столбцов добиться расположения максимальных элементов на главной диагонали C++
C++ Сохранить все нулевые элементы, размещенные ниже главной диагонали на нечетных строках а выше главной в четных
C++ С помощью сортировки пузырьком упорядочить элементы матрицы, находящиеся ниже главной диагонали

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

Или воспользуйтесь поиском по форуму:
palva
2511 / 1733 / 229
Регистрация: 08.06.2007
Сообщений: 6,806
Записей в блоге: 4
08.01.2014, 22:16     Упорядочить элементы главной диагонали перестановкой столбцов #11
Требуется, чтобы на диагонали были одни и те же элементы.

Добавлено через 15 минут
Цитата Сообщение от palva Посмотреть сообщение
Требуется, чтобы на диагонали были одни и те же элементы.
Это я к тому, что задача, как я понял слово упорядочить, этого требует. Один из способов это обеспечить -- это синхронно переставлять строки и столбцы с номерами i и k.
Yandex
Объявления
08.01.2014, 22:16     Упорядочить элементы главной диагонали перестановкой столбцов
Ответ Создать тему
Опции темы

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