![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
AlexPS |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 34 Пол: Мужской Репутация: ![]() ![]() ![]() |
Чуваки, у меня тут проблемы - мне нужна парочка алгоритмов:
1. Поворот матрицы на 90 градусов. 2. Отобразить матрицу относительно главной/побочной диагонали. Заранее пасиба. -------------------- @13][ P.$.
www.alex-ps.com |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
|
mithquessir |
![]()
Сообщение
#3
|
Гость ![]() |
AlexPS
Два в одном. ![]() Код const n = 5; type matrix=array[1..n,1..n] of integer; var a:matrix; b:matrix; procedure FillMain; var i,j:integer; begin for i := 1 to n do for j := n downto i do a[i,j] := random(100); end; procedure FillSide; var i,j:integer; begin for i := 1 to n do for j := 1 to n - i + 1 do a[i,j] := random(100); end; procedure RotateCV; var i,j:integer; hlp:matrix; begin for i := 1 to n do for j := 1 to n do hlp[j, n - i + 1] := a[i, j]; for i := 1 to n do for j := 1 to n do a[i,j] := hlp[i,j]; end; procedure RotateCCV; var i,j:integer; hlp:matrix; begin for i := 1 to n do for j := 1 to n do hlp[n - i + 1,j] := a[i, j]; for i := 1 to n do for j := 1 to n do a[i,j] := hlp[i,j]; end; procedure MainMirror; var i,j:integer; begin for i := 2 to n do for j := 1 to i-1 do a[i,j] := a[j,i]; end; procedure SideMirror; var i,j:integer; begin RotateCV; for i := 2 to n do for j := 1 to i-1 do a[i,j] := a[j,i]; RotateCCV; end; procedure Print; var i,j:integer; begin for i := 1 to n do begin WriteLn; WriteLn; for j := 1 to n do Write(a[i,j]:3); end; end; begin randomize; FillMain; MainMirror; {FillSide; SideMirror;} {RotateCV;} {RotateCCV;} Print; end. Процедуры: FillMain - заполнить матрицу выше главной диагонали. FillSide - заполнить матрицу выше побочной диагонали. MainMirror - отзеркалить относительно главной диагонали. SideMirror - отзеркалить относительно побочной диагонали. RotateCV - повернуть матрицу по часовой стрелке. RotateCCV - повернуть матрицу против часовой стрелки. Ну я и намутил ![]() |
Чаловек |
![]()
Сообщение
#4
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
а можешь пометить где поворот а где отображение относительно матрицы...
|
volvo |
![]()
Сообщение
#5
|
Гость ![]() |
А список процедур внизу поста что, на незнакомом тебе языке приведен?
![]() |
![]() ![]() |
![]() |
Текстовая версия | 19.06.2025 14:44 |