Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 06.06.2019
Сообщений: 5
1
Delphi 6-7

Упорядочить (переставить) строки матрицы по не возрастанию сумм элементов строк

20.06.2019, 15:56. Просмотров 1078. Ответов 12
Метки нет (Все метки)

Привет. Пожалуйста подскажите в чем ошибка?
Дана матрица A(n,m) случайных чисел, генерированных в диапазоне от -20 до +12. Упорядочить (переставить) строки матрицы по не возрастанию сумм элементов строк.
Вот то что есть:
Delphi
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
const
  rows=3; columns=5;
  type
  matrix1 = array[1..rows,1..columns] of integer;
  arr1 = array[1..rows] of integer;
  var
  matrix:matrix1;
  arr:arr1;
 i,j,k:integer;
   s:integer;
 
  {Создание двумерного массива}
  procedure init(var matrix:matrix1);
  var i,j:integer;
   begin
   for i:=1 to rows do
      for j:=1 to columns do
          matrix[i,j]:=-20+random(33);
   end;
 
  {печать двумерного массива}
  procedure print(matrix:matrix1);
  var i,j:integer;
   begin
   for i:=1 to rows do
    begin
       for j:=1 to columns do
          write(matrix[i,j]:5);
       writeln;
    end;
  end;
 
  {создание одномерного массива}
  procedure init1(var arr:arr1);
  var i,j:integer;
   begin
    for i:=1 to rows do
     begin
      s:=0;
       for j:=1 to columns do
      s:=s+matrix[i,j];
      Writeln(s:2);
       end;
  end;
 
  {Печать одномерного массива}
  procedure print1(arr:arr1);
  var i:integer;
  begin
   for i:=1 to rows do
    begin
     init1(arr);
     Writeln;
    end;
 
  end;
 
  procedure swap(var a, b: integer);
     var
      buf : integer;
       begin
        buf := a;
        a := b;
        b := buf;
       end;
 
  begin
  randomize;
   Writeln('Pechat ishodnoi matrizi');
    init(matrix);
    print(matrix);
  for i := 1 to rows - 1 do
        for k := i + 1 to rows do
            if (arr[i] > arr[k]) then
            begin
                for j := 1 to columns do
                begin
                    swap(matrix[i, j], matrix[k, j]);
                    swap(arr[i], arr[k]);
                end;
            end;
    writeln('*************************');
    for i := 1 to rows do
    begin
        for j := 1 to columns do
            write(matrix[i, j] : 5);
        writeln('  | ', arr[i]);
    end;
  ReadLn;
end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2019, 15:56
Ответы с готовыми решениями:

Упорядочить строки матрицы по возрастанию сумм элементов строк
Дана действительная матрица размера N ×M. Упорядочить строки матрицы по возрастанию сумм элементов...

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

Упорядочить строки матрицы F(10,8) по возрастанию сумм элементов строк
Упорядочить строки матрицы F(10,8) по возрастанию сумм элементов строк.

Упорядочить (переставить) строки матрицы по невозрастанию сумм элементов строк методом простого выбора
Помогите решить задачку. Дана действительная матрица размером ; упорядочить(переставить) строки...

12
3321 / 2864 / 776
Регистрация: 29.08.2013
Сообщений: 19,287
Записей в блоге: 1
20.06.2019, 16:35 2
Цитата Сообщение от ShinyH4 Посмотреть сообщение
Пожалуйста подскажите в чем ошибка?
это у вас надо спросить - в чем ошибка?
0
Модератор
61644 / 46149 / 31846
Регистрация: 18.05.2008
Сообщений: 111,269
20.06.2019, 16:40 3
Лучший ответ Сообщение было отмечено ShinyH4 как решение

Решение

Delphi
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
const rows=3; columns=5;
type  matrix1 = array[1..rows,1..columns+1] of integer;//1 столбец для суммы
procedure init(var matrix:matrix1);
var i,j:integer;
begin
for i:=1 to rows do
 begin
  matrix[i,columns+1]:=0;
  for j:=1 to columns do
   begin
    matrix[i,j]:=-20+random(33);
    inc(matrix[i,columns+1],matrix[i,j]);
   end;
 end;
end;
procedure print(matrix:matrix1;s:string);
var i,j:integer;
begin
writeln(s);
writeln('Сумма':columns*5+6);
for i:=1 to rows do
 begin
  for j:=1 to columns do
  write(matrix[i,j]:5);
  writeln(matrix[i,columns+1]:5);
 end;
