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

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

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

> Задача над матрицей
сообщение
Сообщение #1


Новичок
*

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

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


Вообщем задача состоит в том, чтобы записать в строку упорядоченно все элементы в матрице в чледующем порядке

Цитата
          21    22    23    24    25
          20    13    12    11    10
          19    14    7      8      9
          18    15    6      3      2
          17    16    5      4      1

причем размер матрицы произвольный от 2x2 до 7x7
помогите пожалуйста

Сообщение отредактировано: volvo -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 2)
сообщение
Сообщение #2


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

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

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


ЧТо-то не очень понятно, у тебя первая строка отсортирована по возрастанию, а остальные по убыванию, а вообще :

FAQ : Массивы, матрицы, типичные задачи
FAQ : Методы сортировок


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


Гость






klem4, это "змейка" - из правого нижнего угла... blum.gif

Clon, вот программа обхода (и заполнения) матрицы в заданном порядке...
const
size = 5;

var
a: array[1 .. size, 1 .. size] of integer;
count: integer;


var
i, j, T: integer;

begin
count := 0;

for T := 1 to size do
if odd(T) then begin

for i := size downto size - T + 1 do begin
inc(count); a[i, size - T + 1] := count;
end;
for j := size - T + 2 to size do begin
inc(count); a[size - T + 1, j] := count;
end;

end
else begin

for j := size downto size - T + 1 do begin
inc(count); a[size - T + 1, j] := count;
end;
for i := size - T + 2 to size do begin
inc(count); a[i, size - T + 1] := count;
end;

end;

for i := 1 to size do begin
for j := 1 to size do
write(a[i, j]:3);
writeln;
end;
end.


Чтобы перенести в этом же порядке данные в одномерный массив, просто замени присваивание
a[{что-то}, {что-то}] := count;
на
b[count] := a[{что-то}, {что-то}];
где B - одномерный массив размерности 1 .. size*size
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 12.09.2025 20:28
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name