Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сортировка простым выбором. / 1 сообщений из 1, страница 1 из 1
17.04.2011, 16:39
    #37220454
thxalol
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка простым выбором.
Очень нужна помощь. Требуется отсортировать столбцы матрицы по неубыванию положительных сумм. Сортировка простым выбором. У меня здесь какие-то косяки. Не могу понять где, с виду вроде все нормально, подскажите как быть.
Код: 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.
 interface 
 type 
Treal=real;
Tint=integer;
Tarray= array  [ 0 .. 0 ]  of  TInt;
PArray=^TArray;
Tmatr= array  [ 0 .. 0 ]  of  PArray;
Pmatr=^Tmatr;
TUnSignedInt=word;
TError=TUnSignedInt;
TIndex=TunSignedInt;
Tkey=TUnSignedInt;
CMatrix= object 

 private 
matr:Pmatr;
 (***) 
 procedure  CMatrix.sort;
 type 
Tarr= array  [ 1 .. 1 ]  of  Tint;
Parr=^Tarr;
 var 
i,j,p,k,c,b:TUnSignedInt;
buf,x:TInt;
A:PArr;
need:longint;
flag:boolean;
 begin 
     need:=longint(n*sizeof(PArr));
      if  need>MaxAvail  then 
     flag:=false
      else 
      begin 
           getmem(A,need);
            for  j:= 1   to  n  do 
            begin 
                 for  i:= 1   to  m  do 
                 begin 
                       if  matr^[i]^[j]> 0   then 
                      A^[j]:=A^[j]+matr^[i]^[j];
                 end ;
           end ;
      end ;

(сама сортировка)

      for  c:= 1   to  n- 1   do 
      begin 
          k:=c;
          x:=A^[c];
           for  b:=c+ 1   to  n  do 
           begin 
                if  A^>x  [b]then 
                begin 
               x:=A^;
               k:=b;
                [b]end ;
           end ;
     x:=A^[k];
     A^[k]:=A^[c];
     A^[c]:=x;
      for  k:= 1   to  m  do 
      begin 
          buf:=matr^[k]^;
          mAtr^[k]^[b]:=mAtr^[k]^[c];
          mAtr^[k]^[c]:=Buf;
      [b]end ;
      end ;
 end ;
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Сортировка простым выбором. / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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