11.06.2010, 20:45 | #1 (permalink) |
Member
Регистрация: 02.06.2010
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Делфи. Сортировка массива.
procedure TForm1.Button2Click(Sender: TObject); const SIZE=100; var a:array[1..SIZE] of integer; k:integer; // текущий элемент массива i:integer; // индекс для ввода и вывода массива changed:boolean; // TRUE, если в текущем цикле были обмены buf:integer; // буфер для обмена элементов массива begin // ввод массива for i:=1 to SIZE do a[i] := StrToInt(StringGrid1.Cells[i-1,0]); label3.caption:=''; // сортирвка массива repeat changed:=FALSE; // пусть в текущем цикле нет обменов for k:=0 to SIZE-1 do if a[k] > a[k+1] then begin // обменяем k-ый и k+1-ый элементы buf := a[k]; a[k] := a[k+1]; a[k+1] := buf; changed := TRUE; end; // вывод массива for i:=0 to SIZE do Label3.caption:=label3.caption+' '+IntTostr(a[i]); Label3.caption:=label3.caption+#13; until not changed; // если не было обменов, значит // массив отсортирован Label3.caption:=label3.caption+#13+'Массив отсортирован.'; end; end. |
11.06.2010, 20:45 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Раньше на форуме подобные обсуждения уже создавались, можете обратить внимание Сортировка по алфавиту Сортировка по алфавиту(помогите) Сортировка в Паскале Сортировка в Pascal |
11.06.2010, 20:54 | #2 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
А в чем проблема? Заведите двумерный массив, чтение из StringGrid1 производите через вложенные циклы, внешний цикл - по столбцам, внутренний - по строкам. В качестве максимального значения параметра цикла можно указывать соответствующий размер таблицы, а не только SIZE.Естественно, что в свойствах StringGrid нужно указать максимальное количество строк и столбцов равным значению SIZE-1, чтобы не было ошибки при работе с массивом. В алгоритм сортировки также добавьте цикл.
__________________
Убить всех человеков! |
11.06.2010, 21:41 | #4 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Не могу помочь, сижу с мобилы, нет среды под рукой, чтобы прогу редактировать.
Насколько срочно вам нужно прогу сделать? До завтра сроки терпят?
__________________
Убить всех человеков! |
11.06.2010, 21:50 | #5 (permalink) |
Member
Регистрация: 02.06.2010
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ну эт курсовая неделя срока))Ах да я в делфи не бум бум((то есть не шарю((
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
11.06.2010, 22:01 | #6 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Какая-то у вас несерьезная курсовая на сортировку массива получается. Давайте ее усложним по максимуму
__________________
Убить всех человеков! |
11.06.2010, 22:18 | #7 (permalink) |
Member
Регистрация: 02.06.2010
Сообщений: 15
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задание таково нужна сортировка (прямого включения,двоичного включения,прямого обмена и быстрая сортировка(QuickSort))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|