![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: нет Всего: 23 |
Задана таблица размерности N*N. С помощью процедуры выполнить перестановку K-того столбца таблицы на место L-ого столбца, а также перестановку K-й и L-й строк в соответсвии с запросом на обработку таблицы.
+ Ещё меня интересует как развернуть полученную матрицу на 90 градусов. По часовой и против
Вот что у меня получилось, но НИКАК не могу перевернуть таблицу for i:=1 to N for j:=1 to N swap(table[i,j],table[j,i]); - матрица остается такой какая была -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
Ripper,
как-то писал на С, думаю, разберешься На всякий случай пояснения Функция поворачивает матрицу на углы, кратные 90 входные параметры: матрица, размер стороны (матрица квадратная, угол поворота) в функции используем вспомогательную матрицу buf:
P.S. Поворачивать на месте очень неудобно, сам мучался и пришел к выводу, что лучше использовать дополнительную матрицу Это сообщение отредактировал(а) Kuvaldis - 22.10.2006, 20:05 -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| Palladin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 932 Регистрация: 15.5.2007 Где: Беларусь г.Гомель Репутация: нет Всего: 17 |
потомучто надо
так попробуй -------------------- Глуп тот кто полагается на истину авторитета, а не на авторитет истины [color=red]KAV&KIS==Evil[/color] |
|||
|
||||
| XupyprMV |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 16.10.2006 Где: Сыктывкар, Россия Репутация: нет Всего: нет |
RooR, сорри, но и тут ошибка не в этом...
Что здесь получается: например i=2 j=3 => элементы [2,3] и [3,2] поменяются местами. НО Когда i=3 j=2 элементы [3,2] и [2,3] поменяются местами (т. е. произойдёт обратная перестановка) Из чего следует что результатом работы будет первоначальная матрица Но это ещё не всё... даже если менять один раз получится не разворот на 90 градусов, а транспонирование (т. е. строки поменяются местами со столбцами). Я бы сделал так: 1. Завёл ещё один элемент arr var table2:arr; 2. Тогда всё получается просто:
В table2 будет ничто иное как table повёрнутый на 90 градусов по часовой стрелке. 3. Тоже самое для поворота против часовой стрелки:
Это сообщение отредактировал(а) XupyprMV - 23.10.2006, 13:32 |
||||
|
|||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
XupyprMV,
не хочу тебя расстаивать, но я это уже давно предложил Читай, пожалуйста, посты внимательнее -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| XupyprMV |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 50 Регистрация: 16.10.2006 Где: Сыктывкар, Россия Репутация: нет Всего: нет |
Kuvaldis, ну человек может C не знает... пишу на "родном" ему языке... Ты бы ещё на ассмемблере или на BrainFuck'е ему пример написал
|
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
XupyprMV, а ведь пример от Kuvaldis один в один переводится на "родной" язык, так что не надо про BrainFuck ...
Ripper, можно и без доп. массива. Здесь я делал: Модификация двумерных массивов. Поворот матрицы на 90 градусов |
|||
|
||||
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: нет Всего: 23 |
Спасибо всем. Щас все посмотрю, к сожалению я не знаю Си, например int** что такое (в памяти плавает указатель на указатель на указатель... но это ничего не дает. или puts() getch())
Но тут достаточно пояснений -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |