Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / паскаль сортировка матрицы / 2 сообщений из 2, страница 1 из 1
28.10.2011, 18:20
    #37503273
mnevseravno
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
паскаль сортировка матрицы
дана задача
отсортировать элементы каждого столбца двумерного массива чисел n*m по неубыванию значений элементов. методом шелла

Код: plaintext
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.
[FIXED][FIXED]program lab6;
Uses Crt;
const nmax =  10 ;

type mas = array [ 1 ..nmax] of integer;
     matr = array [ 1 ..nmax,  1 ..nmax] of integer;

procedure Inputmatrix (var a:matr; n,m:integer);

var i,j:integer;

begin
clrscr;
writeln('введите матрицу');
 for i:= 1  to n do
  for j:= 1  to m do
   begin
    GotoXY (j* 5 ,i+ 5 );
    readln (a[i,j]);
   end;
end;


procedure shell (var a:matr; n,m:integer);
 const t= 5 ;

 var i,j,c,k,s,l:integer;  h: array [ 1 ..t] of integer; v:integer;

begin
 h[ 1 ]:= 9 ; h[ 2 ]:= 5 ; h[ 3 ]:= 3 ; h[ 4 ]:= 2 ; h[ 5 ]:= 1 ;
 for j:= 1  to m do  {заходим в столбец}
  begin
   for l:= 1  to t do
    begin
     k:=h[l];
     s:=-k;
     for i:=k+ 1  to n do
      begin
       v:=A[i,j];
       c:=i-k;
       if s= 0  then begin
       s:=-k;
       s:=s+ 1 ;
       A[s,j]:=v;
      end;
     while (v<A[c,j]) and (c<m) do
      begin
       a[c+k,j]:=a[c,j];
       c:=c-k;
      end;
     a[c+k,j]:=v;
    end;
   end;
  end;

end;

procedure output (var a:matr; n,m:integer);

var i,j:integer;

begin
 clrscr;
  for i:= 1  to n do
   begin
   for j:= 1  to m do
    begin
     GotoXY (j* 8 ,i+ 2 );
     write (a[i,j]);
    end;
   end;
end;

var a:matr; n,m:integer;


Begin
 writeln('сортировка');
 writeln('введите кол-во строк и столбцов');
 readln (n,m);
 Inputmatrix (a,n,m);
 shell (a,n,m);
 Output(a,n,m);
 readln;
End.[/FIXED][/FIXED]

он сортирует не всегда и появляются какие то странные числа которых и не было в матрице. помогите найти ошибку, очень срочно
...
Рейтинг: 0 / 0
29.10.2011, 00:29
    #37503612
С0ВЕСТЬ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
паскаль сортировка матрицы
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / паскаль сортировка матрицы / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]