![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
необходимо ввести квадратную матрицу, и в функции ее транспонировать, я написал код, но есть мысль что ошибка в самом транспонировании, так как выводится матрица, которую я ввел, как правильно реализовать, вот код, кому инетересно - помогите плиз!
-------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
вроде я додумал как сделать, при нескольких прогонов, вроде ошибки не видно, но все равно взгляните, может что нодо будет подправить?
-------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
возник другой вопрос как освободить память из под динамического массива, для массива p[i] удаляется, а как освободить для массива p_vspm
Это сообщение отредактировал(а) TaNK - 12.12.2006, 14:26 -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Транспонирование матрицы можно сделать без использования промежуточного массива (если исходная матрица не нужна)
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
в такой реализации - только в самой функции main().
Она же должна что-то увидеть, прежде чем транспонированная матрица исчезнет. Но вообще это плохая практика. Динамические объекты лучше удалять в том же блоке, где они и создавались, иначе может неразбериха получиться. Пишешь на плюсах? Оберни в контейнер. Пропиши конструктор и деструктор. Добавлено @ 14:40 А у него не промежуточный массив. Посмотри на реализацию. Он возвращает новый объект. |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Я неправильно выразился. Просто хотел сказать, что если задача не требует сохранения исходной матрицы транспонировать можно без использования выделения памяти под вторую матрицу (соответственно освобождать вторую матрицу не придется). А вообще, конечно правильно - надо стараться выделять и освобождать в одном блоке, хотя не всегда это получается. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Да, согласен. Но процедура транспонирования будет более сложной. TaNK, к тебе общий вопрос: тебе нужно сохранять старую матрицу? |
|||
|
||||
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
нет не нужно, и тогда вопрос как реализовать без 2 матрицы, и как освободить память когда исходная матрица должна быть оставлена (ради интереса) и когда можно обойтись одной матрицой -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Так же, как ты и делал, только в конце main(). В процедуре - никак, тебе же еще обращаться к этой матрице надо будет. Как реализовать без 2-ой матрицы - к Anikmar. В этом случае освобождать дополнительную матрицу не потребуется, так как она и создаваться не будет( может, правда, будет что-то еще... ) |
|||
|
||||
| TaNK |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
-------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
||||||
|
|||||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
|
|||
|
||||
| Anikmar |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 9 Всего: 59 |
Уф, чуть что - так косой Это ж вспомнить надо! Просто помню - на лабораторке делали. Если я правильно помню - транспонированная, это та, у каторой строки стали столбцами - т.е. отражение относительно диагонали... Тогда, наверное так:
Не бейте меня - не проверял! |
||||
|
|||||
| TaNK |
|
||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
бить не будем, но проверим кодик твой! Добавлено @ 16:18
ругаетя что undefined simbol p_vspm, может как нить по другому вызывать надо? -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
||||||||||
|
|||||||||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Так а ты его объявил с таким именем в main()? или по другому объявил? Если ты объявляешь как раньше - ma, то и пиши ma место p_vspm. |
|||
|
||||
| TaNK |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 669 Регистрация: 29.10.2006 Где: Краснодар Репутация: нет Всего: 1 |
respect - помогло, спасибо большое! -------------------- Oracle 11.2.0.3.0 FireBird 1.0-2.5 |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |