0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 33
1

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

31.05.2010, 13:10. Показов 4179. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана матрица А(N,N) вещественных значений. Упорядочить по убыванию элементы каждого столбца матрицы.
Как ее обработать и сделать вывод на монитор не по каждому столбцу, а ввиде матрицы?
например вот так:
1 2 3
4 5 6
7 8 9

Извините меня пожалуйста, что тем с такой задачей очень много.

Добавлено через 6 минут
Вот у меня получилась программа без сортировки! Просто ВВОД и ВЫВОД

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
program massiv;
 
type
matrix=array [1..10,1..10] of real;
 
var
  a:matrix;
  n,i,j:integer;
begin
  writeln ('Введите размеры матрицы n=');
  readln (n);
  writeln ('Ввод элементов матрицы');
        for i:=1 to n do
        for j:=1 to n do
   begin
        writeln ('Введите [',i,j,'] -й элемент матрицы');
        readln (a[i,j]);
   end;
  {Здесь должен быть оператор обработки}
 
 
 
 
    writeln ('матрица а');
        for i:=1 to n do
    begin
        for j:=1 to n do
                writeln (a[i,j]);
                writeln;
    end
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.05.2010, 13:10
Ответы с готовыми решениями:

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

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

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

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

11
Идеи становятся силой...
121 / 121 / 64
Регистрация: 08.12.2009
Сообщений: 445
31.05.2010, 14:15 2
тебе какая сортировка именно нужна?*
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.05.2010, 14:22 3
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
uses crt;
const nmax=20;
var a:array[1..nmax,1..nmax] of real;
    n,i,j,k:byte;
    x:real;
begin
clrscr;
randomize;
repeat
write('Размер матрицы от 1 до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
     a[i,j]:=10*random;
     write(a[i,j]:5:2);
    end;
   writeln;
 end;
writeln;
{сортировка элементов столбцов по убыванию прямым обменом}
for j:=1 to n do
for i:=1 to n-1 do
for k:=i+1 to n do
if a[i,j]<a[k,j] then
 begin
  x:=a[i,j];
  a[i,j]:=a[k,j];
  a[k,j]:=x;
 end;
writeln('Столбцы упорядочены по убыванию:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:5:2);
  writeln;
 end;
readln
end.
0
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 33
31.05.2010, 15:02  [ТС] 4
Отсортировать по убыванию элементы каждого столбца матрицы. Вверху большее значение, внизу меньшее. Желательно чтобы прога не зависала если в матрице будут отрицательные элементы и нули

Добавлено через 37 минут
Возникли вопросы по программе:
uses crt; - это как я понял модуль программы!?
clrscr; - это вроде очистка экрана. Если нет, то исправьте меня пожалуйста
randomize и randome - не знаю для чего это

Все эти операторы я даже и не проходил. А без них программу запустить нельзя?
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.05.2010, 15:08 5
Есть в компиляторе такая кнопочка Help называется, там много любопытного.
0
Идеи становятся силой...
121 / 121 / 64
Регистрация: 08.12.2009
Сообщений: 445
31.05.2010, 15:11 6
uses crt; - модуль который подключает функцию очистки экрана (clrscr , readkey).
randomize и randome - используется для заполнения массива случайными числами, генератор случайных чисел.
0
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 33
31.05.2010, 15:19  [ТС] 7
А без модуля и генератора случайных чисел можно прогу сделать? Нужно ввести с клавиаткры свои значения (отрицательные, положительные и нули) посмотреть чтобы программа не зависала
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.05.2010, 15:22 8
Судя по глубине вопросов прога у Вас по любому зависнет...
0
4 / 4 / 5
Регистрация: 31.05.2010
Сообщений: 16
31.05.2010, 15:22 9
вот еще вариант сортировки))) может пригодится


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
uses crt;
type tmas=array[1..100] of real;
     tmas2=array[1..100,1..100] of real;
procedure shellsort(var a:tmas; n:word);
 var i,j,h:word;
  temp:real;
 begin
  h:=n div 2;
  while h>0 do begin
   for i:=h to n-h+1 do
    begin
     j:=i; temp:=a[i];
     while (j>h) and (temp>a[j-h]) do begin
      a[j]:=a[j-h];
      dec(j,h);
     end;
     a[j]:=temp;
     end;
     h:=h div 2;
    end;
  end;
var f:text; mas:tmas2;mas2:tmas;b,i,m,n,j,k:word;
begin
 clrscr;
 assign(f,'input4.txt');
 reset(f);
 read(f,m,n);
  for i:=1 to m do
   for j:=1 to n do
   begin
    read(f,mas[i,j]);
   end;
 close(f);
 for i:=1 to n do
  begin
   for j:=1 to m do
    begin
     mas2[j]:=mas[j,i];
     k:=i;
    end;
  shellsort(mas2,m);
   for j:=1 to m do
    begin
     mas[j,k]:=mas2[j];
    end;
   end;
  for i:=1 to m do
  begin
   writeln;
    for j:=1 to n do
     write(mas[i,j]:3:0);
  end;
 readln;
end.
0
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 33
31.05.2010, 15:36  [ТС] 10
вооо... Всем большое спасибо. Додумкал и сделал чтоб с клавы вводить


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
program var9;
 
const nmax=20;
var a:array[1..nmax,1..nmax] of real;
    n,i,j,k:byte;
    x:real;
begin
 
repeat
write('Размер матрицы от 1 до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица*:');
for i:=1 to n do
 begin
   for j:=1 to n do
    begin
      write('Введите а[',i,',',j,']=',a[i,j]);
      readln (a[i,j]);
    end;
   writeln;
 end;
writeln;
{Сортировка элементов столбцов по убыванию}
for j:=1 to n do
for i:=1 to n-1 do
for k:=i+1 to n do
if a[i,j]<a[k,j] then
 begin
  x:=a[i,j];
  a[i,j]:=a[k,j];
  a[k,j]:=x;
 end;
writeln('Столбцы упорядочены по убыванию:');
for i:=1 to n do
 begin
  for j:=1 to n do
  write(a[i,j]:5:2);
  writeln;
 end;
readln
end.
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
31.05.2010, 15:37 11
AlexOk, Что ты это накалякал? И на это ума нет?
0
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 33
31.05.2010, 15:47  [ТС] 12
Да я в программировании не оч. Извините меня, если я позорю технологию програмирования, но я же только учусь. мне нужна программа которая будет упорядочивать по убыванию элементы каждого столбца матрицы. Я попробовал сделать ее при помощи ваших программ с небольшим изменением. т.к. модули я не проходил. ну вот так вот и вышло. Но ведь она работает!
0
31.05.2010, 15:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.05.2010, 15:47
Помогаю со студенческими работами здесь

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

Сортировка матрицы
Добрый день. Подскажите пожалуйста кое-что по сортировке. Матрицу нужно сортировать так, чтобы...

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

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


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

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

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