• 検索結果がありません。

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

Îáðàòèòüñÿ ê ìåòîäó îáúåêòà ìîæíî òàêæå ñ èñïîëüçîâàíèåì òî÷å÷íîé íîòàöèè. ×òîáû îïðåäåëèòü, äëÿ êàêîãî îáúåêòà âûçûâàåòñÿ ìåòîä, ïåðåä èìåíåì ìåòîäà óêàçûâàåòñÿ èìÿ îáúåêòà, îòäåëåííîå òî÷êîé:

Îáúåêò.Ìåòîä àðãóìåíò1:=çíà÷åíèå, àðãóìåíò2:=çíà÷åíèå

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

Êëàññû îáúåêòîâ ÿâëÿþòñÿ «øàáëîíàìè», îïðåäåëÿþùèìè íàáîðû ñâîéñòâ, ìåòîäîâ è ñîáûòèé, ïî êîòîðûì ñîçäàþòñÿ îáúåêòû. Îñíîâíûå êëàññû îáúåêòîâ ïðåäñòàâëÿþò îáúåêòû, ðåàëèçóþùèå ãðàôè÷åñêèé èí-òåðôåéñ ïðîåêòîâ. Êëàññ ìîæåò ñîäåðæàòü ïåðåìåííûå, ñâîéñòâà, ïðîöå-äóðû è ñîáûòèÿ.

Êëàññû ìîãóò èìåòü âçàèìîîòíîøåíèÿ äðóã ñ äðóãîì, íàèáîëåå èçâåñò-íûå èç íèõ — ýòî:

q íàñëåäîâàíèå — êîãäà êëàññ, óíàñëåäîâàííûé îò áàçîâîãî êëàññà, ïî-ëó÷àåò âñå äàííûå è êîä ðåàëèçàöèè íàñëåäóåìîãî êëàññà;

q âêëþ÷åíèå — êîãäà îäèí êëàññ ñîäåðæèò â ñåáå ïåðåìåííóþ, óêàçûâàþ-ùóþ íà äðóãîé êëàññ, è èñïîëüçóåò åå äëÿ âûçîâà ÷ëåíîâ ýòîãî êëàññà.

Äëÿ îïðåäåëåíèÿ êëàññà èñïîëüçóåòñÿ ñëåäóþùàÿ êîíñòðóêöèÿ:

Class ÈìÿÊëàññà

[Inherits ÈìÿÁàçîâîãîÊëàññà]

[Implements ÈìåíàÈíòåðôåéñîâ]

[Ñïèñîê×ëåíîâÊëàññà]

End Class

ÈìÿÁàçîâîãîÊëàññà çàäàåò èìÿ áàçîâîãî êëàññà, îò êîòîðîãî óíà-ñëåäîâàí äàííûé. Åñëè ýòî èìÿ íå óêàçàíî, òî èñïîëüçóåòñÿ êëàññ System.Object. ÈìåíàÈíòåðôåéñî⠗ ýòî ïåðå÷èñëåíèå ÷åðåç çàïÿòóþ

èìåí èíòåðôåéñîâ1, êîòîðûå ðåàëèçóåò äàííûé êëàññ.Ñïèñîê×ëåíîâÊëàññà çàäàåò ñïèñîê ïåðåìåííûõ, ñâîéñòâ, ïðîöåäóð èëè ñîáûòèé, îïðåäåëÿå-ìûõ â êëàññå.

Êàæäûé èç ÷ëåíîâ êëàññà ìîæåò èìåòü îäèí èç ìîäèôèêàòîðîâ äîñòó-ïà, çàäàþùèé ïðàâà äîñòóïà ê ñîîòâåòñòâóþùåìó ÷ëåíó:

q Public— ÷ëåí êëàññà äîñòóïåí èç ëþáîãî ìåñòà ïðèëîæåíèÿ;

q Protected— ÷ëåí êëàññà äîñòóïåí òîëüêî â êëàññå-ïîòîìêå, êîòîðûé åãî óíàñëåäîâàë;

q Friend— ÷ëåí êëàññà äîñòóïåí òîëüêî â ïðîãðàììíîì ìîäóëå (ñáîð-êå), â êîòîðîì îí îïðåäåëåí;

q Private— ÷ëåí êëàññà äîñòóïåí òîëüêî âíóòðè îïðåäåëåíèÿ êëàññà è ìîæåò áûòü èñïîëüçîâàí òîëüêî èç äðóãèõ ïðîöåäóð òîãî æå ñàìîãî êëàññà;

q Ðrotected Friend— ÷ëåí êëàññà äîñòóïåí ëèáî òîëüêî â ïðîãðàììíîì ìîäóëå (ñáîðêå), â êîòîðîì îí îïðåäåëåí, ëèáî â êëàññå-ïîòîìêå, êîòî-ðûé åãî óíàñëåäîâàë.

Îáúåêò, ñîçäàííûé ïî «øàáëîíó» êëàññà îáúåêòîâ, ÿâëÿåòñÿ ýêçåìï-ëÿðîì êëàññàèíàñëåäóåòâåñü íàáîð ñâîéñòâ, ìåòîäîâ è ñîáûòèé äàííî-ãî êëàññà. Êàæäûé ýêçåìïëÿð êëàññà èìååò óíèêàëüíîå äëÿ äàííîäàííî-ãî êëàññà èìÿ. Ðàçëè÷íûå ýêçåìïëÿðû êëàññà îáëàäàþò îäèíàêîâûì íàáî-ðîì ñâîéñòâ, îäíàêî çíà÷åíèÿ ñâîéñòâ ó íèõ ìîãóò ðàçëè÷àòüñÿ.

 ñëó÷àå åñëè ýêçåìïëÿð êëàññà ÿâëÿåòñÿâèçóàëüíûì îáúåêòîì(widget) è ïðåäíàçíà÷åí äëÿ ïîìåùåíèÿ íà ôîðìó ïðèëîæåíèÿ, òî îí èìååò äî-ïîëíèòåëüíûé íàáîð ñâîéñòâ, ìåòîäîâ è ñîáûòèé, ïîçâîëÿþùèõ âèçóàëüíî-ìó îáúåêòó îòîáðàæàòü ñåáÿ íà ýêðàíå âíóòðè ôîðìû è âçàèìîäåéñòâîâàòü ñ ïîëüçîâàòåëåì (íàïðèìåð, ðåàãèðîâàòü íà ùåë÷îê ìûøüþ).

Äëÿ ïîëó÷åíèÿ ïðîãðàììíîãî îáúåêòà íåîáõîäèìî ñîçäàòü ýêçåìïëÿð êëàññà, ïðè ýòîì êîëè÷åñòâî ñîçäàâàåìûõ ýêçåìïëÿðîâ íå îãðàíè÷åíî.

Äëÿ ñîçäàíèÿ îáúåêòà èñïîëüçóåòñÿ îäíà èç ñëåäóþùèõ êîíñòðóêöèé:

