Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка в StringGrid, пузырек)) 
:(
    Опции темы
Ripper
Дата 22.2.2007, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 1
Всего: 23



Дали одно задание по инфе, я совсем забыл материал, времени долго копатся нету, пробывал сам сделать но че то и криво и не совсем так работает, вообщем..
Есть StringGrid,  2 строки и n столбцов (кол-во столбцов из edit-a берется)
1 строка заполнена цифрами 1,2,3,4.... т.е. по порядку
2 строка заполнена рандомом
при клике на 2 строку и x-ый стобец слева этой ячейки числа должны отсортироватся по возрастанию, справа по убыванию, метод пузыречка сойдет.
+ ко всему этому, добавили, чтобы числа грузились из файла, сохранялись в файл, и все это в менюшке сверху. боже
Сортровка по возрастанию получилась а по убыванию нет)) но я просто совсем забыл че и как.
Незнаю как загрузить из файла цифорки и вообще что препод имел ввиду, загруживать все (т.е. и 1 строку и 2, после сортировки) или нет..
И ещё нужно чтобы как бы номер каждого рандомного числа (т.е. соответвенно номер ячейки сверху) был жестко связан с самим числом
т.е.
1 2 3 4 5 
20 10 5 3 2
После сортировки
5 4 3 2 1
2 3 5 10 20
Вроде так. Вообщем вот основное :
Код

procedure TForm1.ButtonClick(Sender: TObject);
var i:integer;
begin
if ( (Edit1.Text='') or (Edit2.Text='')) then
 begin
  ShowMessage('Âñå ïîëÿ äîëæíû áûòü çàïîëíåíû!');
  exit;
 end;
 StringGrid.ColCount:=StrToInt(Edit1.Text);
 for i:=0 to StringGrid.ColCount-1 do
  begin
   StringGrid.Cells[i,0]:=IntToStr(i+1);
   StringGrid.Cells[i,1]:=IntToStr(random(StrToInt(Edit2.Text)));
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Randomize;
end;


procedure TForm1.StringGridSelectCell(Sender: TObject; ACol, ARow: Integer;
  var CanSelect: Boolean);
var i,j,k:integer;
begin
 SelectedCol:=ACol;
 for i:=0 to SelectedCol-2 do
 begin
  for j:=0 to (SelectedCol-2)-i do
   if (StrToInt(StringGrid.Cells[j,1])>StrToInt(StringGrid.Cells[j+1,1]))
    then
    begin
     k:=StrToInt(StringGrid.Cells[j,1]);
     StringGrid.Cells[j,1]:=StringGrid.Cells[j+1,1];
     StringGrid.Cells[j+1,1]:=IntToStr(k);

     k:=StrToInt(StringGrid.Cells[j,0]);
     StringGrid.Cells[j,0]:=StringGrid.Cells[j+1,0];
     StringGrid.Cells[j+1,0]:=IntToStr(k);

    end;
   end;
 i:=0; j:=0;
 SelectedCol:=Acol;

for i:=SelectedCol+1 to StringGrid.ColCount do
 begin
  for j:=SelectedCol+1 to (StringGrid.ColCount)-i do
   if (StrToInt(StringGrid.Cells[j,1])<StrToInt(StringGrid.Cells[j+1,1]))
    then
    begin
     k:=StrToInt(StringGrid.Cells[j,1]);
     StringGrid.Cells[j,1]:=StringGrid.Cells[j+1,1];
     StringGrid.Cells[j+1,1]:=IntToStr(k);

     k:=StrToInt(StringGrid.Cells[j,0]);
     StringGrid.Cells[j,0]:=StringGrid.Cells[j+1,0];
     StringGrid.Cells[j+1,0]:=IntToStr(k);

    end;
   end;

end;

Помогите сделать это по нормальному, и + из файла чтобы загружалось. Я даже не представляю щас... так чтоли данные должны хранится в файле:
1-2
2-42
3-33
4-234
и после сортировки как нибудь так
3-5
5-6
2-7
1-8

Ну хотя бы так, незнаю как это сделать



--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
Beltar
Дата 22.2.2007, 23:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 3
Всего: 7



А встроенной сортировки разве нет или я чего-то путаю?


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
Ripper
Дата 23.2.2007, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Lonely soul...
**


Профиль
Группа: Участник
Сообщений: 920
Регистрация: 30.6.2004
Где: г. Москва

Репутация: 1
Всего: 23



нету вроде или я незнаю
но во всяком случае нужно именно пузырьком


--------------------
"Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом
PM MAIL ICQ   Вверх
ivan219
Дата 23.2.2007, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Ну ты сначало всё в массив збрось потом с массивом по работай примеры есть и из массива в StringGrid перекинь.
Примеры помойму в Алгоритмах находятся http://forum.vingrad.ru/index.php?showforum=13

Добавлено @ 12:40 
А данные в фаил можно через пробей записывать 1 3 5 2 7 smile 
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0402 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.