IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Сортировка 2D массива змейкой, Отсортировать массив как показано на схеме
MC-Sergey
сообщение 21.10.2007 13:46
Сообщение #1





Группа: Пользователи
Сообщений: 8
Пол: Мужской
Реальное имя: Sergey

Репутация: -  0  +


Данн двумерный массив n на m, состоящий из любых целых чисел.
Необходимо отсортировать массив змейкой по возрастанию(убыванию), как показано на рисунке.
Задавать дополнительный массив запрещено.
Голову уже сломал себе sad.gif

Сообщение отредактировано: MC-Sergey - 21.10.2007 13:50


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
klem4
сообщение 21.10.2007 16:59
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


uses crt;

const
n = 5;
m = 3;

type
TArray = array [1..n, 1..m] of Integer;

procedure Print(const arr: TArray);
var
i, j: integer;
begin
for i := 1 to n do begin
writeln;
for j := 1 to m do begin
write(arr[i, j]:4);
end;
end;
end;

procedure Create(var arr: TArray);
var
i, j, value: integer;
begin

value := 1;

i := 1;
j := 1;

arr[i, j] := value;

repeat

if j < m then begin
inc(j);
inc(value);
arr[i, j] := value;
end else begin
inc(i);
inc(value);
arr[i, j] := value;
end;

while (j > 1) and (i < n) do begin
dec(j);
inc(i);
inc(value);
arr[i, j] := value;
end;

if i < n then begin
inc(i);
inc(value);
arr[i, j] := value;
end else if j < m then begin
inc(j);
inc(value);
arr[i, j] := value;
end;

while (i > 1) and (j < m) do begin
dec(i);
inc(j);
inc(value);
arr[i, j] := value;
end;

until (i = n) and (j = m);
end;

var
arr: TArray;
begin
clrscr;
Create(arr);
Print(arr);
readln;
end.


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 3:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"