Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Знакомство c Visual Basic.pdf
Скачиваний:
30
Добавлен:
02.06.2015
Размер:
4.34 Mб
Скачать

6 Массивы в VB

ЦЯрсн опз пЯжпЯансйд опзкнедмзи бнжмзйЯдс мднафнгзлнрсы напЯансйз анкычзф нащдлнб гЯммъф, опзцдл б анкычзмрсбд рктцЯдб, гЯммъд юбкюэсрю нгмнсзомълз, Я напЯансйЯ рбнгзсрю й бъонкмдмзэ нгмнсзомъф нодпЯхзи мЯг мзл.

Гкю ьуудйсзбмни пЯансъ р сЯйзлз гЯммълз опзлдмюэсрю нрнаъд рсптйстпъ гЯммъф – лЯррзбъ.

Массив – ьсн индексированный набор однотипных значений.

Онгнамн одпдлдммни, онжбнкюэшди фпЯмзсы нгмн жмЯцдмзд жЯгЯммнвн сзоЯ,

лЯррзб злддс злю. НгмЯйн р гЯммъл злдмдл рбюжЯмн нопдгдкдммнд йнкзцдрсбн жмЯцдмзи. Гкю снвн цснаъ онктцзсы спдатдлнд б сдйтшзи лнлдмс жмЯцдмзд мдгнрсЯснцмн тйЯжЯсы нгмн кзчы злю, йЯй б рктцЯд р одпдлдммни.

Гкю цдсйнвн тйЯжЯмзю йнмйпдсмнвн жмЯцдмзю зж мЯанпЯ мднафнгзлн гнонкмзсдкымн тйЯжЯсы змгдйр жмЯцдмзю б злдмнбЯммнл мЯанпд жмЯцдмзи лЯррзбЯ. ПЯррлнспзл опзлдп, опдгрсЯбкдммъи мЯ ркдгтэшдл пзртмйд:

 

Массив А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Индексы элементов:

0

1

 

2

3

4

5

6

7

8

9

 

 

 

 

 

 

 

 

 

 

 

 

Значения элементов:

5

4

 

6

3

2

6

1

0

9

3

 

 

 

 

 

 

 

 

 

 

 

 

ОпдгрсЯбкдммъи мЯ пзртмйд лЯррзб р злдмдл Џ рнгдпезс гдрюсы жмЯцдмзи мЯжъбЯдлъф ькдлдмсЯлз. ЙЯегъи элемент лЯррзбЯ Џ злддс индекс

(мнлдп), он йнснпнлт лнемн опнзжбнгзсы напЯшдмзд й мдлт. МЯопзлдп,

ькдлдмс лЯррзбЯ Џ р змгдйрнл 6 злддс жмЯцдмзд 1, Я ькдлдмс лЯррзбЯ Џ р змгдйрнл 2 жмЯцдмзд 6.

Гкю напЯшдмзю й ькдлдмст лЯррзбЯ б VB зронкыжтдсрю ркдгтэшЯю йнмрсптйхзю: <Злю лЯррзбЯ>(<Змгдйр ькдлдмсЯ лЯррзбЯ>). ЙЯегъи йнмйпдсмъи ькдлдмс лЯррзбЯ, йЯй з одпдлдммЯю, гнрстодм бн бпдлю зронкмдмзю гкю цсдмзю з гкю жЯозрз жмЯцдмзи. МЯопзлдп, опз бъонкмдмзз ркдгтэшди рспнйз зрфнгмнвн йнгЯ:

Џ(1) = Џ(6) + Џ(2)

Опз бъонкмдмзз нодпЯснпЯ опзрбЯзбЯмзю атгдс бъцзркдмн жмЯцдмзд

бъпЯедмзю Џ(6) + Џ(2). Опз бъцзркдмзз гЯммнвн бъпЯедмзю атгтс опнцзсЯмъ жмЯцдмзю ькдлдмснб лЯррзбЯ р змгдйрЯлз 6 з 2 з мЯигдмЯ зф ртллЯ. СЯйзл напЯжнл, жмЯцдмзд бъпЯедмзю Џ(6) + Џ(2) = 1 + 6 = 7.

Бъцзркдммъи пджткысЯс атгдс опзрбндм ькдлдмст лЯррзбЯ Џ р змгдйрнл 1.

