Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2010, 15:08   #1
ronil
 
Регистрация: 07.06.2010
Сообщений: 7
По умолчанию Квадратная матрица

Содержимое кв.матрецы A(n n) повернуть на 90 градусов по часовой, считая центром поворота центр симметрии матрицы.

Мож кто такую задачу делал, напишите решение если не трудно, буду очень благодарен :-)
ronil вне форума Ответить с цитированием
Старый 08.12.2010, 16:04   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Цитата:
Сообщение от ronil Посмотреть сообщение
Содержимое кв.матрецы A(n n) повернуть на 90 градусов по часовой, считая центром поворота центр симметрии матрицы.

Мож кто такую задачу делал, напишите решение если не трудно, буду очень благодарен :-)
А какие у тебя уже есть наброски ? Желательно выложить код , который ты уже написал
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 08.12.2010, 16:05   #3
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

Код:
{С двумя матрицами }
var
   a,b:array[1..100,1..100] of integer;
   i,j,n,m:integer;
begin
 readln(n,m);    {количество строк и столбцов соответственно}
 for i:=1 to n do
  for j:=1 to m do
   read(a[i,j]);      {считываем элементы}
 writeln('Старый массив');
 for i:=1 to n do
  begin
   for j:=1 to m do
    write(a[i,j]:4); {вывод введенного массива на экран}
   writeln;
  end;
 for j:=1 to n do
  for i:=1 to m do
   b[i,n-j+1]:=a[j,i];  {переворот массива осуществляется при помощи другого массива}
 writeln('Новая размерность');
 writeln(m,' ',n);  {выводим новые размеры}
 writeln('Новый массив');
 for i:=1 to m do
  begin
   for j:=1 to n do
    write(b[i,j]:4);   {выводим новый массив}
   writeln;
  end;
 readln
end.
Код:
{без доп матриц}
uses crt;
var n,i,j,p,k,x:integer;
    a:array[1..50,1..50] of integer;
begin
clrscr;
write('n=');readln(n);
writeln('Ischodnaia matritsha:');
randomize;
for i:=1 to n do
  begin
    for j:=1 to n do
      begin
        a[i,j]:=random(15)-4;
        write(a[i,j]:4);
      end;
  writeln;
  end;
p := n div 2; {разбиваем матрицу на 4 части}
for i:=1 to p do
for k:=i to n-i do{меняем элементы по кругу из одной четверти в другую}
  begin
    x:=a[i,k];
    a[i,k]:=a[n-k+1,i];
    a[n-k+1,i]:=a[n-i+1,n-k+1];
    a[n-i+1,n-k+1]:=a[k,n-i+1];
    a[k,n-i+1]:=x;
  end;
Writeln('Povorot na 90 grad:');
for i:=1 to n do
  begin
    for j:=1 to n do
    write(a[i,j]:4);
    writeln;
  end;
readln
end.
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 08.12.2010, 18:18   #4
ronil
 
Регистрация: 07.06.2010
Сообщений: 7
По умолчанию

Большое спасибо )
ronil вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
квадратная матрица Tata4ka Помощь студентам 2 02.11.2010 13:47
Квадратная матрица laluna Паскаль, Turbo Pascal, PascalABC.NET 5 04.06.2010 20:32
квадратная матрица на С++ innaa639 Помощь студентам 1 24.03.2010 14:46
квадратная матрица DartDayring Общие вопросы C/C++ 3 13.03.2010 13:36