Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.05.2012, 14:44
gamezeldol gamezeldol вне форума
Прохожий
 
Регистрация: 21.02.2012
Сообщения: 16
Репутация: 10
По умолчанию Программа по сортировке чисел

Сама программа находится во вложенном файле.
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.
Админ: Пользуемся тегами для оформления кода, иначе последуют санкции!
Вложения
Тип файла: rar сортировка.rar (190.3 Кбайт, 17 просмотров)

Последний раз редактировалось Admin, 07.05.2012 в 15:20.
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:31.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025