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

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

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

> Опять матрица :(, Как заполнить в нужном порядке?
ksv
сообщение 27.04.2006 14:48
Сообщение #1





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

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


Хелп blink.gif
дана матрица 8х8:real, заполнить случайными числами не сложно, но нужно заполнить в определенном порядке:
... 17
9 10...15 16
8 7... 2 1
т.е. змейкой, как сделать подскажите плз.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 6)
volvo
сообщение 27.04.2006 15:25
Сообщение #2


Гость






Вот так:
const n = 8;
var
a: array[1 .. n, 1 .. n] of real;
add: array[false .. true] of integer = (-1, 1);
i, j, k, count: integer;

begin
j := n + 1; count := 1;
for i := n downto i do begin
inc(j, add[odd(i)]);
for k := 1 to n do begin
a[i, j] := count; inc(count);
inc(j, add[odd(i)]);
end;
end;

for i := 1 to n do begin
for j := 1 to n do
write(a[i, j]:4:0);
writeln;
end;
readln;
end.
 К началу страницы 
+ Ответить 
ksv
сообщение 28.04.2006 10:29
Сообщение #3





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

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


может быть попроще можно сделать, сортировкой там какой нибудь?
(на всякий случай задание такое:
матрица 8х8 нужно заполнить случайными числами от -7 до 7 в следующем порядке- первая строка слева на право по убыванию , вторая строка справа налево по убыванию, третья слева на право по убыванию и т.д.. т.е в ячейке A[1,1] находится максимум в A[8,8] минимум матрицы, затем мтрицу отсортировать по убыванию сумм по строкам.
Не понятен мне сам алгоритм заполнения blink.gif , сначала нужно максимум найти? вроде бы напрашивается сортировка пузырьковая? как отсортировать матрицу пузырьковой сортировкой, везде в примерах сортировка массива и усё wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 28.04.2006 10:33
Сообщение #4


Гость






Задание надо приводить в первом посте, а не "потом как нибудь"!

Я тебе привел САМОЕ простое решение, соответствующее приведенному тобой заданию. Если тебя интересует с сортировкой - ищи по форуму, есть тема о "Сквозной сортировке"... Только не надейся, что там будет проще.
 К началу страницы 
+ Ответить 
ksv
сообщение 30.04.2006 17:29
Сообщение #5





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

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


Как можно отсортировать строки матрицы по убыванию их сумм?

т.е. нужно расположить строки в матрице по убыванию их сумм, подскажите плз.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Сонмор
сообщение 1.05.2006 0:57
Сообщение #6





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

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


Можно сделать с двумя дополнительными массивами
Const n=8;
Var A:array[1..n,1..n] of real;Sum,Temp:Array[1..n]of Real;
i,j:integer;tmp:Real;
Begin
For i:= 1 to n do
For j:=1 to n do
Sum[i]:=Sum[i]+A[i,j];
for i:=2 to N do
for j:=N downto i do
if Sum[j-1]<Sum[j] then
begin
tmp:=Sum[j-1];
Sum[j-1]:=Sum[j];
Sum[j]:=tmp;
Temp:=A[j-1];
A[j-1]:=A[j];
A[j]:=Temp;
end;
End.

Но это лишняя память и время выполнения. Поэтому лучше всё-же сквозной сортировкой.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 1.05.2006 11:27
Сообщение #7


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

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

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


Ну и зачем это нужно ? Поиск и FAQ не для красоты сделаны между прочим, задача решалась неоднократно.

Пишешь ф-ю которая возвращает сумму строки, потом смотришь как менять строки/столбцы тут : Как задать матрицу чтобы ...

И используешь любою сортировку от сюда : FAQ : Методы сортировок, меняя строки, если не выполняется Sum(i) >= Sum(i+1).

Сообщение отредактировано: klem4 - 1.05.2006 11:27


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

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

 



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