1. Dim ÈìÿÏåðåìåííîé As ÈìÿÊëàññà

 äàííîì ñëó÷àå ìû îáúÿâëÿåì ïåðåìåííóþ ÈìÿÏåðåìåííîé, èìåþ-ùóþ òèï, çàäàííûé êàêÈìÿÊëàññà. Ïðè ýòîì ýêçåìïëÿð îáúåêòà íå ñî-çäàåòñÿ, ïîýòîìó â äàëüíåéøåì åãî íåîáõîäèìî ñîçäàòü ïðè ïîìîùè êëþ÷åâîãî ñëîâàNew:

Ïðèëîæåíèå 1 53

1 Òî åñòü ñïîñîáîâ âçàèìîäåéñòâèÿ ñ äðóãèìè ïðîãðàììíûìè îáúåêòàìè.

ÈìÿÏåðåìåííîé = New ÈìÿÊëàññà

2. Dim ÈìÿÏåðåìåííîé As New ÈìÿÊëàññà

 ýòîì ñëó÷àå ìû íå òîëüêî îáúÿâëÿåì ïåðåìåííóþÈìÿÏåðåìåííîé, èìåþùóþ òèï, çàäàííûé êàê ÈìÿÊëàññà, íî è ñðàçó ñîçäàåì íà îñíîâå ýòîãî êëàññà ýêçåìïëÿð îáúåêòà, ñîäåðæàùèé âñå íåîáõîäèìûå äàííûå è ãîòîâûé ê èñïîëüçîâàíèþ.

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

ÈìÿÏåðåìåííîé.Èìÿ×ëåíàÊëàññà

Èìÿ×ëåíàÊëàññà— ýòî íàçâàíèå ïåðåìåííîé, ñâîéñòâà, ïðîöåäóðû èëè ñîáûòèÿ, îïðåäåëåííîãî â êëàññå. Åñëè ïðè ýòîì âûçûâàåòñÿ ïðîöåäóðà, òî åé â ñïèñêå ïàðàìåòðîâ ïåðåäàþòñÿ íåîáõîäèìûå äëÿ âûçîâà äàííûå.

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

Ãðàôè÷åñêèé èíòåðôåéñ íåîáõîäèì äëÿ ðåàëèçàöèè èíòåðàêòèâíîãî äèàëîãà ïîëüçîâàòåëÿ ñ ðàáîòàþùèì ïðîåêòîì. Îñíîâîé äëÿ ñîçäàíèÿ ãðàôè÷åñêîãî èíòåðôåéñà ðàçðàáàòûâàåìîãî ïðîåêòà ÿâëÿåòñÿ ôîðìà, ïðåäñòàâëÿþùàÿ ñîáîé îêíî, íà êîòîðîì ðàçìåùàþòñÿ ýëåìåíòû óïðàâ-ëåíèÿ. Íåîáõîäèìî îòìåòèòü, ÷òî ãðàôè÷åñêèé èíòåðôåéñ ïðîåêòà ìîæåò âêëþ÷àòü â ñåáÿ íåñêîëüêî ôîðì.

Ôîðìà— ýòî îáúåêò, ïðåäñòàâëÿþùèé ñîáîé îêíî íà ýêðàíå, â êîòî-ðîì ðàçìåùàþòñÿ ýëåìåíòû óïðàâëåíèÿ.

Âèçóàëüíîå êîíñòðóèðîâàíèå ãðàôè÷åñêîãî èíòåðôåéñà ïðîåêòà ñîñòî-èò â òîì, ÷òî íà ôîðìó ñ ïîìîùüþ ìûøè ïîìåùàþòñÿ è «ðèñóþòñÿ» òå èëè èíûåýëåìåíòû óïðàâëåíèÿ.

Êëàññû ýëåìåíòîâ óïðàâëåíèÿ èìåþò ðàçëè÷íîå íàçíà÷åíèå â

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

Íà ôîðìó ìîæåò áûòü ïîìåùåíî íåñêîëüêî ýêçåìïëÿðîâ îäíîãî êëàñ-ñà ýëåìåíòîâ óïðàâëåíèÿ. Íàïðèìåð, íåñêîëüêî êíîïîê, êàæäàÿ èç êî-òîðûõ îáëàäàåò èíäèâèäóàëüíûìè çíà÷åíèÿìè ñâîéñòâ (íàäïèñü, ðàçìåðû è äð.).

Ýëåìåíòû óïðàâëåíèÿ— ýòî îáúåêòû, ÿâëÿþùèåñÿ ýëåìåíòàìè ãðà-ôè÷åñêîãî èíòåðôåéñà ïðîåêòà è ðåàãèðóþùèå íà ñîáûòèÿ, ïðîèçâî-äèìûå ïîëüçîâàòåëåì èëè äðóãèìè ïðîãðàììíûìè îáúåêòàìè.

Ôîðìà è ýëåìåíòû óïðàâëåíèÿ îáëàäàþò îïðåäåëåííûìè íàáîðàìè ñâîéñòâ, ìåòîäîâ è ñîáûòèé.

Ìåòîäû îáðàáîòêè ñîáûòèé.Äëÿ êàæäîãî ñîáûòèÿ ìîæíî çàïðîãðàì-ìèðîâàòü îòêëèê, ò. å. ðåàêöèþ îáúåêòà íà ïðîèçîøåäøåå ñîáûòèå. Åñëè ïîëüçîâàòåëü ïðîèçâîäèò êàêîå-ëèáî âîçäåéñòâèå íà ýëåìåíò ãðàôè÷åñêî-ãî èíòåðôåéñà (íàïðèìåð, ùåë÷îê), â êà÷åñòâå îòêëèêà âûïîëíÿåòñÿ íå-êîòîðàÿ ïîñëåäîâàòåëüíîñòü äåéñòâèé (ìåòîä îáðàáîòêè ñîáûòèé).

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

Ìåòîä îáðàáîòêè ñîáûòèé ïðåäñòàâëÿåò ñîáîé êîä, êîòîðûé íà÷è-íàåò âûïîëíÿòüñÿ ïîñëå ðåàëèçàöèè îïðåäåëåííîãî ñîáûòèÿ.

Îáùèå ïðîöåäóðû.Ïðè ðàçðàáîòêå ñëîæíîãî àëãîðèòìà öåëåñîîáðàçíî ñòàðàòüñÿ âûäåëèòü â íåì ïîñëåäîâàòåëüíîñòè äåéñòâèé, êîòîðûå âûïîë-íÿþò ðåøåíèå êàêèõ-ëèáî ïîäçàäà÷ è ìîãóò ìíîãîêðàòíî âûçûâàòüñÿ èç îñíîâíîãî àëãîðèòìà. Òàêèå àëãîðèòìû íàçûâàþòñÿ âñïîìîãàòåëüíûìè è â àëãîðèòìè÷åñêèõ ÿçûêàõ ïðîãðàììèðîâàíèÿ ðåàëèçóþòñÿ â ôîðìå ïîäïðîãðàìì, êîòîðûå âûçûâàþòñÿ èç îñíîâíîé ïðîãðàììû.

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

