Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Делфи. Сортировка массива. (http://www.tehnari.ru/f43/t36936/)

Андрей_Студент 11.06.2010 20:45

Делфи. Сортировка массива.
 
Помогите сделать прямой обмен в 2-х мерном массиве!!!

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.

AlexZir 11.06.2010 20:54

А в чем проблема? Заведите двумерный массив, чтение из StringGrid1 производите через вложенные циклы, внешний цикл - по столбцам, внутренний - по строкам. В качестве максимального значения параметра цикла можно указывать соответствующий размер таблицы, а не только SIZE.Естественно, что в свойствах StringGrid нужно указать максимальное количество строк и столбцов равным значению SIZE-1, чтобы не было ошибки при работе с массивом. В алгоритм сортировки также добавьте цикл.

Андрей_Студент 11.06.2010 21:15

Вложений: 1
Проще ща сому прогу скину,помогите чтоб она заработала)

AlexZir 11.06.2010 21:41

Не могу помочь, сижу с мобилы, нет среды под рукой, чтобы прогу редактировать.

Насколько срочно вам нужно прогу сделать? До завтра сроки терпят?

Андрей_Студент 11.06.2010 21:50

Ну эт курсовая неделя срока))Ах да я в делфи не бум бум((то есть не шарю((

AlexZir 11.06.2010 22:01

Какая-то у вас несерьезная курсовая на сортировку массива получается. Давайте ее усложним по максимуму :))

Андрей_Студент 11.06.2010 22:18

Задание таково нужна сортировка (прямого включения,двоичного включения,прямого обмена и быстрая сортировка(QuickSort))


Часовой пояс GMT +4, время: 13:05.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.