end;
procedure swap(var a, b: integer);
var buf : integer;
begin
buf := a;
a := b;
b := buf;
end;
procedure sort(var matrix:matrix1);
var i,j,k:integer;
begin
for i:=1 to rows-1 do
for j:=i+1 to rows do
if matrix[i,columns+1]<=matrix[j,columns+1] then
for k:=1 to columns+1 do swap(matrix[i,k],matrix[j,k]);
end;
var matrix:matrix1;
    i,j,k:integer;
begin
randomize;
init(matrix);
print(matrix,'Исходная матрица');
sort(matrix);
print(matrix,'Строки упорядочены по не возрастанию сумм');
ReadLn
end.
Что бы печатало русский текст
добавьте в uses Windows;
допишите после begin
SetConsoleCP(1251);
SetConsoleOutPutCp(1251);
в свойствах консоли выставьте шрифт Lucida Console.
1
0 / 0 / 0
Регистрация: 06.06.2019
Сообщений: 5
20.06.2019, 17:04  [ТС] 4
Большое спасибо.
0
1803 / 854 / 305
Регистрация: 15.11.2015
Сообщений: 3,374
20.06.2019, 22:05 5
Цитата Сообщение от Puporev Посмотреть сообщение
Что бы печатало русский текст
добавьте в uses Windows;
допишите после begin
SetConsoleCP(1251);
SetConsoleOutPutCp(1251);
Что-то по прежнему печатает закорючки. Реально помогает функция CharToOemBuff(PChar(aStr), PChar(Result), Len);.
0
Модератор
6452 / 4117 / 1786
Регистрация: 21.01.2014
Сообщений: 17,227
Записей в блоге: 3
21.06.2019, 08:43 6
Цитата Сообщение от AzAtom Посмотреть сообщение
Что-то по прежнему печатает закорючки.
AzAtom,
0
Миниатюры
Упорядочить (переставить) строки матрицы по не возрастанию сумм элементов строк  
494 / 396 / 260
Регистрация: 05.04.2013
Сообщений: 1,763
21.06.2019, 12:41 7
D1973, как ты сделал синий фон (паскалевское оформление) в редакторе кода консольного приложения?
0
Модератор
61644 / 46149 / 31846
Регистрация: 18.05.2008
Сообщений: 111,269
21.06.2019, 12:48 8
Tools->Editor Options->Color->вместо Default->Classic
1
Модератор
6452 / 4117 / 1786
Регистрация: 21.01.2014
Сообщений: 17,227
Записей в блоге: 3
21.06.2019, 14:14 9
Цитата Сообщение от AHBAR Посмотреть сообщение
в редакторе кода консольного приложения?
AHBAR, так, как Юрий Борисович уже сказал, только во всех режимах шрифты на Bold поменял, а то бледновато смотрится... Но это будет настройка вообще для редактора кода, неважно, какое приложение: консольное или нет...
1
1803 / 854 / 305
Регистрация: 15.11.2015
Сообщений: 3,374
22.06.2019, 09:45 10
D1973,
0
Миниатюры
Упорядочить (переставить) строки матрицы по не возрастанию сумм элементов строк  
1803 / 854 / 305
Регистрация: 15.11.2015
Сообщений: 3,374
22.06.2019, 09:48 11
Delphi 7. Может, он что-то не так делает? Или не делает?
0
3321 / 2864 / 776
Регистрация: 29.08.2013
Сообщений: 19,287
Записей в блоге: 1
22.06.2019, 09:57 12
в cmd шрифт поменяй на Lucida console
1
1803 / 854 / 305
Регистрация: 15.11.2015
Сообщений: 3,374
22.06.2019, 10:17 13
Трындец...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.06.2019, 10:17

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

Определить сумму элементов каждой строки матрицы и упорядочить номера строк по возрастанию значений найденных сумм
Помогите пожалуйста. Только учусь программировать в Eclipse Java. Дана квадратная матрица размером...

Дана действительная матрица размером n * m. Упорядочить (переставить) по возрастанию сумм элементов строк
#include&lt;iostream&gt; using namespace std: const float n=3; const float m=4; float a; void...

Переставить строки матрицы по возрастанию сумм положительных элементов
Дана целочисленная прямоугольная матрица: 2) переставить строки матрицы по возрастанию сумм...

Создать матрицы А[n,m] и B[n,m]. Определить суммы строк каждой матрицы.Переставить строки по возрастанию сумм строк в каждой матрице.
Создать матрицы А и B. Определить суммы строк каждой матрицы. Переставить строки по...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.