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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2009, 17:55   #1
shamrock
 
Регистрация: 22.05.2009
Сообщений: 3
По умолчанию Преобразование двумерной матрицы в одномерную

Здравствуйте, подскажите, пожалуйста.

Задача состоит в том, чтобы преобразовать двумерную матрицу в одномерную так, чтобы коэффициенты первой (двумерной) записывались во вторую (одномерную) ЗИГЗАГОМ. Т.е. сначала будут записываться коээфициенты с индексами (1,1), (1,2), (2,1), (3,1), (2,2), (3,1) и т.д.
shamrock вне форума Ответить с цитированием
Старый 08.06.2009, 18:06   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,544
По умолчанию

Что-то не понял порядка. Покажите на рисунке.
Arigato вне форума Ответить с цитированием
Старый 08.06.2009, 18:09   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Ну вы бы еще белым цветом слово "зигзагом" написали, чтобы получше видно было )

Посмотрите вот тут, нечто похожее.
http://programmersforum.ru/showthread.php?t=51356
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 08.06.2009, 22:17   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
(1,1), (1,2), (2,1), (3,1), (2,2), (3,1) и т.д.
что, один и тот же элемент ДВА РАЗА!?
короче, Arigato прав! Рисуйте матрицу и стрелочкой отмечайте Ваш "ЗИГЗАГ"...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.06.2009, 07:42   #5
shamrock
 
Регистрация: 22.05.2009
Сообщений: 3
По умолчанию

Короч, я всё напутала. Координаты вообще не те. Матрица 8*8
Изображения
Тип файла: bmp матрица.bmp (8.7 Кб, 166 просмотров)
shamrock вне форума Ответить с цитированием
Старый 17.06.2009, 11:15   #6
Anatole
Форумчанин
 
Аватар для Anatole
 
Регистрация: 07.04.2009
Сообщений: 245
По умолчанию

Здесь задача на выбор индексов в определённом порядке. Это можно сделать например вот так:
Код:
program Zigzag;

const n =8;
Var
 i,j,k : byte;
 limit, napr : shortint;
 revers : boolean;

BEGIN
WriteLn('array A');
for i := 1 to n do
  begin
  for j := 1 to n do
    begin
    write(i:1,j:1,' ');
    end;
    writeLn;
  end;
writeln;
napr := -1;
k:=1; i:=1; j:=1;
limit := 1;
Revers := false;
While k <= (n+1)*n div 2 do
 begin
 Write ( i:1, j:1,' ');
 if ((i = limit) or (j = limit))  then
  begin
  if not revers then
    begin
    if (i = limit)
      then inc(j)
      else inc(i);
    Napr := - Napr;
    Revers := true;
    end else
    begin
    i :=i+napr;
    j := j-napr;
    revers := false;
    end;
  end  else
  begin
  i :=i+napr;
  j := j-napr;
  end;{else if i :=limit}
 if i+j>n+1 then limit := n;
 inc(k);
 end;

 limit:=n;
 if i > n then i := n;
 If j > n then j := n;
 revers := false;
 napr := -napr;

While k <= n*n do
 begin
 if ((i = limit) or (j = limit))  then
  begin
  if not revers then
    begin
    if (i = limit)
      then inc(j)
      else inc(i);
    Napr := - Napr;
    Revers := true;
    end else
    begin
    i := i+napr;
    j := j-napr;
    revers := false;
    end;
  end  else
  begin
  i := i+napr;
  j := j-napr;
  end;{else if i :=limit}
 Write (i:1, j:1,' ');
 inc(k);
 end;
END.
Алгоритм не оптимальный, его можно сократитть, и только имитирует наличие матриц. Если матрицы крайне необходимы, то добавите сами.
Всякое безобразие должно быть единообразным. Тогда это называется порядком.
Anatole вне форума Ответить с цитированием
Старый 17.06.2009, 11:29   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

если ещё актуально - вывод двухмерного матрицы "зигзагом" тут - http://www.programmersforum.ru/showp...92&postcount=8
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.06.2009, 18:09   #8
shamrock
 
Регистрация: 22.05.2009
Сообщений: 3
По умолчанию

Спасибо, всем большое!
shamrock вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение матрицы методом союзной матрицы dofmat Помощь студентам 6 03.10.2011 15:01
Удаление элементов из двумерной матрицы Димитрон Помощь студентам 8 28.05.2009 22:38
Преобразование программы DiMoN2002 Общие вопросы C/C++ 5 28.04.2009 18:31
Преобразование... prizrak1390 Общие вопросы Delphi 2 02.04.2008 11:24