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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.06.2009, 19:42   #1
Alexandr14
Новичок
Джуниор
 
Регистрация: 29.06.2009
Сообщений: 2
По умолчанию Помогите пожалуйста задачку решить

Помогите плз с задачкой. Массив А [1..n,1..n] разбивается на четыре четверти, ограниченные главной побочной диагоналями; верхнюю, нижнюю, левую, и правую. Поменять местами элементы : верхней и нижней четвертей; правой и левой четвертей.
Alexandr14 вне форума Ответить с цитированием
Старый 29.06.2009, 21:40   #2
Djem1991
Форумчанин
 
Аватар для Djem1991
 
Регистрация: 05.01.2009
Сообщений: 130
По умолчанию

а ты нарисуй на бумажке, и заалгоритмируй действия,а потом просто их напиши... тут просят помощи,чтобы разобраться,а не просят думать за них.
В жизни нет reset'а, а жаль...
Djem1991 вне форума Ответить с цитированием
Старый 01.07.2009, 10:06   #3
Alexandr14
Новичок
Джуниор
 
Регистрация: 29.06.2009
Сообщений: 2
По умолчанию

Мне кажется вот так будет выглядеть.Можете посмотреть нету ли тут ошибок?
Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const nmax=50;{максимальный размер}

Var
   x:array[1..4,1..4] of integer;
  i, j, m, n : integer;
  c: integer;
Begin
  n:=4;
  c:=4;
  x[1,1]:=1;
  x[2,1]:=2;
  x[3,1]:=3;
  x[4,1]:=4;
  x[1,2]:=5;
  x[2,2]:=6;
  x[3,2]:=7;
  x[4,2]:=8 ;
  x[1,3]:=9 ;
  x[2,3]:=10;
  x[3,3]:=11;
  x[4,3]:=12 ;
  x[1,4]:=13 ;
  x[2,4]:=14 ;
  x[3,4]:=15 ;
  x[4,4]:=16 ;
 for i:=1 to 4  do   {цикл по строкам (достаточно просмотреть до половины}
  for j:=1 to 4 do
  begin  {цикл по столбцам (первый и последний никогда не будут входить в нужную область)}
   if (j>i) and (i+j<4+1) then   {если это элемент верхней четверти}
   begin   {меняем его с соответствующим элементом нижней четверти}
    c:= x[i,j];
 x[i,j]:= x[4-i+1,j];
 x[4-i+1,j]:= c;
    end;
     if (j<i) and (i+j<4+1) then  
   begin
 c:= x[i,j];
 x[i,j]:= x[i,4-j+1];
 x[i,4-j+1]:= c;
end;
 end;
          for i:=1 to 4 do
            begin
              writeln;
                for j:=1 to 4 do write(' ',x[i,j], ' ')
            end;
         readln;
end.
Alexandr14 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите решить задачку пожалуйста Никитка89 Паскаль, Turbo Pascal, PascalABC.NET 5 25.05.2008 22:33
помогите, пожалуйста, решить задачку vol1 Паскаль, Turbo Pascal, PascalABC.NET 3 08.01.2008 21:09
Пожалуйста, помогите решить задачку. Cizen Помощь студентам 9 03.07.2007 08:27