Ïðèëîæåíèå 1 55

Çàïóñê îáùèõ ïðîöåäóð íå ñâÿçûâàåòñÿ ñ êàêèìè-ëèáî ñîáûòèÿìè, à ðåàëèçóåòñÿ ïóòåì âûçîâà èç äðóãèõ ïðîöåäóð.

Îáùàÿ ïðîöåäóðà ïðåäñòàâëÿåò ñîáîé ïîäïðîãðàììó, êîòîðàÿ

íà-÷èíàåò âûïîëíÿòüñÿ ïîñëå åå âûçîâà èç äðóãîé ïðîöåäóðû.

Îáùàÿ ïðîöåäóðà â ÿçûêå Visual Basic .NET ìîæåò áûòü îïðåäåëåíà äâóìÿ ñïîñîáàìè:

1. Ïðè ïîìîùè êëþ÷åâîãî ñëîâà Sharedïðè îáúÿâëåíèè ïðîöåäóðû â òåëå êëàññà:

Shared Sub ÈìÿÏðîöåäóðû(ÑïèñîêÏàðàìåòðîâ) Ïðîãðàììíûé êîä

end Sub

2. Îáúÿâëåíèåì ïðîöåäóðû â òåëå òàê íàçûâàåìîãî ìîäóëÿ (Module):

Module ÈìÿÌîäóëÿ

Sub ÈìÿÏðîöåäóðû(ÑïèñîêÏàðàìåòðîâ) Ïðîãðàììíûé êîä

end Sub End Module

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

Îáà îïèñàííûõ âàðèàíòà ìîãóò áûòü èñïîëüçîâàíû êàê äëÿ îïðåäåëå-íèÿ îáùèõ ïðîöåäóð, íå âîçâðàùàþùèõ çíà÷åîïðåäåëå-íèÿ (äëÿ ýòîãî èñïîëüçóåò-ñÿ êëþ÷åâîå ñëîâî Sub), òàê è äëÿ îáùèõ ïðîöåäóð, âîçâðàùàþùèõ çíà÷åíèå (äëÿ ýòîãî èñïîëüçóåòñÿ êëþ÷åâîå ñëîâîFunction).

 ðàìêàõ ìîäóëÿ èëè êëàññà îáùåé ïðîöåäóðå äàåòñÿ óíèêàëüíîå íà-çâàíèå — èìÿ ïðîöåäóðû è óñòàíàâëèâàåòñÿ ñïèñîê âõîäíûõ è âûõîäíûõ ïàðàìåòðîâ ïðîöåäóðû. Ïðè ýòîì íàçâàíèÿ ïðîöåäóð â ðàçíûõ ìîäóëÿõ èëè êëàññàõ ìîãóò áûòü îäèíàêîâûìè.

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

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

Îáùàÿ ïðîöåäóðà ìîæåò áûòü âûçâàíà íà âûïîëíåíèå ëèáî ïî èìåíè, ëèáî ñ ïîìîùüþ îïåðàòîðàCall. Ïî óìîë÷àíèþ ðåêîìåíäóåòñÿ, êàê áî-ëåå ïðîñòîé, ïåðâûé âàðèàíò, îäíàêî âòîðîé òàêæå ÿâëÿåòñÿ âîçìîæíûì, ïðåæäå âñåãî äëÿ ñîõðàíåíèÿ ñîâìåñòèìîñòè ñ ïðåäûäóùèìè âåðñèÿìè ÿçûêà Visual Basic. Èñïîëüçîâàíèå îïåðàòîðà Call ïîâûøàåò íàãëÿä-íîñòü èñõîäíîãî êîäà. Âûçîâ ïðîöåäóðû ïî èìåíè âûãëÿäèò ñëåäóþùèì îáðàçîì:

ÈìÿÏðîöåäóðû(ÑïèñîêÏàðàìåòðîâ)

À ïðè èñïîëüçîâàíèèCall òàê:

Call ÈìÿÏðîöåäóðû(ÑïèñîêÏàðàìåòðîâ)

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

Ïðîåêò (Project).Ïðîåêò ÿâëÿåòñÿ îáúåäèíåíèåì ôàéëîâ, ñîäåðæàùèõ îïèñàíèå âèçóàëüíîãî èíòåðôåéñà, è ïðîãðàììíûé êîä. Ôàéëû, âõîäÿ-ùèå â ñîñòàâ ïðîåêòà, îáðàáàòûâàþòñÿ êîìïèëÿòîðîì Visual Basic .NET è ïðåîáðàçîâûâàþòñÿ â ïðèëîæåíèÿ, êîòîðûå çàòåì ìîãóò âûïîëíÿòüñÿ â ñðåäå .NET îïåðàöèîííîé ñèñòåìîé Windows.

Ïðèëîæåíèå 1 57

Ñïðàâî÷íèê ïî ÿçûêó Visual Basic .NET

1. Ïåðåìåííûå â ÿçûêå ïðîãðàììèðîâàíèÿ Visual Basic .NET

Òèï ïåðåìåííîé.Òèï ïåðåìåííîé îïðåäåëÿåòñÿ íàáîðîì äîïóñòèìûõ

÷åíèé (äàííûõ) ïåðåìåííîé è äîïóñòèìûìè îïåðàöèÿìè ïîä ýòèìè

çíà-÷åíèÿìè. Çíà÷åíèÿìè ïåðåìåííûõ ÷èñëîâûõ òèïîâ (Byte, Short, Integer,Long,Single,Double,Decimal) ÿâëÿþòñÿ ÷èñëà, ëîãè÷åñêîãî òèïàBoolean — «èñòèíà» (True) èëè «ëîæü» (False), ñòðîêîâîãî òèïà Char — îäèí ñèìâîë è String — ïîñëåäîâàòåëüíîñòü ñèìâîëîâ, òèïà äàòû (Date) — äàòà. Îáîçíà÷åíèÿ òèïîâ ïåðåìåííûõ ÿâëÿþòñÿ êëþ÷åâû-ìè ñëîâàêëþ÷åâû-ìè ÿçûêà è ïîýòîìó âûäåëÿþòñÿ.

Ðàçëè÷íûå òèïû äàííûõ òðåáóþò äëÿ ñâîåãî õðàíåíèÿ â îïåðàòèâíîé ïàìÿòè êîìïüþòåðà ðàçëè÷íîå êîëè÷åñòâî ÿ÷ååê (áàéòîâ):

ïåðåìåí-Òèï íîé

