Çàî÷íîå äèñòàíöèîííîå îáðàçîâàíèå ñ ïîëó÷åíèåì ãîñóäàðñòâåííîãî äèïëîìà ÷åðåç Internet










Ïîëó÷èòü èíôîðìàöèþ î ïîñòóïëåíèè
 
Ãëàâíàÿ Íîâîñòè Êàðòà ñàéòà Ôîòîàëüáîì Ãîñòåâàÿ êíèãà Êîíòàêòû

 

Óïðàæíåíèå íà ëèíåéíóþ ñîðòèðîâêó ìàññèâà

Óïðàæíåíèå. Ñîçäàéòå ïðèëîæåíèå, êîòîðîå ïðåäëàãàåò ïîëüçîâàòåëþ ââåñòè ðàçìåð ìàññèâà è ñîçäàòü ìàññèâ ñëó÷àéíûõ öåëûõ ÷èñåë, à çàòåì, èñïîëüçóÿ ïåðåêëþ÷àòåëè, óêàçàòü ïîðÿäîê ñîðòèðîâêè (ïî íåóáûâàíèþ, ïî íåâîçðàñòàíèþ), âûïîëíèòü ñîðòèðîâêó è ïðîñìîòðåòü îòñîðòèðîâàííûé ìàññèâ.

Ñîçäàéòå ôîðìó, äëÿ ñâîéñòâà Caption çàäàéòå çíà÷åíèå «Ëèíåéíàÿ ñîðòèðîâêà ìàññèâà». Íà ôîðìå ðàçìåñòèòå êîìïîíåíòû Editl, Edit2 è Edit3, êíîïêó Buttonl, äëÿ ñâîéñòâà Caption êîòîðîé çàäàéòå çíà÷åíèå «Ñîçäàòü ìàññèâ». Óäàëèòå òåêñò Editl, Edit2, Edit3 èç ñîîòâåòñòâóþùèõ êîìïîíåíòîâ. Ðàçìåñòèòå íà ôîðìå êîìïîíåíòû Labell, Label2 è çàäàéòå äëÿ èõ ñâîéñòâ Caption çíà÷åíèÿ «×èñëî ýëåìåíòîâ» è «Èñõîäíûé ìàññèâ» ñîîòâåòñòâåííî.

Íèæå îáúåêòà Edit3 íà ôîðìå ðàçìåñòèòå ïàíåëü RadioGroupl, äëÿ ñâîéñòâà Caption êîòîðîé çàäàéòå çíà÷åíèå «Ïîðÿäîê ñîðòèðîâêè». Äëÿ âûáîðà ïîðÿäêà ñîðòèðîâêè çàäàéòå äâà ïåðåêëþ÷àòåëÿ â ïàíåëè RadioGroupl è ïîäïèñè ê íèì. Âûáðàâ â Èíñïåêòîðå îáúåêòîâ êîìïîíåíò RadioGroupl, íà ñòðàíèöå ñâîéñòâ âûáåðèòå ñâîéñòâî Items, çàòåì â îêíå String List Editor ââåäèòå ñïèñîê ýëåìåíòîâ: Ïî íåâîçðàñòàíèþ, Ïî íåóáûâàíèþ è íàæìèòå ÎÊ. Ñïðàâà îò ïàíåëè RadioGroupl ðàçìåñòèòå êíîïêó Button2, äëÿ ñâîéñòâà Caption êîòîðîé çàäàéòå çíà÷åíèå «Îòñîðòèðîâàòü».

 íèæíåé ÷àñòè ôîðìû ðàçìåñòèòå Edit3 äëÿ âûâîäà îòñîðòèðîâàííîãî ìàññèâà. Íàä îáúåêòîì Edit3 ðàçìåñòèòå îáúåêò Label3, äëÿ ñâîéñòâà Caption êîòîðîãî çàäàéòå çíà÷åíèå «Îòñîðòèðîâàííûé ìàññèâ». Âûðîâíÿéòå êîìïîíåíòû íà ôîðìå. Çàôèêñèðóéòå ïîëîæåíèå êîìïîíåíòîâ íà ôîðìå, âûáðàâ â ìåíþ Delphi êîìàíäó Edit – Lock Controls.

Ñîõðàíèòå ôàéë ïðîåêòà è ïðîãðàììíîãî ìîäóëÿ. Àíàëîãè÷íî ïðåäûäóùåìó ïðèìåðó, ïðåæäå ÷åì ñîçäàâàòü îáðàáîò÷èêè ñîáûòèé ùåë÷êà ìûøüþ ïî êíîïêàì Buttonl è Button2, îïèøèòå ãëîáàëüíûå ïåðåìåííûå öåëîãî òèïà N è I, ãäå N – ðàçìåð ìàññèâà, à I – ïîðÿäêîâûé íîìåð ýëåìåíòà ìàññèâà, à òàêæå Ì – äèíàìè÷åñêèé ìàññèâ öåëûõ ÷èñåë.

