С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 16

Сортировка матрицы

27.01.2014, 14:49. Показов 690. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день. Подскажите пожалуйста кое-что по сортировке.
Матрицу нужно сортировать так, чтобы модуль суммы элементов матрицы, кроме a[i,i], был меньше модуля a[i,i].
Например:
Pascal
1
2
3
1  2  4       6  1  5
6  1  5   ->  0  3  2
0  3  2       1  2  4
Добавлено через 15 минут
В общем нужно сортировать матрицу так, чтобы она была пригодна для решения СЛАУ методом Зейделя.
P.S. Сам метод у меня есть, работает, вся проблема в сортировке.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.01.2014, 14:49
Ответы с готовыми решениями:

Сортировка матрицы
Дана матрица А(N,N) вещественных значений. Упорядочить по убыванию элементы каждого столбца матрицы. Как ее обработать и сделать вывод на...

Сортировка матрицы
Запарился с решением задачи - В матрице переставить строки так, чтобы суммы их элементов возрастали. Подскажите с алгоритмом выполнения?

Сортировка матрицы
Ввести матрицу A(m, n), m не равно n. Выполнить сортировку элементов каждой строки по возрастанию. Вывести исходную и преобразованную...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33369 / 21495 / 8234
Регистрация: 22.10.2011
Сообщений: 36,893
Записей в блоге: 12
27.01.2014, 15:15
Я уже давал ссылку на эту тему: В матрице переставьте строки так, чтобы сумма элементов главной диагонали была максимальна Код оттуда выдает идеально совпадающий с твоим результат:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
const
   n = 5;
type
   vector = array[1 .. n] of integer;
   matrix = array[1 .. n] of vector;
 
var
  // Это твоя матрица из примера, правда?
  a : matrix = (
    (1, 2, 4),
    (6, 1, 5),
    (0, 3, 2)
  );
 
  x : vector;
 
// Это алгоритм получения следующей перестановки в лексикографическом порядке
function NextPermutation:Boolean;
var
   k, t, y : Integer;
begin
   if N <= 0 then
   begin
      NextPermutation := False;
      Exit;
   end;
   K:=1;
   while K<=N do
   begin
      if (X[K]<1) or (X[K]>N) then
      begin
         NextPermutation := False;
         Exit;
      end;
      Inc(K);
   end;
 
   k := n-1;
   while k>0 do
   begin
      if x[k]<=x[k+1] then
      begin
         Break;
      end;
      k := k-1;
   end;
   if k<>0 then
   begin
      t := k+1;
      while t<n do
      begin
         if x[t+1]<=x[k] then
         begin
            Break;
         end;
         t := t+1;
      end;
      y := x[k];
      x[k] := x[t];
      x[t] := y;
      t := 0;
      while t<(n-k) div 2 do
      begin
         y := x[n-t];
         x[n-t] := x[k+1+t];
         x[k+1+t] := y;
         t := t+1;
      end;
      NextPermutation := True;
   end
   else
      NextPermutation := False;
end;
 
 
var
  i, j : integer;
  T : vector;
 
  max, s : longint;
 
 
begin
  writeln('Исходная матрица');
  for i := 1 to n do
  begin
    for j := 1 to n do
      write(a[i, j]:4);
    writeln;
  end;
 
  for i := 1 to n do x[i] := i;
 
  max := - (maxlongint - 1);
  while nextpermutation do
  begin
    s := 0;
    for i := 1 to n do
      s := s + a[x[i], i];
    if max < s then
    begin
      T := x;
      max := s;
    end;
  end;
 
  writeln('Полученная матрица');
  for i := 1 to n do
  begin
    for j := 1 to n do write(a[T[i], j]:4);
    writeln;
  end;
end.
Вот результат работы (компилятор - FPC 2.6.2):
XML
1
2
3
4
5
6
7
8
9
Running "d:\programs\pascal\test_mx.exe"
Исходная матрица
   1   2   4
   6   1   5
   0   3   2
Полученная матрица
   6   1   5
   0   3   2
   1   2   4
Как ни странно, полученная матрица ровно так же ИДЕАЛЬНО совпадает с той, что тебе нужно было получить. Но ты, наверняка, как в прошлый раз сказал, что у меня все не так, так и в этот раз то же самое скажешь... Так что больше ничем помочь я тебе не могу (и не надо писать мне в ЛС)...
1
0 / 0 / 0
Регистрация: 06.06.2012
Сообщений: 16
27.01.2014, 15:53  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Но ты, наверняка, как в прошлый раз сказал, что у меня все не так, так и в этот раз то же самое скажешь...
Прошу прощения, в той теме я не смог правильно объяснить что было нужно. Очень постараюсь избегать подобного. И извините что в лс написал.
А за ответ спасибо, то что нужно.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.01.2014, 15:53
Помогаю со студенческими работами здесь

Сортировка матрицы
Что в программе не так ? Помогите плз. Вводица квадратная матрица 19х19.Упорядочить элементы её строк,рассположенных справа вниз от...

сортировка матрицы
Дана матрица(двумерный массив 5х5). В каждой строке матрицы найти наибольший элемент, далее сортировать строки согласно максимального...

Сортировка матрицы
Дана целочисленная матрица А порядка N. Если на побочной диагонали расположены только положительные элементы, то расположить в порядке...

Сортировка матрицы
Метод: Сортировка по убыванию методом обмена без флага перестановки. Помогите разобраться с процедурой.:(

сортировка матрицы
Я по примеру отсортировал все столбцы матрицы по увеличению, методом обмена, потскажите где нужно задать условие чтобы отсортировать только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru