powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / паскаль сортировка матрицы
2 сообщений из 2, страница 1 из 1
паскаль сортировка матрицы
    #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
паскаль сортировка матрицы
    #37503612
Фотография С0ВЕСТЬ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / паскаль сортировка матрицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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