Âîçìîæíûå çíà÷åíèÿ Îáúåì çà-íèìàåìîé ïàìÿòè Byte Öåëûå íåîòðèöàòåëüíûå ÷èñëà îò 0 äî 255 1 áàéò Short Öåëûå ÷èñëà îò –32 768 äî 32 767 2 áàéòà Integer Öåëûå ÷èñëà îò –2 147 483 648 äî 2 147 483 647 4 áàéòà Long Öåëûå ÷èñëà îò –9 223 372 036 854 äî 9 223 372 036 853 8 áàéòîâ Decimal Öåëûå äåñÿòè÷íûå ÷èñëà ñî çíàêîì îò 10–28äî 1028 16 áàéòîâ Single Äåñÿòè÷íûå ÷èñëà îäèíàðíîé òî÷íîñòè (7–8 çíà÷àùèõ

öèôð) îò –1,4•10–45äî 3,4•1038 4 áàéòà Double Äåñÿòè÷íûå ÷èñëà äâîéíîé òî÷íîñòè (15–16 çíà÷àùèõ

öèôð) îò –5.0•10–324 äî 1,7•10308 8 áàéòîâ Boolean Ëîãè÷åñêîå çíà÷åíèåTrueèëèFalse 2 áàéòà String Ñòðîêà ñèìâîëîâ â êîäèðîâêå Unicode 2 áàéòà íà

ñèìâîë Date Äàòû îò 1 ÿíâàðÿ 0001 ãîäà äî 31 äåêàáðÿ 9999 ãîäà è

âðåìÿ îò 0:00:00 äî 23:59:59 8 áàéòîâ

Èìÿ ïåðåìåííîé.Èìÿ êàæäîé ïåðåìåííîé (èäåíòèôèêàòîð) óíèêàëü-íî è íå ìîæåò ìåíÿòüñÿ â ïðîöåññå âûïîëíåíèÿ ïðîãðàììû. Èìÿ ïåðå-ìåííîé:

q äîëæíî íà÷èíàòüñÿ ñ áóêâåííîãî ñèìâîëà èëè ñ ïîä÷åðêèâàíèÿ «_»;

q ìîæåò ñîäåðæàòü òîëüêî áóêâåííûå ñèìâîëû, äåñÿòè÷íûå öèôðû è ïîä÷åðêèâàíèÿ;

q äîëæíî ñîäåðæàòü, ïî êðàéíåé ìåðå, îäèí áóêâåííûé èëè öèôðîâîé ñèìâîë, åñëè îíî íà÷èíàåòñÿ ñ ïîä÷åðêèâàíèÿ;

q íå äîëæíî ñîñòàâëÿòü áîëåå ÷åì 1023 çíàêà.

Îáúÿâëåíèå ïåðåìåííîé. Âàæíî, ÷òîáû èñïîëíèòåëü ïðîãðàììû (êîìïüþòåð) «ïîíèìàë», ïåðåìåííûå êàêîãî òèïà èñïîëüçóþòñÿ â ïðî-ãðàììå. Äëÿ îáúÿâëåíèÿ ïåðåìåííîé èñïîëüçóåòñÿ îïåðàòîð îïðåäåëåíèÿ ïåðåìåííîé. Ñèíòàêñèñ (ïðàâèëî çàïèñè) ýòîãî îïåðàòîðà ñëåäóþùèé:

Dim ÈìÿÏåðåìåííîé As ÒèïÏåðåìåííîé=Çíà÷åíèå

Ñ ïîìîùüþ îäíîãî îïåðàòîðà ìîæíî îáúÿâèòü ñðàçó íåñêîëüêî ïåðå-ìåííûõ, íàïðèìåð:

Dim ×èñëî As Integer, Ñòðîêà As String

Âåëè÷èíû, çíà÷åíèÿ êîòîðûõ íå ìåíÿþòñÿ â ïðîöåññå âûïîëíåíèÿ ïðîãðàììû, íàçûâàþòñÿêîíñòàíòàìè. Ñèíòàêñèñ îáúÿâëåíèÿ êîíñòàíò ñëåäóþùèé:

Const ÈìÿÊîíñòàíòû As Òèï = Çíà÷åíèåÊîíñòàíòû

Ïðèñâàèâàíèå ïåðåìåííûì çíà÷åíèé. Ïåðåìåííàÿ ìîæåò ïîëó÷èòü èëè èçìåíèòü çíà÷åíèå ñ ïîìîùüþîïåðàòîðà ïðèñâàèâàíèÿ. Ñèíòàêñèñ ýòîãî îïåðàòîðà ñëåäóþùèé:

ÈìÿÏåðåìåííîé = Âûðàæåíèå

Ïðè âûïîëíåíèè îïåðàòîðà ïðèñâàèâàíèÿ ïåðåìåííàÿ, èìÿ êîòîðîé óêàçàíî ñëåâà îò çíàêà ðàâåíñòâà, ïîëó÷àåò çíà÷åíèå, ðàâíîå çíà÷åíèþ

Ïðèëîæåíèå 2 59

âûðàæåíèÿ (àðèôìåòè÷åñêîãî, ñòðîêîâîãî èëè ëîãè÷åñêîãî), êîòîðîå íà-õîäèòñÿ ñïðàâà îò çíàêà ðàâåíñòâà.

2. Ìàññèâû â ÿçûêå ïðîãðàììèðîâàíèÿ Visual Basic

Òèïû ìàññèâîâ è îáúÿâëåíèå ìàññèâà.Ìàññèâ ÿâëÿåòñÿ íàáîðîì îäíî-òèïíûõ ïåðåìåííûõ, îáúåäèíåííûõ îäíèì èìåíåì. Ìàññèâû áûâàþò îäíîìåðíûå, êîòîðûå ìîæíî ïðåäñòàâèòü â ôîðìå òàáëèöû èç îäíîãî ñòîëáöà, äâóìåðíûå, êîòîðûå ìîæíî ïðåäñòàâèòü â ôîðìå îáû÷íîé òàá-ëèöû, è ìíîãîìåðíûå.

Ìàññèâ ñîñòîèò èç ïðîíóìåðîâàííîé ïîñëåäîâàòåëüíîñòè ýëåìåíòîâ.

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

Ìàññèâû ìîãóò áûòü ðàçëè÷íûõ òèïîâ: ÷èñëîâûå, ñòðîêîâûå è ò. ä.

Îáúÿâëåíèå ìàññèâà ïðîèçâîäèòñÿ àíàëîãè÷íî îáúÿâëåíèþ ïåðåìåííûõ, íåîáõîäèìî òîëüêî äîïîëíèòåëüíî óêàçàòü äèàïàçîí èçìåíåíèÿ èíäåêñà.

Íàïðèìåð, îáúÿâëåíèå îäíîìåðíîãî öåëî÷èñëåííîãî ìàññèâà, ñîäåðæàùåãî 10 ýëåìåíòîâ, ïðîèçâîäèòñÿ ñëåäóþùèì îáðàçîì:

