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










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

 

Óïðàæíåíèå ïî ñîçäàíèþ è îáðàáîòêå ëèíåéíîãî ìàññèâà

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

Ñîçäàéòå ôîðìó, äëÿ ñâîéñòâà Caption çàäàéòå çíà÷åíèå «Ñîçäàíèå è îáðàáîòêà ìàññèâà». Íà ôîðìå ðàçìåñòèòå êîìïîíåíòû Editl è Edit2, êíîïêó Buttonl, äëÿ ñâîéñòâà Caption êíîïêè çàäàéòå çíà÷åíèå «Ñîçäàòü ìàññèâ». Ðàçìåñòèòå íà ôîðìå ïàíåëü GroupBoxl, äëÿ ñâîéñòâà Caption êîòîðîé çàäàéòå çíà÷åíèå «Îïðåäåëèòü».

 ïàíåëè GroupBoxl ðàçìåñòèòå êîìïîíåíòû CheckBoxl, CheckBox2, CheckBox3 è CheckBox4, äëÿ ñâîéñòâ Caption êîòîðûõ çàäàéòå çíà÷åíèÿ: «Ìèíèìàëüíûé ýëåìåíò», «Ìàêñèìàëüíûé ýëåìåíò», «Ñóììà âñåõ ýëåìåíòîâ», «×èñëî ïîëîæèòåëüíûõ ýëåìåíòîâ», ñîîòâåòñòâåííî. Íàïðîòèâ íèõ ðàçìåñòèòå êîìïîíåíòû Edit3, Edit4, Edit5 è Edit6. Åñëè êîìïîíåíòû CheckBoxl, CheckBox2, ÑhåñêÂîõÇ, CheckBox4 îêàæóòñÿ ðàçìåùåííûìè ïîä ïàíåëüþ GroupBoxl è íå áóäóò îòîáðàæàòüñÿ, òî ñëåäóåò âûäåëèòü ïàíåëü GroupBoxl è âûáðàòü â êîíòåêñòíîì ìåíþ êîìàíäó Control – Send to Back (Ïîðÿäîê – Íà çàäíèé ïëàí).  íèæíåé ÷àñòè ôîðìû ðàçìåñòèòå êíîïêó Buttonl è çàäàéòå çíà÷åíèå ñâîéñòâà Buttonl. Caption – «Âû÷èñëèòü». Óäàëèòå òåêñò Editl, Edit2, Edit3, Edit4, Edit5, Edit6 èç ñîîòâåòñòâóþùèõ êîìïîíåíòîâ. Âûðîâíÿéòå êîìïîíåíòû íà ôîðìå. Çàôèêñèðóéòå ïîëîæåíèå êîìïîíåíòîâ íà ôîðìå, âûáðàâ â ìåíþ 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 (Ñîáûòèÿ) äâàæäû ùåëêíèòå ëåâîé êíîïêîé ìûøè íà ïóñòîì ïîëå ñïèñêà â ñîáûòèè On Key Press. Ïîñëå ýòîãî îêíî Ðåäàêòîðà êîäà íåìåäëåííî ïîëó÷èò ôîêóñ è â ðàçäåëå interface ïîÿâèòñÿ çàïèñü ïðîöåäóðû îáðàáîò÷èêà ñîáûòèÿ:

procedure EditlKeyPress(Sender: TObject; var Key: Char);

à â ðàçäåëå implementation – òåêñò çàãîòîâêè ýòîé ïðîöåäóðû:

procedure EditlKeyPress(Sender: TObject; var Key: Char);
begin
 
end;

Âñòàâüòå â òåëî ïðîöåäóðû ñëåäóþùèé îïåðàòîð:

if not (Key in ['0'..'9']) then Key:=#0;

