Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
#1

Динамический массив - C++

14.05.2011, 13:45. Просмотров 1271. Ответов 20
Метки нет (Все метки)

Здравствуйте, помогите пожалуйста решить следующую задачу с применением динамичкского массива:

Переставить столбцы вещественной квадратной матрицы так, чтобы элементы ее побочной диагонали образовали невозрастающую последовательность
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2011, 13:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив (C++):

Можно ли в классе создавать массив переменной длинны. Например динамический массив? - C++
Динамические массивы привлекают больше. :)

Написать функцию принимающую массив и возвращающую указатель на динамический массив - C++
Написать функцию принимающую массив и возвращающую указатель на динамический массив содержащий первые n нaибольших чисел. Как сделать...

динамический массив (Целое число разложить на массив простых множителей) - C++
Доброго времени суток всем. Целое число необходимо разложить на массив простых множителей. Столкнулся с проблемой, мне нужно, чтобы...

Заполнить динамический массив из файла и записать массив обратно в файл - C++
Подскажите пожалуйста функцию которая будет заполнять Динамический массив из файла и обратную которая этот массив запишет в файл=)

Массив: передать динамический массив в функцию и записать в каждый элемент строку из файла - C++
задача: передать динамический массив в функцию, и записать в каждый элемент строку из файла. количество строк известно вот что у меня...

Как преобразовать массив в динамический? Массив вычисляет сумму элементов каждой диагонали матрицы - C++
Ошибка : Вызвано исключение по адресу 0x00BB2F4F в Проект6.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFDFDFE05. #...

20
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.05.2011, 19:26 #2
На примере этой матрицы сможете показать что должно получится?
1 4
5 2
0
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
14.05.2011, 22:37  [ТС] #3
1 2 3 4 5 6
4 5 6 7 8 9
1 2 3 8 5 7
2 2 3 6 5 9
1 7 8 9 0 2
0 2 3 8 8 8
например задано,
побочная диагональ этой матрицы : 1 5 3 6 0 8
после обработки(перестановки элементов в строках) масив должен принять след-й вид :
6 1 2 3 4 5
4 5 6 7 8 9
1 2 5 3 8 7
2 2 3 5 6 9
1 7 8 9 2 0
0 3 8 8 8 2
побочная диагональ : 6 5 5 5 2 2 (невозрастающая последовательность)
вобщем по диагонали элементы массива должны идти по убывающей
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.05.2011, 22:52 #4
Цитата Сообщение от ahamoth Посмотреть сообщение
1 2 3 4 5 6
4 5 6 7 8 9
1 2 3 8 5 7
2 2 3 6 5 9
1 7 8 9 0 2
0 2 3 8 8 8
например задано,
побочная диагональ этой матрицы : 1 5 3 6 0 8
Это на самом деле главная диагональ.
http://ru.wikipedia.org/wiki/Диагональ раздел "Матрицы".

И еще раз возвращаюсь к вопросу во 2-м сообщении.
0
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
14.05.2011, 23:06  [ТС] #5
значит я ошибся , значит теже самые операции нужно проделать с побочной диаганалью которой является :
0 7 3 8 8 6

