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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AVeeBeaT
 Аватар для AVeeBeaT
1098 / 12 / 0
Регистрация: 24.12.2009
Сообщений: 18
#1

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

24.01.2010, 17:12. Просмотров 702. Ответов 3
Метки нет (Все метки)

Добрый вечер, помогите пожалуйста разобраться с задачкой!!! Дана действительная квадратная матрица порядка 2n. Получить новую матрицу, переставляя ее блоки размера nxn??? Буду рад любой помощи!!!
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.01.2010, 17:12     Динамическое распределение памяти
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Radjuk
 Аватар для Radjuk
134 / 68 / 12
Регистрация: 10.10.2009
Сообщений: 187
24.01.2010, 17:19     Динамическое распределение памяти #2
на паскале помню такое делал с помощю темпа
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3787 / 1769 / 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
1152 / 957 / 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     Динамическое распределение памяти
Ответ Создать тему
Опции темы

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