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

Сортировка строк матрицы по убыванию

02.04.2014, 23:43. Показов 1238. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Сортировка строк матрицы по убыванию

Задание было такое, отсортировать по убыванию каждую строку матриц 3x4 и 2x5, с использованием нетипизированного параметра.

В общем у меня получилось такая вот штука:
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
program matrica;
type matrix=array[1..100,1..100] of byte;
var i,j,n,buf,a,b:byte;
mat:matrix;
 
procedure gen(var m; a,b:byte);
begin
 randomize;
 for i:=1 to a do
 for j:=1 to b do
 matrix(m)[i,j]:=random(99);
end;
 
procedure obr(var m; a,b:byte);
begin
 for i:=1 to n do
  for j:=1 to n-i do
   if matrix(m)[i,j]>matrix(m)[i,j+1] then
   begin
    buf:=matrix(m)[i,j];
    matrix(m)[i,j]:=matrix(m)[i,j+1];
    matrix(m)[i,j+1]:=buf;
   end;
end;
 
procedure vyvod(var m; a,b:byte);
begin
 for i:=1 to a do begin
  for j:=1 to b do
  write(matrix(m)[i,j]:4);
  writeln;
  end;
 end;
 
 begin
 write('Vvedite razmer matrici: ');
 readln(a,b);
 writeln;
 gen(mat,a,b);
 writeln('polychivshaysya matrica: ');
 vyvod(mat,a,b);
 writeln;
 obr(mat,a,b);
 writeln('s perepisanumi strokami: ');
 vyvod(mat,a,b);
 readln;
 end.
но у меня что то с сортировкой не выходит, не пойму что не так. Всё вроде по примеру сортировки стандартным обменом делал...

Добавлено через 30 минут
извините за созданную тему, сам разобрался, можете удалить тему админы или модераторы не знаю как правильно

Добавлено через 17 минут
сам разобрался вот результат
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
program matrica;
type matrix=array[1..100,1..100] of byte;
var i,j,n,buf,a,b:byte;
mat:matrix;
f:boolean;
 
procedure gen(var m; a,b:byte);
begin
 randomize;
 for i:=1 to a do
 for j:=1 to b do
 matrix(m)[i,j]:=random(99);
end;
 
procedure obr(var m; a,b:byte);
begin
 for i:=1 to a do
 repeat
  f:=true;
  for j:=1 to b-1 do
   if matrix(m)[i,j+1]>matrix(m)[i,j] then
   begin
    buf:=matrix(m)[i,j];
    matrix(m)[i,j]:=matrix(m)[i,j+1];
    matrix(m)[i,j+1]:=buf;
    f:=false;
   end;
  until f; 
end;
 
procedure vyvod(var m; a,b:byte);
begin
 for i:=1 to a do begin
  for j:=1 to b do
  write(matrix(m)[i,j]:4);
  writeln;
  end;
 end;
 
 begin
 write('Vvedite razmer matrici: ');
 readln(a,b);
 writeln;
 gen(mat,a,b);
 writeln('polychivshaysya matrica: ');
 vyvod(mat,a,b);
 writeln;
 obr(mat,a,b);
 writeln('s perepisanumi strokami: ');
 vyvod(mat,a,b);
 readln;
 end.
Исправлено с 15 по 30 строчку
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2014, 23:43
Ответы с готовыми решениями:

сортировка матрицы по убыванию
помогите нужно написать прогу на паскале сортировка матрицы по убыванию

Сортировка массива по убыванию абсолютных значений наименьших элементов строк
Дана действительная прямоугольная матрица А=|a i,j|m*n .Составить программу,в которой будет ...

Сортировка четных столбцов матрицы по убыванию значений
Приветствую Я оказался в небольшом затруднении, по заданиям написал следующий код, но не работает...

Упорядочить элементы строк матрицы по убыванию
Помогите,пожалуйста. Дана матрица Х. Упорядочить элементы строк матрицы по убыва- нию, а сами...

1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7795 / 4618 / 2831
Регистрация: 22.11.2013
Сообщений: 13,114
Записей в блоге: 1
03.04.2014, 00:25 2
Если пройдет проверку, хорошо. Но, скорее всего, будет завернуто, в таком решении смысла в нетипизированном параметре нет, он не добавляет гибкости. Скорее всего имелось в виду что-то вроде:
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
const
  LIM=100; W=3;
procedure SortInt(var Integers; Size: integer);
var
  m: array [0..65535 div 2 - 1] of integer absolute Integers;
  i, t: integer;
  done: boolean;
begin
  dec(Size);
  repeat
    done:=true;
    for i:=1 to Size do
      if m[i-1]<m[i] then begin
        t:=m[i-1]; m[i-1]:=m[i]; m[i]:=t; done:=false;
      end;
  until done;
end;
var
  a: array [1..3,1..4] of integer;
  b: array [1..2,1..5] of integer;
  i, j: integer;
begin
  Randomize;
  WriteLn('A=');
  for i:=1 to 3 do begin
    for j:=1 to 4 do begin
      a[i,j]:=Random(100); Write(a[i,j]:W);
    end; WriteLn;
    SortInt(a[i],4);
  end;
  WriteLn('B=');
  for i:=1 to 2 do begin
    for j:=1 to 5 do begin
      b[i,j]:=Random(100); Write(b[i,j]:W);
    end; WriteLn;
    SortInt(b[i],5);
  end;
  WriteLn('После сортировки');
  WriteLn('A=');
  for i:=1 to 3 do begin
    for j:=1 to 4 do Write(a[i,j]:W); WriteLn;
  end;
  WriteLn('B=');
  for i:=1 to 2 do begin
    for j:=1 to 5 do Write(b[i,j]:W); WriteLn;
  end;
end.
Обратите внимание, нетипизированный параметр позволил передавать на сортировку разнотипные массивы, процедура сортирует первые Size элементов переданного массива, большего от нее не требуется.
0
03.04.2014, 00:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2014, 00:25
Помогаю со студенческими работами здесь

Упорядочить элементы четных строк матрицы А по убыванию значений
программу решения взаимосвязанных задач: a. расчет элементов квадратной матрицы A = (aij), i,j...

Упорядочить элементы нечетных строк матрицы А по убыванию значений
3) упорядочить элементы нечетных строк матрицы А по убыванию значений; a=(10i+25j)/(5ij)

Упорядочить элементы строк матрицы по убыванию методом линейного выбора
Привет. Помогите пожалуйста. Условие : Дана действительная матрица A размерности nxn. Если...

Упорядочить строки матрицы по убыванию значений наибольших элементов строк
Дана действительная марица размера n*m, упорядочить (переставить) строки матрицы по убыванию...


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

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