Dim A() As Byte

Dim A() As Integer = {0,1,2}

Îáðàùåíèå ê ýëåìåíòó ìàññèâà ïðîèçâîäèòñÿ ïî åãî èìåíè, ñîñòîÿùå-ìó èç èìåíè ìàññèâà è çíà÷åíèÿ èíäåêñà, íàïðèìåð:À(5).

Çàïîëíåíèå ìàññèâà ñëó÷àéíûìè ÷èñëàìè.Äëÿ íà÷àëà ðàáîòû ñ ìàñ-ñèâîì íåîáõîäèìî åãî ïðåäâàðèòåëüíî çàïîëíèòü, ò. å. ïðèñâîèòü ýëåìåí-òàì ìàññèâà îïðåäåëåííûå çíà÷åíèÿ. Çàïîëíèì ÷èñëîâîé ìàññèâ A(I) öåëûìè ñëó÷àéíûìè ÷èñëàìè â èíòåðâàëå îò 1 äî 100.

Äëÿ ãåíåðàöèè ïîñëåäîâàòåëüíîñòè ñëó÷àéíûõ ÷èñåë èñïîëüçóåì ôóí-êöèþ Rnd(). Ïðè çàïóñêå ïðîãðàììû ôóíêöèÿ Rnd() äàåò ðàâíîìåðíî ðàñïðåäåëåííóþ ïñåâäîñëó÷àéíóþ (ò. å. êàæäûé ðàç ïîâòîðÿþùóþñÿ) ïî-ñëåäîâàòåëüíîñòü ÷èñåë â èíòåðâàëå 0£Õ< 1.

Äëÿ ïîëó÷åíèÿ ïîñëåäîâàòåëüíîñòè ñëó÷àéíûõ ÷èñåë â çàäàííîì èí-òåðâàëåÀ £Õ< Âíåîáõîäèìî èñïîëüçîâàòü ñëåäóþùóþ ôîðìóëó:

(Â-À)*Rnd() + À

Òîãäà ïîëó÷åíèå öåëî÷èñëåííîé ïîñëåäîâàòåëüíîñòè ñëó÷àéíûõ ÷èñåë íà èíòåðâàëå 1£Õ< 100 äîñòèãàåòñÿ èñïîëüçîâàíèåì ôóíêöèè âûäåëå-íèÿ öåëîé ÷àñòè ÷èñëà:

CInt(Int(100*Rnd()) + 1)  èòîãå ïîëó÷èì:

For I = 0 To 9

A(I) = CInt(Int(100*Rnd()) + 1) Next I

Äëÿ ãåíåðàöèè ðàçëè÷àþùèõñÿ ìåæäó ñîáîé ïîñëåäîâàòåëüíîñòåé

ñëó-÷àéíûõ ÷èñåë ðåêîìåíäóåòñÿ èñïîëüçîâàòü îïåðàòîðRandomize().

3. Îñíîâíûå òèïû àëãîðèòìè÷åñêèõ ñòðóêòóð è èõ êîäèðîâàíèå íà ÿçûêå Visual Basic

3.1. Àëãîðèòìè÷åñêàÿ ñòðóêòóðà «âåòâëåíèå»

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

 àëãîðèòìè÷åñêîé ñòðóêòóðå«âåòâëåíèå»òà èëè èíàÿ ñåðèÿ êîìàíä âûïîëíÿåòñÿ â çàâèñèìîñòè îò èñòèííîñòèóñëîâèÿ.

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

Íàïðèìåð:5 > 3,A = Bè ò. ä.  çàâèñèìîñòè îò ðåçóëüòàòà ñðàâíå-íèÿ óñëîâèå ïðèíèìàåò çíà÷åíèå True(èñòèíà) èëèFalse(ëîæü).

Ñëîæíîå óñëîâèå — ýòî ïîñëåäîâàòåëüíîñòü ïðîñòûõ óñëîâèé, îáúåäè-íåííûõ ìåæäó ñîáîé çíàêàìè ëîãè÷åñêèõ îïåðàöèé. Íàïðèìåð, X > 3 And Y = 4´4.

Ïðè îïðåäåëåíèè óñëîâèé êàê â êà÷åñòâå ñîñòàâíîé ÷àñòè ñëîæíîãî óñëîâèÿ, òàê è ïðè çàäàíèè ïðîñòî óñëîâèÿ ìîæíî íàïðÿìóþ èñïîëüçî-âàòü ïåðåìåííóþ òèïàBoolean.  ýòîì ñëó÷àå ïðè âû÷èñëåíèè ðåçóëüòà-òà ñëîæíîãî óñëîâèÿ çíà÷åíèå ïåðåìåííîé ïðîâåðÿåòñÿ íà ðåçóëüðåçóëüòà-òàò True/Falseòàê æå, êàê åñëè áû îíî ïðåäñòàâëÿëî ñîáîé ïðîñòîå óñëîâèå.

Èíñòðóêöèÿ If-Then-Else (ðèñ. 5). Íà ÿçûêå ïðîãðàììèðîâàíèÿ Visual Basic ïîñëå ïåðâîãî êëþ÷åâîãî ñëîâà Ifäîëæíî áûòü ðàçìåùåíî óñëîâèå. Ïîñëå âòîðîãî êëþ÷åâîãî ñëîâà Then — ïîñëåäîâàòåëüíîñòü êîìàíä (Ñåðèÿ 1), êîòîðàÿ äîëæíà âûïîëíÿòüñÿ, åñëè óñëîâèå ïðèíèìàåò

Ïðèëîæåíèå 2 61

çíà÷åíèå «èñòèíà». Ïîñëå òðåòüåãî êëþ÷åâîãî ñëîâà Else ðàçìåùàåòñÿ ïîñëåäîâàòåëüíîñòü êîìàíä (Ñåðèÿ 2), êîòîðàÿ äîëæíà âûïîëíÿòüñÿ, åñëè óñëîâèå ïðèíèìàåò çíà÷åíèå «ëîæü».

Îïåðàòîð óñëîâíîãî ïåðåõîäà ìîæåò áûòü çàïèñàí â ìíîãîñòðî÷íîé ôîðìå èëè â îäíîñòðî÷íîé ôîðìå.

Áëîê-ñõåìà ßçûê ïðîãðàììèðîâàíèÿ Visual Basic .NET If Óñëîâèå Then

Ñåðèÿ 1 [Else

Ñåðèÿ 2]

End If

If Óñëîâèå _ Then Ñåðèÿ 1 _ [Else Ñåðèÿ 2]

Ðèñ. 5

 ìíîãîñòðî÷íîé ôîðìå îí çàïèñûâàåòñÿ ñ ïîìîùüþ èíñòðóêöèèIf ...