var
Forml: TForml;
N, I : integer;
M : array of integer; {îïèñàíèå äèíàìè÷åñêîãî ìàññèâà öåëûõ ÷èñåë}

Äëÿ ïðåäóïðåæäåíèÿ îøèáêè ââîäà â îêíî Editl íå÷èñëîâîãî çíà÷åíèÿ ââåäèòå îáðàáîòêó ñîáûòèÿ íàæàòèÿ êëàâèøè â îêíå Editl, ÷òîáû çàïðåòèòü ââîä ëþáûõ ñèìâîëîâ, êðîìå öèôð îò 0 äî 9. Äëÿ ñîçäàíèÿ ïðîöåäóðû îáðàáîò÷èêà ñîáûòèÿ íàæàòèÿ êëàâèøè â îêíå Editl âûáåðèòå â îêíå Èíñïåêòîðà îáúåêòîâ êîìïîíåíò Editl è íà ñòðàíèöå Events (Ñîáûòèÿ) äâàæäû ùåëêíèòå ëåâîé êíîïêîé ìûøè íà ïóñòîì ïîëå ñïèñêà â ñîáûòèè OnKeyPress. Ïîñëå ýòîãî â òåêñò ïðîöåäóðû îáðàáîò÷èêà ñîáûòèÿ äîáàâüòå ñëåäóþùèé îïåðàòîð: if not (Key in ['0'..'9']) then Key:=#O;. Ïîëíûé òåêñò ïðîöåäóðû îáðàáîò÷èêà ñîáûòèÿ áóäåò âûãëÿäåòü ñëåäóþùèì îáðàçîì:

procedure EditlKeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9']) then Key:=#0;
end;

Ñîçäàíèå ìàññèâà öåëûõ ÷èñåë îïèøèòå â ïðîöåäóðå îáðàáîò÷èêà ñîáûòèÿ ùåë÷êà ìûøüþ íà êíîïêå Buttonl. Äëÿ ñîçäàíèÿ ïðîöåäóðû îáðàáîò÷èêà ñîáûòèÿ âûáåðèòå â îêíå Èíñïåêòîðà îáúåêòîâ îáúåêò Buttonl, çàòåì íà ñòðàíèöå Ñîáûòèÿ ïðîèçâåäèòå äâîéíîé ùåë÷îê íà ïóñòîì ïîëå ñïèñêà â ñîáûòèè OnClick. Ïîñëå ýòîãî â îêíå Ðåäàêòîðà êîäà â çàãîòîâêó ïðîöåäóðû îáðàáîò÷èêà ñîáûòèÿ ââåäèòå ñëåäóþùèé òåêñò:

procedure TForml.ButtonlClick(Sender: TObject);
begin
Randomize;
N:=StrToInt(Editl.Text); {÷èñëî ýëåìåíòîâ ìàññèâà}
SetLength(M, N); {çàäàòü äèíàìè÷åñêîìó ìàññèâó Ì äëèíó N}
Edit2.Text: = ' ';
for I:= 0 to N-l do {çàïîëíèòü ìàññèâ ñëó÷àéíûìè çíà÷åíèÿìè öåëûõ ÷èñåë}
begin
M[I]:= Round(Sin(Random(100))*100);
{ïðèñâîèòü ýëåìåíòó ìàññèâà ñëó÷àéíîå çíà÷åíèå}
Edit2.Text:=Edit2.Text+' '+Intostr(M[I]);
{âûâåñòè ýëåìåíòû ìàññèâà}
end;
end;

Îáðàáîòêà ñîáûòèÿ íàæàòèÿ êíîïêè Button2 «Âû÷èñëèòü» íà÷èíàåòñÿ ñ ñîðòèðîâêè ìàññèâà, êîòîðóþ ìîæíî çàïèñàòü ñ ïîìîùüþ îïåðàòîðà öèêëà for.

Äëÿ õðàíåíèÿ íîìåðà ýëåìåíòà ìàññèâà, ñðàâíèâàåìîãî ñ òåêóùèì (èìåþùèì íîìåð I) ââåäåì ïåðåìåííóþ öåëîãî òèïà J. Äëÿ çàïîìèíàíèÿ ýëåìåíòà ìàññèâà ïðè îáìåíå â ïðîöåññå ñîðòèðîâêè ââåäåì ïåðåìåííóþ Ò.

Ëèíåéíàÿ ñîðòèðîâêà ìàññèâà âûïîëíÿåòñÿ ïóòåì ïåðåñòàíîâêè ýëåìåíòîâ â ìàññèâå ïðè ñîáëþäåíèè ñëåäóþùèõ óñëîâèé: åñëè â íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà íàéäåí ýëåìåíò ñ íîìåðîì J, áîëüøèé, ÷åì ýëåìåíò ñ íîìåðîì I (äëÿ ñîðòèðîâêè ïî íåâîçðàñòàíèþ), èëè ìåíüøèé, ÷åì ýëåìåíò ñ íîìåðîì I (äëÿ ñîðòèðîâêè ïî íåóáûâàíèþ). Ïîýòîìó ìîæíî çàïèñàòü ñëåäóþùèé îïåðàòîð if then else ñ ñîñòàâíûì óñëîâèåì:

