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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2010, 13:56   #1
Laplas
Пользователь
 
Регистрация: 02.10.2009
Сообщений: 25
По умолчанию двумерный массив

нужно сдвинуть циклически столбцы матрицы (первый столбец становиться на место второго, второй на место третьего и т.д.Последний на место первого).
пробовал сделать сам, но прога либо меняла столбцы местами, либо сортировала строки по возрастанию или убыванию
подскажите пожалуйста
Laplas вне форума Ответить с цитированием
Старый 07.01.2010, 14:36   #2
VVkSoft
Пользователь
 
Аватар для VVkSoft
 
Регистрация: 06.09.2009
Сообщений: 66
Сообщение none

вот функции
Код:
procedure TShifrObj.vlevo(k, RowNo, AType: integer; var mas: TShTxt);
var
 i, n, j:integer;
 q: char;
begin
  k := abs(k);
  n := length(Mas[0]);
  case AType of
    -1,0: begin
      for i:=1 to k do
        begin
          for j:=0 to n-1 do
            if j=0 then
              q:=mas[RowNo,j]
            else
            begin
              mas[RowNo,j-1]:=mas[RowNo,j];
            end;
          mas[RowNo,n-1]:=q;
        end;
    end;
    1: begin
      n := length(Mas);
     for i:=1 to k do
        begin
          for j:=0 to n-1 do
            if j=0 then
              q:=mas[j,RowNo]
            else
            begin
              mas[j-1,RowNo]:=mas[j,RowNo];
            end;
          mas[n-1,RowNo]:=q;
        end;
    end;
end;

end;

procedure TShifrObj.vpravo(k, RowNo, AType: integer; var mas: TShTxt);
var
 i, n, j:integer;
 q: string;
begin
  n := length(Mas[0]);
  case AType of
    -1,0: begin
      for i:=1 to k do
        begin
          for j:=n-1 downto 0 do
            if j=n-1 then
              q:=mas[RowNo,n-1]
            else
            begin
              mas[RowNo,j+1]:=mas[RowNo,j];
            end;
          mas[RowNo,0]:=q[1];
        end;
    end;
    1: begin
      n := length(Mas);
      for i:=1 to k do
        begin
          for j:=n-1 downto 0 do
            if j=n-1 then
              q:=mas[n-1,RowNo]
            else
            begin
              mas[j+1,RowNo]:=mas[j,RowNo];
            end;
          mas[0,RowNo]:=q[1];
        end;
    end;

end;
end;
где
k-количество елементов сдвига
RowNo-номер рядка/стовбця
AType-тип работи: "-1, 0" - ствиг по рядкам [i], "1" - по столбцам [j];
var mas - масив [i,j] двухвимырной описаний в Type
integer; var mas: TShTxt

Последний раз редактировалось VVkSoft; 07.01.2010 в 14:43.
VVkSoft вне форума Ответить с цитированием
Старый 07.01.2010, 14:42   #3
Fantazerishka
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 62
По умолчанию

Код:
For i:=1 to m do begin
For j:=1 to n do begin
b:=a[i,j]; a[i,j]:=a[m,j]; a[m,j]:=b;
end; end;
Примерно так, не проверял...
проверил, норм работает...

Последний раз редактировалось Fantazerishka; 07.01.2010 в 15:03.
Fantazerishka вне форума Ответить с цитированием
Старый 07.01.2010, 14:47   #4
VVkSoft
Пользователь
 
Аватар для VVkSoft
 
Регистрация: 06.09.2009
Сообщений: 66
Сообщение комент до передущего мого поста

ети функции работают с любим двохвимирним массивом с неровними сторонами
с помощью их у меня работае простое шифрования
VVkSoft вне форума Ответить с цитированием
Старый 07.01.2010, 15:08   #5
Fantazerishka
Пользователь
 
Регистрация: 23.09.2009
Сообщений: 62
По умолчанию

VVksoft, ты меня удивил своим постом) Я даже проверил будет ли работать мой маленький кусок)
Fantazerishka вне форума Ответить с цитированием
Старый 07.01.2010, 15:42   #6
Laplas
Пользователь
 
Регистрация: 02.10.2009
Сообщений: 25
По умолчанию

спасибо большое за помощь
Laplas вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Двумерный массив Qwerty91 Помощь студентам 1 03.12.2009 19:55
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40
двумерный массив Ринат_1987 Помощь студентам 2 19.01.2009 15:43
Двумерный массив Wi1D Помощь студентам 12 10.12.2008 00:55
Двумерный массив apetr Паскаль, Turbo Pascal, PascalABC.NET 2 30.11.2008 12:32