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

Транспонированая матрица - C++

Восстановить пароль Регистрация
 
tyry
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 26
27.10.2012, 23:14     Транспонированая матрица #1
Нужно зделать транспоновану матрицу (консольное приложение)
Массив должен быть динамический двухмерный
Заданние :нужно чтоб менялись столбцы на строки и наоборот.
Хорошо если бы через какуюта пользовательскуй функцию)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.10.2012, 23:14     Транспонированая матрица
Посмотрите здесь:

матрица C++
C++ матрица
C++ Матрица
матрица с++ C++
С++ матрица C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
27.10.2012, 23:18     Транспонированая матрица #2
поиском не умеете пользоваться? на этом форуме за последний месяц 4й раз уже такой вопрос задают
tyry
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 26
27.10.2012, 23:20  [ТС]     Транспонированая матрица #3
Нет не умею наверно не нашел ничего
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
27.10.2012, 23:59     Транспонированая матрица #4
Цитата Сообщение от tyry Посмотреть сообщение
Нет не умею наверно не нашел ничего
это чтобы вы не ошибались в предь и тому подобное =)
Миниатюры
Транспонированая матрица   Транспонированая матрица  
tyry
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 26
28.10.2012, 00:01  [ТС]     Транспонированая матрица #5
если бы там было то что нужно было б я сюда не попал и не регалься тут чтоб задание написать)
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
28.10.2012, 00:05     Транспонированая матрица #6
Цитата Сообщение от tyry Посмотреть сообщение
Заданние :нужно чтоб менялись столбцы на строки и наоборот.
Цитата Сообщение от tyry Посмотреть сообщение
Нужно зделать транспоновану матрицу (консольное приложение)
помоему это суть одно и тоже раз

Цитата Сообщение от tyry Посмотреть сообщение
Хорошо если бы через какуюта пользовательскуй функцию)
переместить из мэйнов отдельную функцию дело 3х секунд два

Цитата Сообщение от tyry Посмотреть сообщение
если бы там было то что нужно было б я сюда не попал и не регалься тут чтоб задание написать)
врятли вам если и напишут тут то напишут чтото другое, потому что там все нормально сделано я не понимаю что вам не нравится из того что представлено? если вы не знаете как делать динамисческий массив, вы так и спросите и прикрутите это к тем программам, если другие вопросы так тоже задавайте. три
tyry
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 26
28.10.2012, 00:26  [ТС]     Транспонированая матрица #7
хорошо хотел бы я ненмого подучиться с динамическими массивами)
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
28.10.2012, 09:18     Транспонированая матрица #8
Цитата Сообщение от tyry Посмотреть сообщение
хорошо хотел бы я ненмого подучиться с динамическими массивами)
на с++выделяется память таким образом
инициализируете указатель
C++
1
 int *p //имя конечно может быть любое и ип данных тоже, вплоть до ваших собственных клаcсов/структур и тд и тп
далее необходимо выделить под этот указатель память
C++
1
p = new int [n]//выделить память можно при инициализации n должно быть целым числом, если выделяете одну ячейку [n] писать не будет. оператор new автоматически выделяет память под ваш тип и количество этой памяти указывается в скобках
теперь у нас грубо говоря есть массив p[n]; c ним можно работать как со статическим
чтобы выделять память под 2хмерный или nмерный массив нужно сначала знать скольки мерный массив у вас будет. Соответственно поставить перед указателем нужное количество звездочек.
например у нас массив будет 2х мерный.
C++
1
2
int **p =new int*[n];//** перед указателем означает что мы инициализируем 2мерный массив и сразу выделяем ему память в n ячеек. грубо говоря у нас массив р будет состоять из n массивов.
далее необходимо выделять память каждому массиву массивов это делается как в предыдущем примере за исключением что вместо p пишется p[i]
C++
1
p[i] = new int [n]//где i соответственно iй массив массивов. //Также можно не выделять память а присоединить уже существующую.
например
в какой то отдельной функции или даже в мэйне вы например указателю *a выделили память 5 ячеек
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int *bla_bla_bla(){
//bla bla bla
int *a=new int [n1];
//
return a;
}
 
void main{
//bla bla bla
int **p =new int*[n]
p[i]=bla_bla_bla();//функция возвращает указатель на какуюто память, соответственно указатель одного из массива массивов указывает на эту память
//bla bla bla
}
после всех действий память желательно подтереть это делается оператором delete[] или delete
если у вас переменная
C++
1
delete a;
если у вас массив то
C++
1
delete[] a;
если у вас массив массивов, то необходимо удалять снизу вверх, возьмем для примера 3х менрый массив
C++
1
2
3
4
5
6
7
for(int i=0;i<n;i++)
    for(int j=0;j<m;j++)
        delete[] mas[i][j];//delete[] соответственно удалит все массивы по ячейкам j и у нас останется, так сказать матрица ячеек nxm пустых, которым опять можно выделить память
for(int i=0;i<n;i++)
    delete[] mas[i];//далее удаляем все iе массивы и у нас остается только массив ячеек куда мы можем выделить еще память чтобы создать 2мерный масив ячеек куда мы в свою очередь можем выделить память под сами данные
delete[] mas;//полностью очистили память
//З.Ы. при выделение память 2менрному и nмерным масивам не обязательно создавать квадратные матрицы или векторы. Оператору delete[] глубоко пофигу на размер удаляемой памяти, будь то удаляемая область постоянная или меняющаяся(у него помоему есть какойто указатель на длину и он удалит ровно столько сколько надо)
Добавлено через 1 минуту
Есть еще так называемая алгебра указателей, которая позволяет спокойно перемещаться по массиву без применения дополнительных циклов или переменных, но это лучше почитайте отдельно
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 14:25     Транспонированая матрица
Еще ссылки по теме:

матрица C++
C++ матрица
Матрица М * М C++

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

Или воспользуйтесь поиском по форуму:
tyry
1 / 1 / 0
Регистрация: 27.10.2012
Сообщений: 26
28.10.2012, 14:25  [ТС]     Транспонированая матрица #9
спасибо очень позновательно)
Yandex
Объявления
28.10.2012, 14:25     Транспонированая матрица
Ответ Создать тему
Опции темы

Текущее время: 21:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru