![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 13
|
![]()
Здравствуйте. Помогите, пожалуйста, дорешать задачу. Нужно осуществить (в консоли) циклический сдвиг элементов прямоугольной матрицы на n элементов вправо или вниз (в зависимости от введенного режима). n может быть больше количества элементов в строке или столбце. Часть я написала. Получилось, что введенный массив сдвигается сразу весь на заданный сдвиг z. А мне надо, чтобы столбцы (строки) менялись местами. Там должно быть ещё условие, типа если сдвиг больше числа элементов, то... А что дальше, я никак не придумаю. Пожалуйста, помогите! (Это на Visual C++ 6.0).
![]() Код:
Последний раз редактировалось merax; 22.04.2008 в 19:55. |
![]() |
![]() |
![]() |
#2 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Так а в чём вопрос-то? Если в этом:
Цитата:
|
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 13
|
![]()
Ой, извините за код, я забыла про тэг
![]() Мне как раз и надо двигать. Типа этого: 123 456 789 Если сдвинуть на 1 вправо, то будет так: 312 645 978 А как там делить? Если, например, сдвиг=2, а кол-во столбцов=3, то остаток от 2/3 сравнивать с j? И чего потом? Я вот в этом не разберусь. У меня весь массив уезжает, а он должен перестраиваться. Последний раз редактировалось Ладушка; 23.04.2008 в 09:21. |
![]() |
![]() |
![]() |
#4 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
Inew = (Iold + (SHIFT % COUNT)) % COUNT Inew, Iold - новый и старый индексы, SHIFT - величина сдвига (с учётом знака, вправо - плюс, влево - минус), COUNT - размерность массива в направлении сдвига. Проверьте на всякий случай. |
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 13
|
![]()
спасибо, что откликнулись, но всё-равно у меня ниче не получается.
Здесь что-то не так... ![]() Код:
|
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]()
Этот тот случай, когда проще показать:
Код:
![]() |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 13
|
![]()
Ого! Спасибо большое. Буду разбираться и в Вашем коде, но я тут доделала свои наработки. Весь вечер сижу
![]() Код:
Последний раз редактировалось Ладушка; 25.04.2008 в 18:04. |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 13
|
![]()
Ну помогите...
![]() |
![]() |
![]() |
![]() |
#9 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 22.04.2008
Сообщений: 13
|
![]()
Вот и я про то же. Ниче не понимаю! Вроде элементарная задачка, а я туплю. Никогда так долго лабу не делала. Всегда одной ночи хватало
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
сдвиг данных в dbgrid'e на 1 вверх | kate158 | БД в Delphi | 5 | 22.08.2008 22:20 |
циклический сдвиг массива | goacher | Общие вопросы C/C++ | 4 | 28.05.2008 20:11 |
циклический сдвиг массива | goacher | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 27.05.2008 22:26 |
Сдвиг файла | OrdJONY | Общие вопросы Delphi | 13 | 21.12.2007 22:22 |