Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перевернуть масив... 
V
    Опции темы
Zorak
Дата 20.2.2009, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



есть масив, котрий заполняется следующим образом... :
Код

for i:=1 to n-1 do
for j:=1 to m-1 do
begin
a:=x1[i,j-1]-x1[0,j-1];
b:=y1[i-1,0]-y1[i-1,j];

x1[i,j]:=x1[i-1,j]+a;
y1[i,j]:=y1[i,j-1]-b;
end;

З.Ы. края масива заполняются ранее....
Результат заполнения следующий:
х1:                                         y1:    
300  540  480  420  360        400  400  400  400  400
300  540  480  420  360        340  340  340  340  340
300  540  480  420  360        280  280  280  280  280
300  540  480  420  360        220  220  220  220  220
300  540  480  420  360        160  160  160  160  160

Задача в том, чтобы перевернуть масив y1:  следующим образом....:
160  160  160  160  160
220  220  220  220  220
280  280  280  280  280
340  340  340  340  340
400  400  400  400  400

Тоетсь поменять местами строки... Мне известно количество строк: "m".. Решения задачи попытался добится таким способом:
Код

for i:=0 to n-1 do
begin
for j:=0 to m div 2 do
begin
buf := y1[i,j];
y1[i,j]:=y1[i,j-1-j];
y1[i,j-1-j]:=buf;
end;
end;

Вот!,.. но  масив просто Не меняется... каким он был, таким и остался после виполнения етого... почему ?(... может я чтото не так сделал ?


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
san46
Дата 20.2.2009, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 30.11.2006

Репутация: нет
Всего: нет



Естественно, неправильно.
Код

  for  i := 0 to n-1 do
    for j := 0 to m div 2 do begin
      buf := y1[i, j];
      y1[i, j] := y1[i, m-j];
      y1[i, m-j] := buf;
    end;

И код этот работает правильно только при нечетном количестве строк.
PM MAIL   Вверх
THandle
Дата 21.2.2009, 01:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хранитель Клуба
Group Icon
Награды: 1



Профиль
Группа: Админ
Сообщений: 3639
Регистрация: 31.7.2007
Где: Moscow, Dubai

Репутация: 50
Всего: 372



Код

program Project1;

{$APPTYPE CONSOLE}

const
  ARRAY_SIZE = 6;
var
  A: Array [0..ARRAY_SIZE - 1, 0..ARRAY_SIZE - 1] Of Integer =
  ((400,  400,  400,  400,  400,  400),
   (340,  340,  340,  340,  340,  340),
   (280,  280,  280,  280,  280,  280),
   (220,  220,  220,  220,  220,  220),
   (160,  160,  160,  160,  160,  160),
   (120,  120,  120,  120,  120,  120));

procedure Print;
var
  I, J: Integer;
begin
  for I := 0 to ARRAY_SIZE - 1 do
  begin
    for J := 0 to ARRAY_SIZE - 1 do
      Write(A[I, J], '  ');
    WriteLn;
  end;
end;

procedure Rotate;
var
  I, J, K, Tmp: Integer;
begin
  for K := 0 to ARRAY_SIZE - 1 do
  begin
    I := 0;
    J := ARRAY_SIZE - 1;
    repeat
      if I <> J then
      begin
        Tmp := A[I, K];
        A[I, K] := A[J, K];
        A[J, K] := Tmp;
      end;
      Inc(I);
      Dec(J);
    until I >= J;
  end;
end;

begin
  WriteLn('Before: ');
  Print;
  WriteLn('After: ');
  Rotate;
  Print;
  ReadLn;
end.

PM   Вверх
Zorak
Дата 21.2.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 720
Регистрация: 13.11.2007

Репутация: нет
Всего: 3



THandle   спасибо, работает )...


--------------------
Знание - сила. А сила есть, ума не надо...
Занимаюсь интернет бизнесом и ищу новых партнеров. Кому интересно - обращайтесь в ЛС, скайп или мыло.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0713 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.