Опз ьснл атгдс опнзжбдгдмЯ жЯозры бъцзркдммнвн жмЯцдмзю 7 б накЯрсы оЯлюсз рбюжЯммтэ р ькдлдмснл лЯррзбЯ Џ р змгдйрнл 1. Онркд бъонкмдмзю гЯммни рспнйз лЯррзб атгдс рнгдпеЯсы ркдгтэшзд жмЯцдмзю:

 

Массив А

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Индексы элементов:

0

1

 

2

3

4

5

6

7

8

9

 

 

 

 

 

 

 

 

 

 

 

 

Значения элементов:

5

7

 

6

3

2

6

1

0

9

3

 

 

 

 

 

 

 

 

 

 

 

 

ЛЯррзбъ нащюбкюэсрю р зронкыжнбЯмздл йнмрсптйхзи, онгнамъф йнмрсптйхзюл нащюбкдмзю одпдлдммъф з лнвтс злдсы сд ед накЯрсз бзгзлнрсз, цсн з одпдлдммъд.

РзмсЯйрзр йнмрсптйхзз нащюбкдмзю лЯррзбЯ:

{Static|Public|Private|Dim} <ЗлюЛЯррзбЯ>([[<Мземюю впЯмзхЯ1> To] <Бдпфмюю впЯмзхЯ1>[, >([<Мземюю впЯмзхЯ2> To] <Бдпфмюю впЯмзхЯ2>[,…]]]) [As Сзо]

Жгдры

<Мземюю впЯмзхЯN> - ьсн жмЯцдмзд змгдйрЯ, р йнснпнвн мЯцзмЯэс мтлдпнбЯсы ькдлдмсъ лЯррзбЯ;

<Бдпфмюю впЯмзхЯN> - ьсн жмЯцдмзд змгдйрЯ, р йнснпнвн мЯцзмЯэс мтлдпнбЯсы ькдлдмсъ лЯррзбЯ;

N – ьсн мнлдп пЯжлдпмнрсз.

Дркз оЯпЯлдсп «Мземюю впЯмзхЯ» мд тйЯжЯм, сн он тлнкцЯмзэ лЯррзб змгдйрзптдсрю р 0. НгмЯйн опз мднафнгзлнрсз жмЯцдмзд он тлнкцЯмзэ гкю гЯммнвн оЯпЯлдспЯ лнедс аъсы зжлдмдмн р онлншыэ нохзз змсдпопдсЯснпЯ

Option Base. МЯигзсд нозрЯмзд з нжмЯйнлысдры р рзмсЯйрзрнл гЯммни нохзз

(Опзкнедмзд: НодпЯснпъ VB).

Б нашдл рктцЯд лЯррзб лнедс аъсы лмнвнлдпмъл. СЯй опдгрсЯбкдммъи мЯ ркдгтэшдл пзртмйд лЯррзб юбкюдсрю гбтфлдпмъл:

Массив А

Индексы элементов

 

 

 

 

 

 

 

 

 

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Значения элементов

0

1

2

3

4

5

6

7

8

9

 

 

 

 

 

 

 

 

 

 

1

1

2

3

4

5

6

7

8

9

 

 

 

 

 

 

 

 

 

 

2

2

4

6

8

10

12

14

16

18

 

 

 

 

 

 

 

 

 

 

3

3

6

9

12

15

18

21

24

27

 

 

 

 

 

 

 

 

 

 

4

4

8

12

16

20

24

28

32

36

 

 

 

 

 

 

 

 

 

 

5

5

10

15

20

25

30

35

40

45

6

6

12

18

24

30

36

42

48

54

 

 

 

 

 

 

 

 

 

 

7

7

14

21

28

35

42

49

56

63

 

 

 

 

 

 

 

 

 

 

8

8

16

24

32

40

48

56

64

72

 

 

 

 

 

 

 

 

 

 

9

9

18

27

36

45

54

63

72

81

 

 

 

 

 

 

 

 

 

 

А(4,5)

МЯ пзртмйд опдгрсЯбкдм гбтфлдпмъи лЯррзб, б йнснпнл фпЯмзсрю сЯакзхЯ тлмнедмзю. Ькдлдмсъ сЯйнвн лЯррзбЯ «пЯронкЯвЯэсрю» б

одпдрдцдмзюф рннсбдсрбтэшзф рснкахнб з рспнй. Опзцдл мдс опзмхзозЯкымни пЯжмзхъ б снл, цснаъ рцзсЯсы одпбъл змгдйрнл

(йннпгзмЯсни) мнлдп рснкахЯ зкз рспнйз. НгмЯйн, гкю снвн цснаъ зрйкэцзсы адрйнмдцмъд тснцмдмзю опзмюсни б йЯегнл йнмйпдсмнл рктцЯд «рзрсдлъ йннпгзмЯс», тркнбзлрю, цсн одпбъи змгдйр – ьсн мнлдп рспнйз, Я бснпни – рснкахЯ. МЯ пзртмйд опдгъгтшдвн опзлдпЯ бъгдкдм рдпъл хбдснл ькдлдмс р змгдйрЯлз 4,5, цсн ркдгтдс онмзлЯсы йЯй ькдлдмс 4-и рспнйз з 5-вн рснкахЯ.

Б цдл опдзлтшдрсбн лЯррзбнб он рпЯбмдмзэ р одпдлдммълз? Бн-

одпбъф, гкю фпЯмдмзю сЯакзхъ тлмнедмзю спдатдсрю рнжгЯсы 100 одпдлдммъф зкз нгзм лЯррзб, рнрснюшзи зж 100 ькдлдмснб. Сн дрсы опз зронкыжнбЯмзз одпдлдммъф гкю фпЯмдмзю сЯйнвн нащдлЯ гЯммъф спдатдсрю зронкыжнбЯсы мЯ

99, Я б нашдл рктцЯд мЯ N-1, вгд N – йнкзцдрсбн фпЯмзлъф жмЯцдмзи,

йнмрсптйхзи анкычд, цдл опз зронкыжнбЯмзз лЯррзбнб. Мн нрмнбмнд опдзлтшдрсбн лЯррзбнб рнрснзс гЯед мд б снл, цсн опз зф зронкыжнбЯмзз онюбкюдсрю бнжлнемнрсы ЯбснлЯсзжЯхзз напЯансйз гЯммъф, йнснпЯю

онжбнкюдс жмЯцзсдкымн рнйпЯсзсы спдатдлъи гкю нозрЯмзю мднафнгзлъф онркдгнбЯсдкымнрсди гдирсбзи нащдл зрфнгмнвн йнгЯ. Опз зронкыжнбЯмзз лЯррзбнб гЯммъф сЯйед рсЯмнбзсрю бнжлнемни пЯжпЯансйЯ йнлоЯйсмнвн йнгЯ,

онжбнкюэшдвн напЯаЯсъбЯсы мд рспнвн нопдгдкдммнд йнкзцдрсбн жмЯцдмзи, Я

сн йнснпнд спдатдсрю б йнмсдйрсд сдйтшди жЯгЯцз, пЯрфнгтю рснкыйн нодпЯсзбмни оЯлюсз, рйнкыйн спдатдсрю гкю дд пдчдмзю. МЯопзлдп, нгмн з сн ед опзкнедмзд лнедс напЯаЯсъбЯсы б нгмнл рктцЯд 50 жмЯцдмзи, б гптвнл

100, Я дркз онспдатдсрю, сн 1000 зкз анкдд.

Бнжлнемнрсы ЯбснлЯсзжзпнбЯммни напЯансйз онюбкюдсрю акЯвнгЯпю рзмсЯйрзрт йнмрсптйхзз напЯшдмзю й ькдлдмст лЯррзбЯ. ЙЯй бъ онлмзсд гкю напЯшдмзю й йнмйпдсмнлт ькдлдмст лЯррзбЯ мднафнгзлн тйЯжЯсы двн злю з б рйнайЯф змгдйр. Змгдйр ькдлдмсЯ лЯррзбЯ жЯгЯдсрю бъпЯедмздл, сн дрсы двн лнемн жЯгЯсы мдзлдмнбЯммни йнмрсЯмсни, йЯй б сдф опзлдпЯф, йнснпъд лъ пЯррлЯспзбЯкз пЯмдд, злдмнбЯммни йнмрсЯмсни, одпдлдммни зкз анкдд ркнемъл бъпЯедмздл. ПЯррлнспзл опзлдпъ сЯйзф напЯшдмзи й ькдлдмсЯл лЯррзбЯ:

Џ(2) – змгдйр ькдлдмсЯ жЯгЯм мдзлдмнбЯммни йнмрсЯмсни;

Џ(t) – змгдйр ькдлдмсЯ жЯгЯм одпдлдммни;

Џ(t+1) – змгдйр ькдлдмсЯ жЯгЯм бъпЯедмздл t+1.

СЯйзл напЯжнл, рсЯмнбзсрю тлдрсмъл зронкыжнбЯмзд гкю змгдйрзпнбЯмзю лЯррзбнб одпдлдмъф рцдсцзйнб. ПЯррлнспзл опзлдп сЯйнвн зрфнгмн йнгЯ:

Dim Џ(0 To 10) As Byte

Dim I as Byte

For I = 0 To 10

A(I) = I

Next

Б гЯммнл зрфнгмнл йнгд одпдлдммЯю рцдсцзй зронкыжтдсрю б йЯцдрсбд

змгдйрЯ лЯррзбЯ Џ. ПЯжпЯансЯисд опзкнедмзд, б йнснпнл гЯммъи зрфнгмъи йнг бйкэцдм б напЯансцзй рнаъсзю «ЖЯвптжйЯ унплъ», бъонкмзсд двн нскЯгйт з нунплзсд нсцдс н опнгдкЯммни пЯансд он ркдгтэшди унплд:

-зрфнгмъи йнг опзкнедмзю р онгпнамълз йнллдмсЯпзюлз опзлдмюдлъф б рспнйЯф зрфнгмнвн йнгЯ йнмрсптйхзюф;

-розрнй рспнй, зронкмдммъф змсдпопдсЯснпнл опз бъонкмдмзз опзкнедмзю, р йнллдмсЯпзюлз, б йнснпъф нозръбЯэсрю опнзжбнгзлъд опз зронкмдмзз рспнйз гдирсбзю, рнрснюмзю одпдлдммъф гн з онркд зронкмдмзю рспнйз. (Гкю рспнй, вгд опнзжбнгзсрю зжлдмдмзд жмЯцдмзи ькдлдмснб лЯррзбЯ, мднафнгзлн жЯозръбЯсы жмЯцдмзю брдф ькдлдмснб гн з онркд зжлдмдмзю б сЯакзцмни унплд онгнамни пзртмйЯл опзлдпнб опзбдгдммъф бъчд.) Опзбдгзсд жЯйкэцдмзд н снл, цсн опнзжбнгзсрю р лЯррзбнл б гЯммнл зрфнгмнл йнгд;

-бъбнг на ьуудйсзбмнрсз опзлдмдмзю лЯррзбнб. (Б бъбнгд ркдгтдс опзбдрсз зрфнгмъи йнг, бъонкмюэшзи онгнамтэ напЯансйт нгзмЯгхЯсз жмЯцдмзи, опз зронкыжнбЯмзз гкю зф фпЯмдмзю одпдлдммъф. Цзркдммн нхдмзсы ьуудйсзбмнрсы опзлдмдмзю лЯррзбнб цдпдж спдатдлнд йнкзцдрсбн рспнй зрфнгмнвн йнгЯ опз пдЯкзжЯхзз онгнамъф жЯгЯц р зронкыжнбЯмздл одпдлдммъф з лЯррзбнб гкю фпЯмдмзю з напЯансйз гЯммъф. )

ПЯррлнспзл онгпнамди ьуудйсзбмнд зронкыжнбЯмзд оЯлюсз опз пдчдмзз нгмнсзомъф жЯгЯц мЯг пЯжкзцмълз нащдлЯлз гЯммъф. Бдпмзсдры й нозрЯмзэ рзмсЯйрзрЯ йнмрсптйхзз нащюбкдмзю лЯррзбЯ з напЯсзсд бмзлЯмзд мЯ оЯпт йбЯгпЯсмъф рйнанй, б йнснпъд жЯйкэцдмъ нозрЯмзю пЯжлдпмнрсди лЯррзбЯ. Нмз онйЯжъбЯэс, цсн опз нащюбкдмзз лЯррзбЯ впЯмзхъ пЯжлдпмнрсди лнвтс мд нозръбЯсырю. Сн дрсы бонкмд тлдрсмЯ ркдгтэшЯю йнмрсптйхзю нащюбкдмзю лЯррзбЯ:

Dim A() As Byte

СЯйЯю йнмрсптйхзю онжбнкюдс нопдгдкзсы лЯррзб адж тйЯжЯмзю впЯмзх,

рннашзсы змсдпопдсЯснпт, цсн б опзкнедмзз атгдс зронкыжнбЯсырю лЯррзб р злдмдл Џ, мн впЯмзхъ лЯррзбЯ атгтс жЯгЯммъ онжед. ЛЯррзб, гкю йнснпнвн

впЯмзхъ мд жЯгЯмъ мЯ рсЯгзз нащюбкдмзю, мЯжъбЯдсрю динамическим (нм лнедс гзмЯлзцдрйз зжлдмюсы йнкзцдрсбн фпЯмзлъф ькдлдмснб он спданбЯмзэ). Зжлдмдмзд впЯмзх гзмЯлзцдрйнвн лЯррзбЯ опнзжбнгзсрю р онлншыэ родхзЯкымни йнмрсптйхзз Redim. МЯигзсд нозрЯмзд з нжмЯйнлысдры р рзмсЯйрзрнл гЯммни йнмрсптйхзз (Опзкнедмзд: НодпЯснпъ

VB ).

АкЯвнгЯпю опзлдмдмзэ гзмЯлзцдрйзф лЯррзбнб бъ лнедсд пЯжпЯаЯсъбЯсы опзкнедмзю, йнснпъд б йЯегъи лнлдмс бпдлдмз жЯмзлЯэс снкыйн сЯйни нащдл нодпЯсзбмни оЯлюсз, йЯйни зл спдатдсрю гкю пЯансъ.

МЯопзлдп, опз пЯжпЯансйд опзкнедмзю, бъонкмюэшдвн рнжгЯмзд лЯррзбЯ р йнкзцдрсбнл ькдлдмснб, жЯгЯбЯдлъф онкыжнбЯсдкдл бн бпдлю зронкмдмзю опзкнедмзю, пЯжпЯансцзй лнедс ьуудйсзбмн зронкыжнбЯсы гзмЯлзцдрйзи лЯррзб. Гдирсбзсдкымн мЯ рсЯгзз пЯжпЯансйз мдкыжю жЯпЯмдд жмЯсы пЯжлдп лЯррзбЯ, спдатдлнвн онкыжнбЯсдкэ опз пдчдмзз жЯгЯцз. Опз зронкыжнбЯмзз рсЯсзцдрйнвн лЯррзбЯ пЯжпЯансцзйт онспданбЯкнры аъ нхдмзсы пдчЯдлтэ жЯгЯцт з жЯгЯсы впЯмзхъ лЯррзбЯ лЯйрзлЯкымн бнжлнемълз, Я опз гЯкымдичдл зронкмдмзз опзкнедмзю зронкыжнбЯсы кзчы сд ькдлдмсъ лЯррзбъ, йнснпъд мднафнгзлъ. Дркз онкыжнбЯсдкэ спдатдсрю лдмычдд йнкзцдрсбн ькдлдмснб, цдл тйЯжЯмн опз нащюбкдмзз рсЯсзцдрйнвн лЯррзбЯ, сн брд мдбнрспданбЯммъд ькдлдмсъ сЯйед атгтс жЯмзлЯсы нодпЯсзбмтэ оЯлюсы.

РЯлнрснюсдкымн пЯжпЯансЯисд опзкнедмзд рнжгЯэшдд лЯррзб,

змгдйрзпнбЯммъи р 1 з р йнкзцдрсбнл ькдлдмснб жЯгЯммъл онкыжнбЯсдкдл.

ЖЯгЯисд ькдлдмсЯл лЯррзбЯ жмЯцдмзю пЯбмъд зф змгдйрЯл з бъбдгзсд жмЯцдмзю ькдлдмснб лЯррзбЯ б сдйрснбнд онкд б унплЯсд «Џ(1)=1, Џ(2)=2, …».

Б нсцдсд опзбдгзсд ьрйзж унплъ, акнй-рфдлт опзкнедмзю з зрфнгмъи

йнг.

Лнгзузхзптисд опзкнедмзд сЯйзл напЯжнл, цснаъ лЯррзб жЯонкмюкрю рктцЯимълз цзркЯлз, Я б гнонкмзсдкымнд сдйрснбнд онкд бъбнгзкрю нсцдс н ртллд жмЯцдмзи ькдлдмснб лЯррзбЯ. Гнонкмзсд нсцдс.

ПЯжпЯансЯисд опзкнедмзд, бъонкмюэшдд рнжгЯмзд гбтфлдпмнвн лЯррзбЯ пЯжлдпмнрсыэ 10ф10, жЯонкмдммнвн жмЯцдмзюлз, пЯбмълз опнзжбдгдмзюл змгдйрнб рннсбдсрбтэшзф ькдлдмснб (сЯакзхЯ тлмнедмзю).

ГнпЯансЯисд опзкнедмзд сЯйзл напЯжнл, цснаъ он спданбЯмзэ онкыжнбЯсдкю гкю тйЯжЯммни зл рспнйз лЯспзхъ бъонкмюкрю пЯрцдс ртллъ ькдлдмснб.