Then ... Else ... End If (Åñëè ... Òî ... Èíà÷å ... Êîíåö Åñëè).  ýòîì ñëó÷àå âòîðîå êëþ÷åâîå ñëîâîThen ðàçìåùàåòñÿ â òîé æå ñòðîêå, ÷òî è óñëîâèå, à ïîñëåäîâàòåëüíîñòü êîìàíä (Ñåðèÿ 1) — â ñëåäóþùåé ñòðîêå.

Òðåòüå êëþ÷åâîå ñëîâîElse ðàçìåùàåòñÿ â òðåòüåé ñòðîêå, à ïîñëåäîâà-òåëüíîñòü êîìàíä (Ñåðèÿ 2) — â ÷åòâåðòîé. Êîíåö èíñòðóêöèè âåòâëåíèÿ End Ifðàçìåùàåòñÿ â ïÿòîé ñòðîêå.

 îäíîñòðî÷íîé ôîðìå îí çàïèñûâàåòñÿ ñ ïîìîùüþ èíñòðóêöèèIf...

Then...Else… (Åñëè ... Òî ... Èíà÷å …). Åñëè èíñòðóêöèÿ íå ïîìåùàåòñÿ â îäíîé ñòðîêå, îíà ìîæåò áûòü ðàçáèòà íà íåñêîëüêî ñòðîê. Òàêîå ïðåä-ñòàâëåíèå èíñòðóêöèé áîëåå íàãëÿäíî äëÿ ÷åëîâåêà. Êîìïüþòåð æå äîë-æåí çíàòü, ÷òî ðàçáèòàÿ íà ñòðîêè èíñòðóêöèÿ ïðåäñòàâëÿåò åäèíîå öåëîå. Ýòî îáåñïå÷èâàåò çíàê «ïåðåíîñà», êîòîðûé çàäàåòñÿ ñèìâîëîì ïîä÷åðêèâàíèÿ ïîñëå ïðîáåëà « _».

Òðåòüå êëþ÷åâîå ñëîâîElse(Ñåðèÿ 2) ìîæåò îòñóòñòâîâàòü. (Íåîáÿçà-òåëüíûå ÷àñòè îïåðàòîðà ìû çäåñü ïîìå÷àåì êâàäðàòíûìè ñêîáêàìè.) Òîã-äà, â ñëó÷àå åñëè óñëîâèå ëîæíî, âûïîëíåíèå îïåðàòîðà óñëîâíîãî ïåðåõîäà çàêàí÷èâàåòñÿ è âûïîëíÿåòñÿ ñëåäóþùàÿ ñòðîêà ïðîãðàììû.

Êðîìå òîãî, äëÿ âàðèàíòà çàïèñè â âèäå ìíîãîñòðî÷íîé ôîðìû âîç-ìîæíî ìíîãîêðàòíîå äóáëèðîâàíèå óñëîâèÿ, óêàçûâàåìîãî ïîñëå èíñò-ðóêöèèIf, äëÿ ýòîãî èñïîëüçóåòñÿ ñëåäóþùàÿ ôîðìà:

If Óñëîâèå1 Then Ñåðèÿ 1

[ElseIf Óñëîâèå2 Then Ñåðèÿ 2]

...

[ElseIf ÓñëîâèåN Then Ñåðèÿ N]

[Else

Ñåðèÿ N + 1]

End If

 äàííîì ñëó÷àå ïåðåõîä ê ñëåäóþùåìó óñëîâèþElseIfïðîèñõîäèò, òîëüêî åñëè ïðåäûäóùåå óñëîâèå âåðíóëî False. Åñëè íè îäíî èç óñëî-âèé ElseIfíå âåðíóëî True, óïðàâëåíèå, òàê æå, êàê â ïðîñòîé ìíîãî-ñòðî÷íîé ôîðìå, ïåðåäàåòñÿ êîíñòðóêöèè Else.

3.2. Àëãîðèòìè÷åñêàÿ ñòðóêòóðà «âûáîð»

Àëãîðèòìè÷åñêàÿ ñòðóêòóðà «âûáîð» ïðèìåíÿåòñÿ äëÿ ðåàëèçàöèè âåòâ-ëåíèé ñî ìíîãèìè âàðèàíòàìè ñåðèé êîìàíä.  ñòðóêòóðó âûáîðà âõîäÿò íåñêîëüêî óñëîâèé, ïðîâåðêà êîòîðûõ îñóùåñòâëÿåòñÿ â ïîñëåäîâàòåëü-íîñòè èõ çàïèñè â ñòðóêòóðå âûáîðà. Ïðè èñòèíïîñëåäîâàòåëü-íîñòè îäíîãî èç óñëîâèé (Óñëîâèå 1, Óñëîâèå 2 è ò. ä.) âûïîëíÿåòñÿ ñîîòâåòñòâóþùàÿ ïîñëåäîâàòåëü-íîñòü êîìàíä (Ñåðèÿ 1, Ñåðèÿ 2 è ò. ä.). Åñëè íè îäíî èç óñëîâèé íå èñ-òèííî, òî áóäåò âûïîëíåíà ïîñëåäîâàòåëüíîñòü êîìàíä Ñåðèÿ.

 àëãîðèòìè÷åñêîé ñòðóêòóðå «âûáîð»âûïîëíÿåòñÿ îäíà èç íåñêîëüêèõ ïîñëåäîâàòåëüíîñòåé êîìàíä ïðè èñòèííîñòè ñîîòâåòñòâóþùåãîóñëîâèÿ.

ÈíñòðóêöèÿSelect Case(ðèñ. 6).Íà ÿçûêå ïðîãðàììèðîâàíèÿ èíñò-ðóêöèÿ âûáîðà íà÷èíàåòñÿ ñ êëþ÷åâûõ ñëîâSelect Case, ïîñëå êîòîðûõ çàïèñûâàåòñÿ âûðàæåíèå (ïåðåìåííàÿ èëè àðèôìåòè÷åñêîå âûðàæåíèå).

Ïîñëå êëþ÷åâûõ ñëîâ Case çàïèñûâàþòñÿ çíà÷åíèÿ, ñ êîòîðûìè ñðàâíè-âàåòñÿ çàäàííîå âûðàæåíèå (ïðîâåðÿåòñÿ èñòèííîñòü óñëîâèé). Ïðè èñòèí-íîñòè îäíîãî èç óñëîâèé íà÷èíàåò âûïîëíÿòüñÿ ñîîòâåòñòâóþùàÿ ñåðèÿ

Ïðèëîæåíèå 2 63

êîìàíä. Åñëè íè îäíî èç óñëîâèé íå èñòèííî, òî áóäåò âûïîëíåíà ñåðèÿ êîìàíä ïîñëå êëþ÷åâûõ ñëîâ Case Else. Çàêàí÷èâàåòñÿ èíñòðóêöèÿ êëþ÷åâûìè ñëîâàìèEnd Select.

Áëîê-ñõåìà ßçûê ïðîãðàììèðîâàíèÿ

