| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Центр помощи > [C] Поворот матрицы |
| Автор: Гусь 13.3.2007, 12:59 |
| Осущиствите "поворот" матрицы на 90 градусов (первая строка становится последним столбцом и т.д.), на 180 градусов (первая строка становится последней, но элементы этой строки расположены в обратном порядке и т.д.). |
| Автор: Rodman 13.3.2007, 13:24 | ||
вроде так |
| Автор: Гусь 13.3.2007, 13:48 |
| Большое спасибо)) |
| Автор: MBo 13.3.2007, 15:15 |
| Rodman, for (i=1;i<N;i++)/*90 gradusov*/ for (j=1;j<N;j++) { tmp=a[i][j]; a[i][j]=a[j][i]; a[j][i]=tmp; } это транспонирование (отражение матрицы относительно главной диагонали) Для поворота на 90 градусов нужно запомнить элемент, и 4 раза перенести элементы, находящиеся на эквивалентном при повороте на (-90) градусов месте, т.е., например. t := A[1,1]; A[1,1] := A[N, 1]; A[N, 1] := A[N,N]; A[N,N] := A[1, N]; A[1,N] := t; При этом нужно обходить в циклах не все ячейки, а четверть. |
| Автор: Гусь 13.3.2007, 15:23 |
| спсб |
| Автор: Гусь 14.3.2007, 14:32 |
| [QUOTE=MBo,13.3.2007, 15:15]Rodman, for (i=1;i<N;i++)/*90 gradusov*/ for (j=1;j<N;j++) { tmp=a[i][j]; a[i][j]=a[j][i]; a[j][i]=tmp; } это транспонирование (отражение матрицы относительно главной диагонали) Для поворота на 90 градусов нужно запомнить элемент, и 4 раза перенести элементы, находящиеся на эквивалентном при повороте на (-90) градусов месте, т.е., например. t := A[1,1]; A[1,1] := A[N, 1]; A[N, 1] := A[N,N]; A[N,N] := A[1, N]; A[1,N] := t; При этом нужно обходить в циклах не все ячейки, а четверть. А как это записать, чтоб задача полностью решена была. Спасибо заранее |
| Автор: Dov 14.3.2007, 15:19 | ||
|
| Автор: Гусь 14.3.2007, 17:04 |
| Не пашет-[C++ Error] Unit1.cpp(19): E2451 Undefined symbol 'endl' , [C++ Error] Unit1.cpp(18): E2451 Undefined symbol 'cout' |
| Автор: Dov 14.3.2007, 17:27 | ||
| Гусь, замени cout на printf(). Ты что, маленький что-ли? Добавлено @ 17:35 Держи
|
| Автор: Dov 15.3.2007, 03:02 | ||
Это без использования дополнительной матрицы, т.е. поворот матрицы осуществляется в ней самой
|
| Автор: Гусь 15.3.2007, 18:04 |
| спасибо всем, я сам как то умудрился написать рпограмму.(конечно с помощью ваших подсказок и кодов в программе). Добавлено @ 18:09 |