if (RadioGroupl.ItemIndex=O) and (M[I]<M[J]) or (RadioGroupl.Itemlndex=l) and (M[I]>M[J]) then

Ïåðåñòàíîâêà ýëåìåíòîâ ìàññèâà îñóùåñòâëÿåòñÿ ñ èñïîëüçîâàíèåì òðåòüåé ïåðåìåííîé:

Ò := Ì[1]; {çàïîìíèòü íà âðåìÿ çíà÷åíèå Ì[1]}
M[I] := M[J];
M[J] := Tmp;

Âûâîä îòñîðòèðîâàííîãî ìàññèâà â îêíå Edit3 ìîæíî çàïèñàòü îïåðàòîðîì:

for I:=0 to N-l do
Edi t3.Text:=Edi t3.Text+' '+IntToStr(M[I]);

 öåëîì òåêñò ïðîöåäóðû ñîðòèðîâêè è âûâîäà îòñîðòèðîâàííîãî ìàññèâà áóäåò âûãëÿäåòü ñëåäóþùèì îáðàçîì:

procedure TForml.Button2Cli ck(Sender: TObject);
var
J,T : integer;
begin
Edit3.Text: = ' ';
for I:= 0 to N - 2 do {èçìåíÿòü ðàçìåð íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà}
for J:=1+1 to N-l do {ñðàâíèâàåì ïîî÷åðåäíî 1-é ýëåìåíò íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà ñî âñåìè îò I+1-ãî äî êîíöà}
begin {âûáîð îïåðàöèè â çàâèñèìîñòè îò çíà÷åíèÿ ñâîéñòâà RadioGroupl.Itemlndex}
if (RadioGroupl.ItemIndex=O) and (M[I]<M[J]) or (RadioGroupl.Itemlndex=l) and (M[I]>M[J]) then
{åñëè â íåîòñîðòèðîâàííîé ÷àñòè ìàññèâà íàøëè J-é ýëåìåíò, áîëüøèé ÷åì 1-é (äëÿ ñîðòèðîâêè ïî íåâîçðàñòàíèþ) èëè ìåíüøèé ÷åì 1-é (äëÿ ñîðòèðîâêè ïî íåóáûâàíèþ)}
begin {îáìåíÿòü ìåñòàìè ýëåìåíòû ìàññèâà}
Ò := Ì[1]; {çàïîìíèòü íà âðåìÿ çíà÷åíèå Ì[1]}
Ì[1] := M[J];
M[J] := T;
end;
end;
for I:=0 to N-l do {âûâåñòè îòñîðòèðîâàííûé ìàññèâ}
Edit3.Text:=Edit3.Text+' '+IntToStr(M[I]);
end;

Ñîõðàíèòå ôàéëû ïðîåêòà è ïðîãðàììíîãî ìîäóëÿ, îòêîìïèëèðóéòå è çàïóñòèòå ïðîãðàììó íà âûïîëíåíèå. Çàäàâàÿ ðàçëè÷íûå çíà÷åíèÿ ÷èñëà ýëåìåíòîâ ìàññèâà è ùåëêàÿ ìûøüþ íà êíîïêå Ñîçäàòü ìàññèâ, ñîçäàâàéòå ëèíåéíûé ìàññèâ öåëûõ ÷èñåë. Âûáèðàÿ ïðè ïîìîùè ïåðåêëþ÷àòåëåé â ïàíåëè RadioGroupl âàðèàíò ñîðòèðîâêè è ùåëêàÿ ìûøüþ íà êíîïêå.

Ïîñëå îêîí÷àíèÿ ïðîâåðêè ðàáîòû ïðèëîæåíèÿ çàêðîéòå åãî îêíî.



 
     
   
 


Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êðóãëîì ñòîëå!
ïîäðîáíåå   >>>
 

Èíñòèòóò Ìåíåäæìåíòà, Ýêîíîìèêè è Èííîâàöèé íà÷èíàåò íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Óâàæåìûå ñòóäåíòû ÀÍÎ ÂÏÎ ÈÌÝèÈ!
ïîäðîáíåå   >>>
 

Íà÷èíàåòñÿ íàáîð íà êóðñû ïîâûøåíèÿ êâàëèôèêàöèè!
ïîäðîáíåå   >>>
 

Ïðèãëàøàåì ïðèíÿòü ó÷àñòèå â êîíôåðåíöèÿõ!
ïîäðîáíåå   >>>
 


âñå íîâîñòè...

 


Ðàññûëêè Subscribe.Ru
Ñîâðåìåííîå îáðàçîâàíèå
Ïîäïèñàòüñÿ ïèñüìîì