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

Динамическое распределение памяти - C++

Восстановить пароль Регистрация
 
AVeeBeaT
 Аватар для AVeeBeaT
1098 / 12 / 0
Регистрация: 24.12.2009
Сообщений: 18
24.01.2010, 17:12     Динамическое распределение памяти #1
Добрый вечер, помогите пожалуйста разобраться с задачкой!!! Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера nxn??? Буду рад любой помощи!!!
Изображения
 
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
24.01.2010, 17:19     Динамическое распределение памяти #2
на паскале помню такое делал с помощю темпа
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3781 / 1765 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
24.01.2010, 17:26     Динамическое распределение памяти #3
AVeeBeaT, какие возникают трудности при решении задачи?

Алгоритм весьма прост:

1. Получить размер N.
2. Считать матрицу порядка 2N.
3. Создать временную матрицу порядка N для хранения переставляемой части.
4. От N+1 до 2N (и по горизонтали, и по вертикали) выполнить проход по исходной матрице и занести значения во временную матрицу. (То есть сохранить левую нижнюю часть)
5. Сдвинуть правую нижнюю часть на место левой.
6. Повторить для остальных частей. (принцип пятнашек)
7. На место левой верхней части вставить данные из временной матрицы.

Вот и всё.
Попробуйте написать программу.
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
24.01.2010, 21:45     Динамическое распределение памяти #4
Только вспомогательную матрицу можно не создавать
Код
for(i=0;i<N; i++)
  for(j=0; j<N; j++) {
     t = M[i][j];
     M[i][j] = M[i][j+N];
     M[[i][j+N] = M[i+N][j+N];
     M[i+N][j+N] = M[i+N][j];
     M[i+N][j] = t;
  }
Yandex
Объявления
24.01.2010, 21:45     Динамическое распределение памяти
Ответ Создать тему
Опции темы

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