Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 14.10.2017
Сообщений: 8
1

Переставить строки матрицы, чтобы их последние элементы располагались в порядке невозрастания

14.10.2017, 14:59. Показов 1743. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
DELPHI - Дана целочисленная квадратная матрица порядка N. Переставить строки матрицы, чтобы их последние элементы располагались в порядке невозрастания. Сортировка подсчетом - Pascal ABC
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.10.2017, 14:59
Ответы с готовыми решениями:

Переставить строки матрицы, чтобы их последние элементы располагались в порядке невозрастания
Дана целочисленная квадратная матрица порядка N. Переставить строки матрицы чтобы их последние...

Переставить строки матрицы, чтобы их последние элементы располагались в порядке невозрастания
Дана целочисленная квадратная матрица порядка N. Переставить строки матрицы, чтобы их последние...

Переставить строки матрицы, чтобы их последние элементы были в порядке невозрастания (сортировка подсчетом)
Здравствуйте. Помогите решить. Задача:Дана матрица порядка N.Переставить строки матрицы так чтобы...

Переставить строки матрицы так чтобы их последнее элементы были в порядке невозрастания
Задача:Дана матрица порядка N.Переставить строки матрицы так чтобы их последнее элементы были в...

6
Эксперт Pascal/Delphi
6810 / 4567 / 4819
Регистрация: 05.06.2014
Сообщений: 22,438
14.10.2017, 18:06 2
Цитата Сообщение от evgenbard Посмотреть сообщение
DELPHI
Цитата Сообщение от evgenbard Посмотреть сообщение
Pascal ABC
Так delphi или pabc?
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
14.10.2017, 19:25 3
Лучший ответ Сообщение было отмечено evgenbard как решение

Решение

Это не PascalABC, но, думаю, поможет:
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
const
  N = 4;
  M = 7;
 
type
  Data = auto class
    Key, Index: integer; // Key - число (по которому сортируем); Index - индекс столбца, в котором стоит данное число.
  end;
 
var
  &Array: array [0..N - 1, 0..M - 1] of integer;
  Result: array [0..N - 1, 0..M - 1] of integer;
  DataArray: array [0..M - 1] of Data;
 
procedure Print();
begin
  Writeln('Матрица:');
  for var i := 0 to N - 1 do
  begin
    for var j := 0 to M - 1 do
      Write(&Result[i, j]:3);
    Writeln();
  end;
end;
 
procedure Sort(l, r: integer); // Быстрая сортировка.
begin
  var i := l;
  var j := r;
  var m := DataArray[Round((l + r) / 2)].Key;
  
  repeat
    while DataArray[i].Key < m do Inc(i);
    while DataArray[j].Key > m do Dec(j);
    
    if i <= j then 
    begin
      Swap(DataArray[i], DataArray[j]); 
      Inc(i); 
      Dec(j); 
    end;
    
    if l < j then Sort(l, j);
    if i < r then Sort(i, r);
  until i > j;
end;
 
begin
  for var i := 0 to N - 1 do
    for var j := 0 to M - 1 do
      &Array[i, j] := Random(10);
  
  for var j := 0 to M - 1 do
    DataArray[j] := new Data(&Array[0, j], j);
  
  Sort(0, M - 1);
  
  for var j := 0 to M - 1 do
    for var i := 0 to N - 1 do
      Result[i, j] := &Array[i, DataArray[j].Index];
      
  Print();
end.
Сортируем сами объекты класса Data. А затем переписываем столбцы матрицы в нужном порядке в Result.

Добавлено через 24 секунды
Если столбцы длинные - было бы неплохо так сделать.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
14.10.2017, 19:32 4
Volobuev Ilya,
Цитата Сообщение от evgenbard Посмотреть сообщение
Сортировка подсчетом
А у тебя?
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
14.10.2017, 19:40 5
Код сортировки подсчетом:
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
const
  N = 4;
 
var
  &Array: array [0..N] of integer;
  Array2: array [0..N] of integer;
 
begin
  for var i := 0 to N do &Array[i] := Random(N);
  
  PrintLn('Исходный массив: ', &Array);
  
  for var i := 0 to N do Array2[&Array[i]] += 1;
  
  var j := 0;
  for var i := 0 to N do
    for var c := 0 to Array2[i] - 1 do
    begin
      &Array[j] := i;
      Inc(j);
    end;
  
  Print('Отсортированный массив: ', &Array);
end.
0
0 / 0 / 0
Регистрация: 14.10.2017
Сообщений: 8
14.10.2017, 23:48  [ТС] 6
PascABC
0
Alvin Seville
343 / 273 / 134
Регистрация: 25.07.2014
Сообщений: 4,537
Записей в блоге: 9
15.10.2017, 06:28 7
Учитесь изменять код под себя. Читать и понимать его. Это пригодится в будущем.
0
15.10.2017, 06:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2017, 06:28
Помогаю со студенческими работами здесь

Таким образом переставить столбцы матрицы, чтобы их первые элементы располагались в порядке не возрастания
Добрый вечер форумчане. Необходимо написать несколько программ и оформить к ним блок схемы...

Переставить строки матрицы в порядке невозрастания модулей разностей их максимальных и минимальных элементов
Помогите написать программку на с++ пожалуйста, оч буду благодарен)) Такое вот задание: Составить...

Переставить строки матрицы таким образом, чтобы минимальные элементы строк следовали в порядке убывания
В матрице размера 7 × 5 переставить строки таким образом, чтобы минимальные элементы строк...

Переставить строки матрицы так, чтобы элементы последнего столбца стали упорядоченными в убывающем порядке
Дана матрица A целых чисел. Напишите программу, которая переставит строки матрицы А таким образом,...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru