0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 5
1
Delphi 6-7

Нужна сортировка для StringGrid для дробных чисел

26.04.2018, 12:26. Показов 679. Ответов 4
Метки нет (Все метки)

Народ помогите адаптировать данный код, чтобы он мог сортировать дробные числа в StringGrid.
Delphi
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
procedure SortStgingGrid(var stgMatr1: TStringGrid;////Сортировка
                         const SortCol: Integer);
 
var mas: array of array of integer;///изменение на real не помогает
x, y, buf: integer;
Changed: boolean;
 
begin
 
  SetLength(mas, stgMatr1.ColCount, stgMatr1.RowCount);
  for y:= stgMatr1.FixedRows to stgMatr1.RowCount-1 do
    for x:= 0 to stgMatr1.ColCount-1 do
    mas[x,y]:= StrToInt(stgMatr1.Cells[x,y]);
 
  repeat
    Changed:= False;
    for y:= stgMatr1.FixedRows to stgMatr1.RowCount-2 do
      if mas[SortCol, y] > mas[SortCol, y+1] then
        for x:= 0 to stgMatr1.ColCount-1 do
        begin
          buf:= mas[x, y];
          mas[x, y]:= mas[x, y+1];
          mas[x, y+1]:= buf;
          Changed:= True;
        end;
  until not Changed;
 
  for y:= stgMatr1.FixedRows to Form2.stgMatr2.RowCount-0 do
    for x:= 0 to stgMatr1.ColCount-1 do
    Form2.stgMatr2.Cells[x,y]:=FLOATToStr(mas[x,y]);
end;
///////////////////////////////////////////////////////////////////////////////Код для кнопки
procedure TfrmMain.Button4Click(Sender: TObject);
 var
 k,x: integer;   
begin
try
form2.Show;
so:=StrToInt(edit3.Text);
SortStgingGrid(stgMatr1, so );
Except on EConvertError do
begin
MessageDlg('Какое-та ячейка матрицы пуста. Введите в него значение',mtError,[mbCancel],0);
stgMatr1.SetFocus;
end;
end;
end;
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2018, 12:26
Ответы с готовыми решениями:

Сложение дробных чисел в StringGrid
Здравствуйте, помогите пожалуйста, надо чтоб числа в ячейках складывались с дробью (с запятой) ...

Программа для сложения дробных чисел
Можно объяснить как происходит сокращение дроби(в цикле while)? unit Unit1; interface uses ...

Пирамидальная сортировка дробных чисел
Доброго времени суток!Помогите написать код,на основе данного,который будет сортировать ДРОБНЫЕ...

Delphi 7 Stringgrid Нужно сделать цикл для заполнения Stringgrid данными из другого Stringgrid
Нужно чтобы из Stringgrid1 данные переносились в Stringgrid2 Но ТОЛЬКО ПО УСЛОВИЮ Таблицы...

4
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 5
26.04.2018, 12:32  [ТС] 2
Исходник Сортировка матрицы.zip
0
4472 / 3719 / 950
Регистрация: 29.08.2013
Сообщений: 23,994
Записей в блоге: 3
26.04.2018, 12:36 3
100 миллионов раз уже обсуждали
у грида каждая колонка этоStringList, в StringList для сортировки по умолчанию нужно делать StringList.Sort. Но так как он сортирует все как строку, то берем другой метод - CustomSort()

смотрите вот эту тему
Сортировка в TStringGrid.

почему не пользуетесь поиском?
0
0 / 0 / 0
Регистрация: 30.05.2017
Сообщений: 5
26.04.2018, 14:58  [ТС] 4
Моя сортировка работает, только с целыми числами. А с дробями нет.
0
4472 / 3719 / 950
Регистрация: 29.08.2013
Сообщений: 23,994
Записей в блоге: 3
26.04.2018, 15:02 5
это не твоя, это ты спер где то
эта чудо сортировка использует массив внутри себя, видимо ты не все переменные дробными сделал, вот и не работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.04.2018, 15:02
Помогаю со студенческими работами здесь

Сортировка чисел в StringGrid
Дано две кнопки и три StringGrid. При нажатии на первую кнопку заполняется StringGrid1 (1 столбец,...

Изменение разрядности для дробных чисел
С помощью какой функции можно назначить формат числа? К примеру есть число 98,53655456454 или...

Исправить программу для ввода дробных чисел
Помогите исправить данную программу - можно вводить целые числа, а вот дробные не получается. Сам ...

Битовый сдвиг вправо для дробных чисел
(Как мне уже известно) битовый сдвиг вправо на одну "ячейку" аналогичен делению на 2. Например...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru