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

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

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

 
 Ответить  Открыть новую тему 
> Сортировка матрицы по целой части элементов строки
сообщение
Сообщение #1





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

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


Необходимо отсортировать матрицу(пузырьком) по целой часть элеметов K-й строки(строку K задаём)
К примеру, есть матрица:

(1,5) (7,4) (8,1)

(5,1) (8,3) (3,3)

(9,1) (1,1) (0,5)

(4,3) (5,4) (5,2)

Пусть мы задаём K=3
Выписываем целую часть элементов 3-й строки:[9,1,0].После сортировки[0,1,9].Тогда столбцы,должны поменяться аналогично.Столбец,содержащий 0,5 идёт первым,1 идёт вторым,9 идёт третьим!

Помогите пожалуйста! smile.gif

Сообщение отредактировано: liash-7 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Иллюзия мира
***

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

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


т.е. упорядочить марицу таким образом, что были упорядочны элементы определенной строки??
ps попробую хоть что нибудь сам сделать ..
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Цитата(Адель @ 16.04.2007 22:24) *

т.е. упорядочить марицу таким образом, что были упорядочны элементы определенной строки??
ps попробую хоть что нибудь сам сделать ..


Да!И чтобы столбцы содержащие эти элементы были раположены согласно им.
То есть должны получить матрицу:
(8,1) (7,4) (1,5)

(3,3) (8,3) (5,1)

(0,5) (1,1) (9,1)

(5,2) (5,4) (4,3)

Как бы "тащим" столбцы согласно элементам строкиsmile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Основной цикл программы:
  for i := 1 to n_cols do
for j := n_cols downto i + 1 do
if trunc(arr[k, j - 1]) > trunc(arr[k, j]) then
for ii := 1 to n_rows do begin
T := arr[ii, j - 1]; arr[ii, j - 1] := arr[ii, j]; arr[ii, j] := T
end;
(n_cols - число столбцов матрицы, n_rows - число строк)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


Цитата(volvo @ 17.04.2007 1:41) *

Основной цикл программы:
  for i := 1 to n_cols do
for j := n_cols downto i + 1 do
if trunc(arr[k, j - 1]) > trunc(arr[k, j]) then
for ii := 1 to n_rows do begin
T := arr[ii, j - 1]; arr[ii, j - 1] := arr[ii, j]; arr[ii, j] := T
end;
(n_cols - число столбцов матрицы, n_rows - число строк)

Не могли бы Вы рассказать подробнее,как в общем выглядит полная структура программы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Вот так для твоего примера:
const
n_rows = 4;
n_cols = 3;

arr: array[1 .. n_rows, 1 .. n_cols] of real = (
(1.5, 7.4, 8.1),
(5.1, 8.3, 3.3),
(9.1, 1.1, 0.5),
(4.3, 5.4, 5.2)
);

var
i, j, k, ii: integer;
T: real;

begin
write('k = '); readln(k);

{ Здесь печатаем матрицу ДО сортировки }

{ Сортируем }
for i := 1 to n_cols do
for j := n_cols downto i + 1 do
if trunc(arr[k, j - 1]) > trunc(arr[k, j]) then
for ii := 1 to n_rows do begin
T := arr[ii, j - 1]; arr[ii, j - 1] := arr[ii, j]; arr[ii, j] := T
end;

{ И печатаем ПОСЛЕ сортировки }
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





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

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


Огромное спасибо good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8





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

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


Что-то не так у меня распечатывается:Сначала выводится матрица 3х4 а потом 4х3!В чём проблема?Вот текст программы:

const
n_rows = 4;
n_cols = 3;

var
arr: array[1 .. n_rows, 1 .. n_cols] of real;
i, j, k, ii: integer;
T: real;

begin
write('k = '); readln(k);

{ Matrix do sortirovki }
writeln('Ishodnaya matrix:');
Randomize;
for i:=1 to n_cols do
for j:=1 to n_rows do
arr[i,j]:=Random(50);

for i:=1 to n_cols do
begin
for j:=1 to n_rows do
write(arr[i,j]:4);
writeln;
end;

{ Sortirovka }
for i := 1 to n_cols do
for j := n_cols downto i + 1 do
if trunc(arr[k, j - 1]) > trunc(arr[k, j]) then
for ii := 1 to n_rows do begin
T := arr[ii, j - 1]; arr[ii, j - 1] := arr[ii, j]; arr[ii, j] := T
end;

{ Matrix posle sortirovki }
writeln;
writeln('Otsortirovannaya matrix:');
begin

for ii:=1 to n_rows do
begin
for j:=1 to n_cols do
write(arr[ii,j]:4);
writeln;
end;
end;
end.


Сообщение отредактировано: liash-7 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


М
liash-7,
1. Используй теги (отредактируй в предыдущем посте!)
2. Исправь название темы - в нем ошибка
Lapp



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





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

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


ВСЁ!Разобрался!Всем спасибо! smile.gif

Изменить первое сообщение=>название темы не могу unsure.gif

Сообщение отредактировано: liash-7 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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