![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Сама программа находится во вложенном файле.
Button1 - Произвольный набор чисел, Button2 - Сортировка 2ого столбца по убыванию. Вопрос в том чтобы сортировка начиналась со второй строки. Чтобы 1ая строка вообще не задействовалась в этой операции. Т.к. cell[1,0] должна быть типа String. Спасибо за помощь ![]() Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; StringGrid1: TStringGrid; procedure FormCreate(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; type a=array [1..5] of integer; m=array [1..5] of a; const n=5; var Form1: TForm1; mas:m; implementation {$R *.dfm} procedure refreshtable; var i,j:byte; begin for I := 1 to n do for j := 1 to n do form1.StringGrid1.Cells[j-1,i-1]:=inttostr(mas[i,j]); // тут укажи свою форму end; procedure TForm1.Button1Click(Sender: TObject); var i,j:byte; s:integer; begin for I := 1 to n do begin s:=0; for j := 1 to n do begin mas[i,j]:=Random(100); s:=s+mas[i,j]; end; StringGrid1.Cells[5,i-1]:=inttostr(s); end; refreshtable; end; function mySort(List: TStringList; first, second: Integer): Integer; // это функция сортировки function f(index: integer): integer; begin result := StrToInt(List.Strings[index]) end; begin result := f(second) - f(first) end; procedure TForm1.Button2Click(Sender: TObject); var ts: TStringList; i,j: integer; begin ts := TStringList.Create; try with StringGrid1 do begin ts.Assign(cols[1]); // Получаем элементы очередной строки ts.CustomSort(mySort); // сортируем их как числа по убыванию cols[1].Assign(ts); // возвращаем назад в Грид end; finally ts.Free; end; end; procedure TForm1.FormCreate(Sender: TObject); begin Randomize; end; end. Последний раз редактировалось Admin, 07.05.2012 в 15:20. |
#2
|
||||
|
||||
![]() Глядишь на такой код, и желание помогать как-то не возникает. Его ведь первоначально в читабельный вид привести нужно, а неохота.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#3
|
|||
|
|||
![]() Новичок) уж чему в универе научили..
|
#4
|
||||
|
||||
![]() Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |