Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2010, 21:20   #1
Gregorian
 
Регистрация: 23.04.2009
Сообщений: 9
Восклицание StringGrid сортировка

Код:
var
  Form1: TForm1;
  i,j:integer;
implementation

{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
		begin
			with StringGrid1 do
				for i:=0 to ColCount -1 do
					for j:=0 to RowCount -1 do
					cells[i,j]:=inttostr(random(50)+1);
		end;

procedure TForm1.Button2Click(Sender: TObject);
var temp:integer;
begin
     with StringGrid1 do
			for i:=1 to ColCount -1 do
					for j:=0 to RowCount -1 do
            if StrToInt(cells[i,j])>StrToInt(cells[i-1,j]) then
              begin
                temp:=StrToInt(cells[i-1,j]);
                cells[i-1,j]:=cells[i,j];
                cells[i,j]:=IntToStr(temp);
             end;
end;

begin
  randomize;
end.
Первой кнопкой формируем массив рандомных чисел, второй кнопкой сортируем построчно в порядке убывания, тесть первый элемент строки - самая большая цифра этой строки, а последняя - самая маленькая. На кнопку сортировки надо нажать несколько раз, что бы цыфры переползли на свое место

Помогите плиз:
1.сортировка происходит с шагом на одну клетку, как сделать что бы они выстроились в нужную последовательность после 1 нажатия?
2. нужно сосчитать сумму чисел в строке и выстроить строки по возрастанию этого самого числа

Последний раз редактировалось Gregorian; 26.02.2010 в 05:50.
Gregorian вне форума Ответить с цитированием
Старый 26.02.2010, 08:33   #2
KoliyR
Пользователь
 
Регистрация: 01.09.2009
Сообщений: 55
По умолчанию

Цитата:
Сообщение от Gregorian Посмотреть сообщение
Код:
procedure TForm1.Button2Click(Sender: TObject);
var temp:integer;
begin
     with StringGrid1 do
			for i:=1 to ColCount -1 do
					for j:=0 to RowCount -1 do
            if StrToInt(cells[i,j])>StrToInt(cells[i-1,j]) then
              begin
                temp:=StrToInt(cells[i-1,j]);
                cells[i-1,j]:=cells[i,j];
                cells[i,j]:=IntToStr(temp);
             end;
end;
Для начала предлагаю cells[i,j]:=IntToStr(temp); вынести из условия
и for j:=0 to RowCount -1 do изменить на for j:=i to RowCount -1 do
перед вторым циклом заносить в temp первое значение


примерно так, но я сейчас не могу проверить
Обучение, задания по Делфи http://KoliyR.tk
KoliyR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка в StringGrid с параметрами строки Xataby4 Общие вопросы Delphi 13 16.04.2013 01:24
Сортировка в Stringgrid сер4ей Помощь студентам 1 24.02.2010 14:40
Сортировка в StringGrid Ch00kan0ff Общие вопросы C/C++ 2 24.03.2009 18:09
StringGrid и сортировка dee_lv Помощь студентам 5 02.05.2008 17:51