Äåéñòâèå ýòîãî îïåðàòîðà ñâîäèòñÿ ê ñðàâíåíèþ çíà÷åíèÿ ïåðåìåííîé Key ñ ìíîæåñòâîì çíà÷åíèé ['0'..'9']. Åñëè ñèìâîë íàæàòîé êëàâèøè íå âõîäèò â ýòî ìíîæåñòâî, òî Key ïðèñâàèâàåòñÿ çíà÷åíèå íóëåâîãî ñèìâîëà (#0). Òàêèì îáðàçîì, â îêíå Editl áóäåò îòîáðàæàòüñÿ òåêñò, ñîñòîÿùèé òîëüêî èç öèôð.

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

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

Îáðàáîòêó ìàññèâà îïèøèòå â ïðîöåäóðå îáðàáîò÷èêà ñîáûòèÿ ùåë÷êà ìûøüþ íà êíîïêå Button2. Äëÿ ýòîãî âûáåðèòå â îêíå Èíñïåêòîðà îáúåêòîâ îáúåêò Button2, çàòåì íà ñòðàíèöå Ñîáûòèÿ ñäåëàéòå äâîéíîé ùåë÷îê íà ïóñòîì ïîëå ñïèñêà â ñîáûòèè OnClick. Ïîñëå ýòîãî â îêíå Ðåäàêòîðà êîäà â çàãîòîâêó ïðîöåäóðû îáðàáîò÷èêà ñîáûòèÿ procedure TForml.Button2Click(Sender: TObject); â ðàçäåë îïèñàíèÿ ëîêàëüíûõ ïåðåìåííûõ ïîìåñòèòå ñëåäóþùåå îïèñàíèå:

var Max, Min. Sum, CountPlus : integer; {ðåçóëüòàòû îáðàáîòêè ìàññèâà}

ãäå

Ìàõ – ìàêñèìàëüíûé ýëåìåíò ìàññèâà,
Min – ìèíèìàëüíûé ýëåìåíò ìàññèâà,
Sum – ñóììà âñåõ ýëåìåíòîâ ìàññèâà,
CountPlus – êîëè÷åñòâî ïîëîæèòåëüíûõ ýëåìåíòîâ ìàññèâà.

Îáðàáîòêó ìàññèâà ìîæíî ðåàëèçîâàòü ñ ïîìîùüþ öèêëà For, â êîòîðîì âû÷èñëåíèå çíà÷åíèÿ êàæäîé èç ýòèõ ïåðåìåííûõ çàïèñûâàåòñÿ ïðè ïîìîùè îïåðàòîðà if then, ïðîâåðÿþùèì óñëîâèå CheckBox.Checked. Åñëè ñâîéñòâî Checked èìååò çíà÷åíèå True, òî âûïîëíÿåòñÿ âû÷èñëåíèå ñîîòâåòñòâóþùåé ïåðåìåííîé.  çàêëþ÷èòåëüíîé ÷àñòè ïðîöåäóðû ìîæíî ðàçìåñòèòü âûâîä ðåçóëüòàòîâ îáðàáîòêè ìàññèâà. Òåêñò ïðîöåäóðû îáðàáîòêè ìàññèâà ìîæåò áûòü çàïèñàí ñëåäóþùèì îáðàçîì:

procedure TForml.Button2Click(Sender: TObject); {îáðàáîòêà ìàññèâà}
var
Max, Min, Sum, CountPlus : integer; {ðåçóëüòàòû îáðàáîòêè ìàññèâà}
begin
if CheckBoxl.Checked then Min:=M[0]; {ïóñòü 0-é ýëåìåíò - Min}
Edit3.Text: = ";
if CheckBox2.Checked then Max:=M[0]; {ïóñòü 0-é ýëåìåíò - Max}
Edit4.Text: = ";
Sum:=0; {îáíóëèòü çíà÷åíèÿ Sum}
Edit5.Text: = ";
CountPlus;=0; {îáíóëèòü çíà÷åíèÿ ñóììû ïîëîæèòåëüíûõ ýëåìåíòîâ}
Edit6.Text: = ";
for I:=0 to N-l do
begin
if CheckBoxl.Checked then {îïðåäåëèòü ìèíèìàëüíûé ýëåìåíò ìàññèâà}
if Min>M[I] then Min:=M[I];
if CheckBox2.Checked then {îïðåäåëèòü ìàêñèìàëüíûé ýëåìåíò ìàññèâà}
if Max<M[I] then
Max:=M[I];
if CheckBox3.Checked then {ñóììèðîâàòü ýëåìåíòû ìàññèâà}
Sum:=Sum+M[I];
if CheckBox4.Checked then {ñóììèðîâàòü ïîëîæèòåëüíûå ýëåìåíòû ìàññèâà}
if M[I]>0 then
CountPlus:=CountPlus+l:
end;
{âûâåñòè ðåçóëüòàòû îáðàáîòêè ìàññèâà}
if CheckBoxl.Checked then
Edit3.Text:=IntToStr(Min);
if CheckBox2.Checked then
Edit4.Text:=IntToStr(Max);
if CheckBox3.Checked then
Edit5.Text:=IntToStr(Sum);
if CheckBox4.Checked then
Edit6.Text:=IntToStr(CountPlus);
end;

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

Âûáèðàÿ âàðèàíòû îáðàáîòêè ìàññèâà óñòàíîâêîé ñîîòâåòñòâóþùèõ ôëàæêîâ CheckBox è ùåëêàÿ ìûøüþ íà êíîïêå Âû÷èñëèòü, óáåäèòåñü â ïðàâèëüíîñòè ðàáîòû ïðîöåäóðû îáðàáîòêè ìàññèâà.

Çàêðîéòå îêíî ïðèëîæåíèÿ.



 
     
   
 


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

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

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

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

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


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

 


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