должно получиться - 6 6 5 5 2 2
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.05.2011, 23:09 #6
ahamoth,
На примере этой матрицы сможете показать что должно получится?
1 4
5 2
0
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
14.05.2011, 23:13  [ТС] #7
valeriikozlov ,
1 4
2 5
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.05.2011, 23:17 #8
Цитата Сообщение от ahamoth Посмотреть сообщение
1 4
2 5
Цитата Сообщение от ahamoth Посмотреть сообщение
Переставить столбцы вещественной квадратной матрицы
Я не вижу здесь перестановки столбцов матрицы. А вижу перестановку элементов в одной строке.
Если переставлять столбцы, то для матрицы, которую я привел решения не существует.
0
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
14.05.2011, 23:21  [ТС] #9
точно , извиняюсь за свою невнимательность . да для подобной матрицы решения не существует.
тогда если нет решения вывести сообщение об ошибке. еще раз извиняюсь за свою невнимательность
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.05.2011, 23:29 #10
Задача не такая и простая как кажется. Например если использовать следующий алгоритм:
- ищем в первой строке максимальный элемент. Столбец с этим элементом ставим самым правым.
- ищем во второй строке максимальный элемент (но меньше, максимального в предыдущей строке). Столбец с этим элементом ставим слева от самого правого.
и т.д.
Этот алгоритм будет иногда давать результат что решения нет (хотя на самом деле оно будет).
Пока вижу только полный перебор.
Сами что-нибудь уже сотворили?
0
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
14.05.2011, 23:37  [ТС] #11
Честно сказать с динамическими массивами не разобрался еще . и не знаю как сделать чтобы столбцы менять местами
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
14.05.2011, 23:44 #12
создание и заполнение значениями вещественной квадратной матрицы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int N, i, j;
cout<<"N= ";
cin>>N;
double **mas=new double*[N];
for(i=0; i<N; i++)
{
    mas[i]=new double[N];
    for(j=0; j<N; j++)
    {
        cout<<"["<<i"]["<<j"]= ";
        cin>>mas[i][j];
    }
}
Обмен значений столбцов с индексом w и индеком q:
C++
1
2
3
4
for(int i=0; i<N; i++)
{
    double tmp=mas[i][q]; mas[i][q]=mas[i][w]; mas[i][w]=tmp;
}
1
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
15.05.2011, 00:08  [ТС] #13
не совсем понятно как програмно реализовать чтобы производился поиск максимального элемента в строке и одновременно максимвльный элемент в i+1 строке ставился по диагонале а вместе с ним и переставлялся нужный столб
0
valeriikozlov
Эксперт С++
4673 / 2499 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
15.05.2011, 00:49 #14
Цитата Сообщение от ahamoth Посмотреть сообщение
не совсем понятно как програмно реализовать чтобы производился поиск максимального элемента в строке и одновременно максимвльный элемент в i+1 строке ставился по диагонале а вместе с ним и переставлялся нужный столб
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
for(int i=0; i<N; i++)// перебираем строки
{
    int tmp=-1;
    if(i==0)
        tmp=0;
    for(j=0; j<N; j++)
    {
        if(mas[i][j]>mas[i][tmp])
        {
            if(i==0)
                tmp=j;
            else
                if(mas[i][j]<=mas[i-1][n-1-i])
                    tmp=j;
        }
    }
    //теперь в tmp номер столбца с максимальным элементом
    // меняем столбцы
    double temp;
    for(j=0; j<N; j++)
    {
        temp=mas[j][N-1-i];
        mas[j][N-1-i]=mas[j][tmp];
        mas[j][tmp]=temp;
    }
}
1
ahamoth
0 / 0 / 0
Регистрация: 26.11.2010
Сообщений: 111
15.05.2011, 17:01  [ТС] #15
valeriikozlov , программа при компиляции ошибку выдает
0
15.05.2011, 17:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2011, 17:01
Привет! Вот еще темы с ответами:

Создать динамический массив (Если чётных чисел больше, то массив должен быть укорочен на 2 элемента) - C++
Создать динамический массив из 8 случайных целых чисел из отрезка и вывести его на экран . Если в массиве чётных чисел оказалось...

Массив и память. Как создать динамический массив? - C++
не могу исправить ошибки. И нужен динамический массив я что-то попробовала для его создания но ничего не вышло #include &quot;stdafx.h&quot; ...

Двумерный массив (поменять статический массив на динамический) - C++
Нужно поменять статический массив на динамический с выделением памяти #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;cstdlib&gt; ...

Переделать динамический массив на статический массив - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main() { int dim, counter_1 = 1, counter_2 =...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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