Visual Basic .NET Select Case Âûðàæåíèå Case Óñëîâèå1

Ñåðèÿ 1

Case Óñëîâèå2 Ñåðèÿ 2

[Case Else Ñåðèÿ]

End Select

Ðèñ. 6

Ñëåäóåò òàêæå îòìåòèòü, ÷òî êîëè÷åñòâî áëîêîâ, èñïîëüçóþùèõ

êëþ-÷åâîå ñëîâîCase, íå îãðàíè÷åíî. Áëîê Case Elseìîæåò îòñóòñòâîâàòü.

 êà÷åñòâå óñëîâèÿ, çàäàííîãî ïîñëå êëþ÷åâîãî ñëîâàCase, ìîæåò áûòü èñïîëüçîâàí îäèí èç äâóõ âàðèàíòîâ:

1. Êîãäà óêàçûâàåòñÿ äèàïàçîí çíà÷åíèé, äëÿ ýòîãî èñïîëüçóåòñÿ ñëåäó-þùàÿ êîíñòðóêöèÿ:

Çíà÷åíèå1 To Çíà÷åíèå2

Ïðè ýòîì Çíà÷åíèå1 îáÿçàòåëüíî äîëæíî áûòü ìåíüøå èëè ðàâíî Çíà÷åíèþ2.

2. Êîãäà íåîáõîäèìî èñïîëüçîâàòü âû÷èñëåííîå â êîíñòðóêöèèSelect Caseâûðàæåíèå â óñëîâèè, èñïîëüçóÿ îäèí èç îïåðàòîðîâ ñðàâíåíèÿ (=,<>, <,<=, >,or >=):

Is ÎïåðàòîðÑðàâíåíèÿ ÓñëîâíîåÂûðàæåíèå

 êà÷åñòâåÓñëîâíîãîÂûðàæåíèÿìîæåò áûòü èñïîëüçîâàíî êàê ïðî-ñòî çíà÷åíèå, ñ êîòîðûì ìû ïðîèçâîäèì ñðàâíåíèå, òàê è ïåðåìåí-íàÿ, ñîäåðæàùåå ýòî çíà÷åíèå. Òàêæå äîïóñêàåòñÿ êîíñòðóèðîâàòü ñëîæíûå óñëîâíûå âûðàæåíèÿ. Êëþ÷åâîå ñëîâî Isïðè ýòîì óêàçû-âàåò íà âûðàæåíèå, âû÷èñëåííîå â êîíñòðóêöèè Select Case.

3.3. Àëãîðèòìè÷åñêàÿ ñòðóêòóðà «öèêë»

 àëãîðèòìè÷åñêóþ ñòðóêòóðó«öèêë»âõîäèò ñåðèÿ êîìàíä, âûïîëíÿåìàÿ ìíîãîêðàòíî. Òàêàÿ ïîñëåäîâàòåëüíîñòü êîìàíä íàçûâàåòñÿòåëîì öèêëà.

 àëãîðèòìè÷åñêîé ñòðóêòóðå«öèêë»ñåðèÿ êîìàíä (òåëî öèêëà) âû-ïîëíÿåòñÿ ìíîãîêðàòíî.

Öèêëè÷åñêèå àëãîðèòìè÷åñêèå ñòðóêòóðû áûâàþò äâóõ òèïîâ:

q öèêëû ñî ñ÷åò÷èêîì, â êîòîðûõ òåëî öèêëà âûïîëíÿåòñÿ îïðåäåëåí-íîå êîëè÷åñòâî ðàç;

q öèêëû äëÿ îáðàáîòêè ìàññèâîâ èëè êîëëåêöèé, òåëî öèêëà ïðè ýòîì âûïîëíÿåòñÿ äëÿ êàæäîãî ýëåìåíòà ìàññèâà èëè êîëëåêöèè;

q öèêëû ïî óñëîâèþ, â êîòîðûõ òåëî öèêëà âûïîëíÿåòñÿ, ïîêà óñëîâèå èñòèííî (èëè äî òåõ ïîð, ïîêà óñëîâèå íå ñòàíåò èñòèííûì).

Öèêë ñî ñ÷åò÷èêîì(ðèñ. 7). Êîãäà çàðàíåå èçâåñòíî, êàêîå ÷èñëî ïîâòî-ðåíèé òåëà öèêëà íåîáõîäèìî âûïîëíèòü, ìîæíî âîñïîëüçîâàòüñÿ

öèêëè-÷åñêîé èíñòðóêöèåé (îïåðàòîðîì öèêëà ñî ñ÷åò÷èêîì) For...Next.

Áëîê-ñõåìà ßçûê ïðîãðàììèðîâàíèÿ Visual Basic .NET For Ñ÷åò÷èê=Íà÷Çíà÷

To ÊîíÇíà÷ [Step øàã]

Òåëî öèêëà Next [Ñ÷åò÷èê]

Ðèñ. 7

Ïðèëîæåíèå 2 65

Ñèíòàêñèñ îïåðàòîðàFor...Nextñëåäóþùèé: còðîêà, íà÷èíàþùàÿñÿ ñ êëþ÷åâîãî ñëîâàFor,ÿâëÿåòñÿ çàãîëîâêîì öèêëà, à ñòðîêà ñ êëþ÷åâûì ñëîâîì Next — êîíöîì öèêëà, ìåæäó íèìè ðàñïîëàãàþòñÿ îïåðàòîðû, ÿâëÿþùèåñÿ òåëîì öèêëà.

 íà÷àëå âûïîëíåíèÿ öèêëà çíà÷åíèå ïåðåìåííîéÑ÷åò÷èê óñòàíàâëè-âàåòñÿ ðàâíûìÍà÷Çíà÷.Ïðè êàæäîì «ïðîõîäå» öèêëà (âûïîëíåíèè òåëà öèêëà) ïåðåìåííàÿÑ÷åò÷èêèçìåíÿåòñÿ (óâåëè÷èâàåòñÿ èëè óìåíüøàåò-ñÿ) íà âåëè÷èíó øàãà. Åñëè îíà äîñòèãàåò âåëè÷èíûÊîíÇíà÷,òî öèêë çà-âåðøàåòñÿ è âûïîëíÿþòñÿ ñëåäóþùèå çà íèì îïåðàòîðû.

Öèêëû äëÿ îáðàáîòêè ìàññèâîâ èëè êîëëåêöèé(ðèñ. 8).Ýòîò âàðèàíò íàïîìèíàåò öèêë ñî ñ÷åò÷èêîì; â äàííîì ñëó÷àå èçâåñòíî, êàêîå ÷èñëî ïîâòîðåíèé òåëà öèêëà íåîáõîäèìî âûïîëíèòü, ïðè÷åì ýòî ÷èñëî çàäàåò-ñÿ ðàçìåðîì ìàññèâà èëè êîëëåêöèè, à â òåëå ïðîèñõîäèò îáðàáîòêà êîí-êðåòíîãî òåêóùåãî ýëåìåíòà. Ïðè ýòîì äëÿ îïðåäåëåíèÿ èñïîëüçóåòñÿ èíñòðóêöèÿ For Each ... Next.

