|
|
![]() |
|||||||||||||||||||||||||
![]() ![]() ![]() |
| G-UniT |
|
![]() N.D.A.A.G. ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 290 Регистрация: 23.03.2005 Репутация: 13 Место учебы: Жизнь |
Помогите решить задачу! или хотя бы дайте ссылку где можно найти что-нибудь подобное. Всем буду ооочень благодарен.
Дана квадратная матрица NxN состоящая из натуральных чисел. Необходимо зеркально отразить ее элементы относительно горизонтальной оси симметрии. Вывести результаты на экран. Например для матрицы 3х3 это преобразование будет выглядеть так : А11 А12 А13 А21 А22 А23 А31 А32 А33 ↓ А31 А32 А33 А21 А22 А23 А11 А12 А13 PS: задача должна быть решена на языке Паскаль. |
| Alenushka |
16.05.2005 - 19:17 (ссылка на это сообщение)
|
![]() Младший научный сотрудник ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 284 Регистрация: 14.04.2005 Репутация: 32 Место учебы: был ОрелГТУ... |
Если еще никто не написал, то мой вариант.
const n=3; var mat: array [0..n-1,0..n-1] of integer; i,j,m:integer; BEGIN ... //заполнение матрицы for i:=0 to (n div 2)-1 do for j:=0 to n-1 do begin m:=mat[i,j]; mat[i,j]:=mat[n-1-i,j]; mat[n-1-i,j]:=m; end; .... //вывод результатов END. |
| RoDen |
16.05.2005 - 22:13 (ссылка на это сообщение)
|
![]() Уважаемый Председатель ученого совета Профиль Группа: Серый кардинал Сообщений: 3284 Регистрация: 10.03.2005 Репутация: 248 Место учебы: политех |
че и как делать:
1 объявить матрицу и переменные 2 заполнить матрицу, например - случайными числами в 2-x циклах for 3 с помошью двух вложенных циклов выполнить "зеркальную перестановку" - Alenushka уже написала, как 4 вывести на экран матрицу - в 2-x циклах for 1,2 и 4 есть в любом примере с матрицами |
| G-UniT |
18.05.2005 - 13:07 (ссылка на это сообщение)
|
![]() N.D.A.A.G. ![]() ![]() ![]() ![]() Профиль Группа: Пользователи Сообщений: 290 Регистрация: 23.03.2005 Репутация: 13 Место учебы: Жизнь |
Всем спасибо.
Задача решена,вот ее решение(может кому-то пригодится). var mat:array[1..10,1..10] of byte; x,y:integer; t:byte; n:byte; begin writeln('Enter matrix long ( max=10 min = 2 )'); readln(n); for y:=1 to n do for x:=1 to n do begin writeln('Enter ',x,' ',y,' element of matrix'); readln(mat[x,y]); end; for y:=1 to n do begin for x:=1 to n do write(mat[x,y]:4,' '); writeln; end; for y:=1 to (n div 2) do for x:=1 to n do begin t:=mat[x,y]; mat[x,y]:=mat[x,(n+1)-y]; mat[x,(n+1)-y]:=t; end; writeln('after'); for y:=1 to n do begin for x:=1 to n do write(mat[x,y]:4,' '); writeln; end; readln end. |
![]() |
![]() ![]() ![]() |