Механизм сортировки элементов массива простым выбором

var Form1: TForm1; var n:integer; a:array[1..100] of integer; min,nmin,i,j:integer; implementation {$R *.dfm} procedure TForm1.FormDblClick(Sender: TObject); var s:string; var i:integer; begin Button1.Enabled:=False; Button2.Enabled:=False; s:=InputBox('Введите размер массива', '',''); n:=StrToInt(s); StringGrid1.ColCount:=n+1; StringGrid2.ColCount:=n+1; for i:=1 to n do begin StringGrid1.Cells[i,0]:=IntToStr(i); StringGrid2.Cells[i,0]:=IntToStr(i); end; StringGrid1.Cells[0,1]:='Шаг1'; for i:=1 to n do begin s:=InputBox('Введите элемент массива', '',''); a[i]:=StrToInt(s); StringGrid1.Cells[i,1]:=IntToStr(a[i]); end; StringGrid2.Cells[0,0]:='min'; Button1.Enabled:=True; end; procedure TForm1.FormCreate(Sender: TObject); begin i:=0; end; procedure TForm1.Button1Click(Sender: TObject); var otv:string; begin Button2.Enabled:=True; Button1.Enabled:=False;   if i<n-1 then begin i:=i+1; for j:=1 to n do StringGrid2.Cells[j,1]:=''; for j:=i to n do StringGrid2.Cells[j,1]:=StringGrid1.Cells[j,i]; min:=a[i]; nmin:=i; StringGrid2.Cells[0,1]:=IntToStr(min); RichEdit1.Text:='min='+IntToStr(a[i])+' позиция'+IntToStr(nmin)+Chr(13);   for j:=i to n do begin RichEdit1.Text:=RichEdit1.Text+IntToStr(a[j])+'<'+IntToStr(min)+'?'; if a[j]<min then begin min:=a[j]; nmin:=j; RichEdit1.Text:=RichEdit1.Text+' да min='+IntToStr(a[j])+' позиция'+IntToStr(nmin)+Chr(13); StringGrid2.Cells[0,1]:=IntToStr(min); end else RichEdit1.Text:=RichEdit1.Text+' нет'+Chr(13); end; otv:='Минимальный элемент '+IntToStr(min)+ 'на позиции '+IntToStr(nmin); ShowMessage(otv); end else begin ShowMessage('Массив отсортирован'); for j:=1 to n do StringGrid2.Cells[j,1]:=''; Button1.Enabled:=false; Button2.Enabled:=False; end; end; procedure TForm1.Button2Click(Sender: TObject); var c:integer; var j:integer; otv:string; begin Button1.Enabled:=True; Button2.Enabled:=False; otv:='Меняем местами элементы '+IntToStr(a[i])+' и '+IntToStr(a[nmin]); ShowMessage(otv); c:=a[i]; a[i]:=a[nmin]; a[nmin]:=c; StringGrid1.RowCount:=n+1; StringGrid1.Cells[0,i+1]:='Шаг'+IntToStr(i+1); for j:=1 to n do StringGrid1.Cells[j,i+1]:=IntToStr(a[j]); for j:=1 to n do StringGrid2.Cells[j,1]:=''; for j:=i+1 to n do StringGrid2.Cells[j,1]:=IntToStr(a[j]); end; procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); var q,w:Integer; begin StringGrid1.Canvas.Brush.Color:=clRed; for q:=1 to n do for w:=1 to q do if (ACol=w) and (ARow=q) then StringGrid1.Canvas.FrameRect(Rect); end; end.
Процедура, демонстрирующая сущность сортировки элементов массива простым выбором








Дата добавления: 2015-01-26; просмотров: 1250;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.