Áëîê-ñõåìà ßçûê ïðîãðàììèðîâàíèÿ Visual Basic .NET For Each Ýëåìåíò [As ÒèïÝëåìåíòà] In Ãðóïïà

Òåëî öèêëà Next [Ýëåìåíò]

Ðèñ. 8

Îñíîâíîå ðàçëè÷èå ìåæäó îïåðàòîðàìèFor ... NextèFor Each ...

Next ñîñòîèò â òîì, ÷òî ïîñëåFor Eachíàõîäèòñÿ îïèñàíèå ïåðåìåííîé, â êîòîðóþ ïîìåùàåòñÿ ýëåìåíò êîëëåêöèè, óêàçàííîé ïîñëå êëþ÷åâîãî ñëîâàIn. Ïðè ýòîì äëÿ äàííîé ïåðåìåííîé ìîæíî çàäàòü òèï äàííûõ, ê êîòîðîìó áóäåò ïðèâåäåí òåêóùèé ýëåìåíò êîëëåêöèè.

Âîîáùå ãîâîðÿ, èñïîëüçîâàíèå îïåðàòîðàFor Each ... Nextíå îãðà-íè÷èâàåòñÿ òîëüêî ìàññèâàìè è êîëëåêöèÿìè, ëþáîé êëàññ,

ðåàëèçóþ-ùèé èíòåðôåéñ System.Collections.IEnumerable, ìîæåò áûòü îáðàáîòàí ïðè ïîìîùè For Each ... Next.

Öèêë ñ ïðåäóñëîâèåì(ðèñ. 9). ×àñòî áûâàåò òàê, ÷òî íåîáõîäèìî ïî-âòîðèòü òåëî öèêëà, íî çàðàíåå íåèçâåñòíî, êàêîå êîëè÷åñòâî ðàç ýòî íàäî ñäåëàòü.  òàêèõ ñëó÷àÿõ êîëè÷åñòâî ïîâòîðåíèé çàâèñèò îò íåêîòîðîãî óñëîâèÿ. Öèêë ñ ïðåäóñëîâèåì íèêîãäà íå âûïîëíÿåòñÿ â ñëó÷àå ëîæíîñòè óñëîâèÿ.

Öèêë íàçûâàåòñÿöèêëîì ñ ïðåäóñëîâèåì,åñëèóñëîâèå âûõîäà èç öèêëà ñòîèò â íà÷àëå, ïåðåä òåëîì öèêëà.

Áëîê-ñõåìà ßçûê ïðîãðàììèðîâàíèÿ Visual Basic Do While Óñëîâèå

Òåëî öèêëà Loop

Do Until Óñëîâèå Òåëî öèêëà Loop

Ðèñ. 9

Öèêë ñ ïðåäóñëîâèåì ðåàëèçóåòñÿ ñ ïîìîùüþ èíñòðóêöèéDo While...

LoopèDo Until ...Loop.

Ïðîâåðêà èñòèííîñòè óñëîâèÿ âûõîäà èç öèêëà ïðîâîäèòñÿ ñ ïîìîùüþ êëþ÷åâûõ ñëîâWhile èëèUntil. Ýòè ñëîâà ïðèäàþò îäíîìó è òîìó æå óñëîâèþ ïðîòèâîïîëîæíûé ñìûñë. Êëþ÷åâîå ñëîâî While îáåñïå÷èâàåò âûïîëíåíèå öèêëà, ïîêà óñëîâèå èìååò çíà÷åíèå «èñòèíà». Êàê òîëüêî óñëîâèå ïðèìåò çíà÷åíèå «ëîæü», âûïîëíåíèå öèêëà çàêîí÷èòñÿ.  ýòîì ñëó÷àå óñëîâèå ÿâëÿåòñÿ óñëîâèåì ïðîäîëæåíèÿ öèêëà.

Êëþ÷åâîå ñëîâîUntilîáåñïå÷èâàåò âûïîëíåíèå öèêëà, ïîêà óñëîâèå èìååò çíà÷åíèå «ëîæü». Êàê òîëüêî óñëîâèå ïðèìåò çíà÷åíèå «èñòèíà», âûïîëíåíèå öèêëà çàêîí÷èòñÿ.  ýòîì ñëó÷àå óñëîâèå ÿâëÿåòñÿ óñëîâèåì çàâåðøåíèÿ öèêëà.

Öèêë ñ ïîñòóñëîâèåì (ðèñ. 10). Öèêë ñ ïîñòóñëîâèåì âûïîëíÿåòñÿ îáÿçàòåëüíî êàê ìèíèìóì îäèí ðàç, íåçàâèñèìî îò òîãî, âûïîëíÿåòñÿ óñëîâèå èëè íåò.

Ïðèëîæåíèå 2 67

Öèêë íàçûâàåòñÿ öèêëîì ñ ïîñòóñëîâèåì, åñëè óñëîâèå âûõîäà èç öèêëà ñòîèò â êîíöå, ïîñëå òåëà öèêëà.

Öèêë ñ ïîñòóñëîâèåì ðåàëèçóåòñÿ ñ ïîìîùüþ èíñòðóêöèéDo...Loop WhileèDo...Loop Until. Ïðîâåðêà èñòèííîñòè óñëîâèÿ âûõîäà èç öèê-ëà ïðîâîäèòñÿ ñ ïîìîùüþ êëþ÷åâûõ ñëîâWhileèëèUntil.

Áëîê-ñõåìà ßçûê ïðîãðàììèðîâàíèÿ Visual Basic Do

Òåëî öèêëà

Loop While Óñëîâèå Do

Òåëî öèêëà

Loop Until Óñëîâèå Ðèñ. 10

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

q Exit For

q Exit While

q Exit Do

Ïðè ýòîì ïðîèñõîäèò àâòîìàòè÷åñêèé âûõîä èç öèêëà è óïðàâëåíèå ïåðåäàåòñÿ ñëåäóþùåé çà öèêëîì êîìàíäå.

q Continue For

q Continue While

q Continue Do

Ïðè ýòîì ïðîèñõîäèò ïåðåõîä ê ñëåäóþùåé èòåðàöèè, ýëåìåíòó ìàññè-âà èëè êîëëåêöèè, îáðàáàòûìàññè-âàåìîé â òåëå öèêëà. Åñëè ïðè ýòîì îäèí öèêë âëîæåí â äðóãîé, òî îáëàñòü äåéñòâèÿExit è Continue äåéñòâóåò òîëüêî íà âëîæåííûé öèêë, èç êîòîðîãî äàííàÿ êîìàíäà âûçûâàåòñÿ.

関連したドキュメント