![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Новичок
Джуниор
Регистрация: 24.02.2014
Сообщений: 1
|
![]()
Помогите,пожалуйста.У меня уже есть готовая программа,мне только надо сделать еще одну кнопку,которая будет ставить кнопки "сортировка массива" и "сортировка обмена" симметрично.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,Math, Grids; type TForm1 = class(TForm) lbl1: TLabel; lbl2: TLabel; lbl3: TLabel; edt1: TEdit; strngrd1: TStringGrid; btn1: TButton; btn2: TButton; edt2: TEdit; edt3: TEdit; lbl4: TLabel; lbl5: TLabel; btn3: TButton; Label1: TLabel; btn4: TButton; lbl6: TLabel; procedure btn3Click(Sender: TObject); procedure btn1Click(Sender: TObject); procedure btn2Click(Sender: TObject); procedure FormActivate(Sender: TObject); procedure btn4Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btn3Click(Sender: TObject); begin close; end; procedure TForm1.btn1Click(Sender: TObject); var i,k:Integer; begin Randomize; k:=StrToInt(edt1.text); strngrd1.colcount:=k; for i:=1 to strngrd1.colcount do strngrd1.cells[i-1,1]:=IntToStr(randomrange(StrToInt(edt 2.text), StrToInt(edt3.text)));; strngrd1.Width:=strngrd1.ColCount*( strngrd1.DefaultColWidth+1)+4; strngrd1.Cells[i,0] := Edt1.Text; for i:=1 to strngrd1.colcount do strngrd1.Cells[i-1,0]:=inttostr(i); end; procedure TForm1.btn2Click(Sender: TObject); var a:array[1..10] of integer; min:integer; buf:integer; i,k,j:integer; begin for i:=1 to strngrd1.colcount do strngrd1.cells[i-1,2]:=strngrd1.cells[i-1,1]; label1.caption:=''; for i:=0 to strngrd1.colcount-2 do begin min:=i; for j:=i+1 to strngrd1.colcount do if StrToInt(strngrd1.cells[j,2])<strtoint(strngrd1.cells[min,2]) then min:=j; buf:=strtoint(strngrd1.cells[i,2]); strngrd1.cells[i,2]:=strngrd1.cells[min,2]; strngrd1.cells[min,2]:=inttostr(buf); for k:=1 to strngrd1.colcount-1 do label1.caption:=label1.caption+ ' '+ strngrd1.cells[k,2]; label1.caption:=label1.caption+ #13; end; label1.caption:= label1.caption+ #13 + 'массив отсортирован'; strngrd1.Cells[i-1,2]:=inttostr(buf) ; end; procedure TForm1.FormActivate(Sender: TObject); var i:Integer; begin for i:=1 to strngrd1.colcount do strngrd1.Cells[i-1,0]:=inttostr(i); end; procedure TForm1.btn4Click(Sender: TObject); var k,i,buf: Integer; changed:Boolean; begin for i:=1 to strngrd1.colcount-1 do strngrd1.cells[i-1,2]:=strngrd1.cells[i-1,1]; lbl6.caption:=''; repeat changed:= False; for k:=1 to strngrd1.colcount-2 do if StrToInt(strngrd1.cells[k-1,2])>strtoint(strngrd1.cells[k,2]) then begin buf:= strtoint(strngrd1.cells[k-1,2]); strngrd1.cells[k-1,2]:=strngrd1.cells[k,2]; strngrd1.cells[k,2]:=inttostr(buf); changed:=True; end; for i:=1 to strngrd1.colcount do lbl6.Caption:=lbl6.Caption+ ' ' + strngrd1.cells[i,2]; lbl6.caption:=lbl6.caption+ #13; until not changed; lbl6.caption:= lbl6.caption+ #13 + 'массив отсортирован'; end; end. |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как написать свою процедуру? | theYozh | Помощь студентам | 10 | 08.03.2009 11:18 |
Помогите правильно написать процедуру | seasanya | Microsoft Office Access | 1 | 26.01.2009 22:02 |
Помогите написать процедуру на кнопку | evrey | Общие вопросы Delphi | 1 | 16.06.2008 22:25 |
Как правильно написать процедуру | Cold Went | Компоненты Delphi | 1 | 29.04.2008 14:21 |