Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПиОА_1 семестр_1 / ПОСОБИЕ_VB.Net

.pdf
Скачиваний:
658
Добавлен:
06.03.2016
Размер:
3.4 Mб
Скачать

5. ПОДПРОГРАММЫ ПОЛЬЗОВАТЕЛЯ

Если в программе возникает необходимость частого обращения к некоторой группе операторов, то рационально сгруппировать такую группу в самостоятельный блок, к которому можно обращаться по имени из любого места в программе.

Программные блоки, созданные самим пользователем называ-

ются подпрограммами пользователя.

Каждой пользовательской подпрограмме дается уникальное имя. Передача данных в подпрограмму и возврат результата выполнения осуществляется с помощью входных и выходных параметров.

Входной параметр – это переменная, значение которой должно быть установлено до начала работы данной подпрограммы, а выход- ной параметр – это переменная, которая получает свое значение в результате работы подпрограммы.

Имя подпрограммы и ее параметры записываются в заголовке подпрограммы.

Различают формальные параметры – параметры, определенные в заголовке подпрограммы, и фактические параметры – выражения, задающие конкретные значения при обращении к подпрограмме.

Имеется два типа пользовательских подпрограмм:

-процедуры (Sub);

-функции (Function).

Главные отличия функции от процедуры:

-результат работы функции – единственное значение, а результат работы процедуры – одно значение, несколько значений или ни одного;

-обращение к функции является разновидностью операнда, т.е. функция включается в состав выражения (арифметического, логического, строкового и др.). При этом говорят, что функция возвращает свое значение. Вызов же процедуры – это разновидность оператора.

8

5.1.Процедуры пользователя

Формат пользовательской процедуры:

Sub Имя процедуры ([Формальные параметры])

Описание локальных переменных

Операторы тела процедуры

End Sub

Чтобы процедура была доступна из любого места программного кода модуля формы, она создается в начале файла формы сразу после

слов Public Class.

Private Sub Имя процедуры ([Формальные параметры])

Описание локальных переменных

Операторы тела процедуры

End Sub

Формальные параметры перечисляются через запятую с указанием их типов.

Переменные, объявленные внутри процедуры, являются локаль- ными, они доступны только в этой процедуре.

Обращение к процедуре осуществляется в основной программе путем задания имени процедуры и списка фактических параметров в круглых скобках:

Имя процедуры ([Cписок фактических параметров])

При вызове процедуры формальные параметры заменяются фактическими в порядке их следования. Количество, типы и порядок

следования формальных и фактических параметров должно в точ- ности совпадать!

Способ передачи параметров

В VB.Net параметры процедуры могут передаваться двумя спо-

собами: либо по значению (ByVal), либо по ссылке (ByRef).

При передаче по ссылке ByRef вызываемая процедура получает физический адрес памяти передаваемой переменной. В этом случае значение параметра может изменяться, так как вызываемая и вызы-

9

вающая процедуры обращаются к одной и той же области памяти. Обычно так передают выходные параметры процедуры.

При передаче по значению ByVal вызываемая процедура получает копию значения параметра, и изменить его не может. Обычно так передают входные параметры процедуры.

5.2. Функции пользователя

Формат пользовательской функции:

Function Имя функции ([…]) As Тип функции Описание локальных переменных Операторы тела функции

End Function

Чтобы функция была доступна из любого места программного кода модуля формы, она создается в начале файла формы сразу после

слов Public Class.

Private Function Имя функции ([…]) As Тип функции Описание локальных переменных Операторы тела функции

End Function

Формальные параметры перечисляются через запятую с указанием их типов. После ключевого слова As указывается тип возвращаемого функцией значения. В разделе операторов тела функции должен обязательно присутствовать, по крайней мере, один оператор вида:

Имя функции = Вычисленное значение

В этом операторе вычисленное значение присваивается переменной, совпадающей с именем функции. В точку вызова возвращается результат последнего такого присваивания.

Так как обращение к функции является разновидностью операнда, то обращение к функции включается в состав выражения (арифметического, логического, строкового и др.). При вызове функции формальные параметры заменяются фактическими в порядке их сле-

дования. Количество, типы и порядок следования формальных и фактических параметров должно в точности совпадать!

10

Например, функцию

Function Tangens(x) As double

Tangens = sin(x)/cos(x)

End Function

можно вызвать

s = Tangens(pi()/2)

5.3. Рекурсивные процедуры и функции

Слово «рекурсия» происходит от латинского слова «recursio» - возвращение.

Если процедура (или функция) обращается сама к себе как к процедуре (или функции) непосредственно или через цепочку подпрограмм с измененными значениями параметров, то это называется рекурсией.

Например, вычисления факториала можно оформить в виде рекурсивной функции:

Function Fakt (n As byte) As double

Fakt = n * Fakt(n-1)

End Function

Вызов функции в основной программе:

F = Fakt (5)

Как работает рекурсия в этом случае: Fakt = 5*Fakt(4)

Fakt = 4*Fakt(3) Fakt = 3*Fakt(2) Fakt = 2*Fakt(1) Fakt = 1*Fakt(0)

Fakt = 0*Fakt(-1) и т.д.

В итоге – переполнение памяти. Следовательно, при работе с рекурсивными подпрограммами, необходимо обеспечить выход из рекурсии:

11

Function Fakt (n As byte) As double

If n = 0 Then 'Условие выхода из рекурсии

Fakt = 1

Else

Fakt = n * Fakt(n-1)

End If

End Function

Как работает рекурсия в этом случае:

В глубь рекурсии:

Fakt = 5*Fakt(4)

Fakt = 4*Fakt(3)

Fakt = 3*Fakt(2)

Fakt = 1*Fakt(0)

'Остановка рекурсии

Возврат из рекурсии:

Fakt=1*1

Fakt=2*1

Fakt=3*2

Fakt=4*6

Fakt=5*24=120

Количество вызовов подпрограммы самой себя называется глу-

биной рекурсии или глубиной рекурсивных вызовов.

Плюсы рекурсии:

-Для составления функции используется постановка задачи, поэтому ряд задач легче запрограммировать в виде рекурсии

Минусы рекурсии:

-большие расходы оперативной памяти,

-медленная работа при большой глубине рекурсии.

12

5.4. Практическая часть. Подпрограммы пользователя

Задача 5.1. Вычислить площадь четырехгранника, если даны длины его ребер.

Вычисление площади треугольника по формуле Герона необходимо оформить в виде процедуры.

Процедура вычисления площади треугольника:

Private Sub Sq (ByVal x,y,z As Double, ByRef s As Double)

Dim p As Double

p = (x + y + z) / 2

s = math.sqrt(p*(p-x)*(p-y)*(p-z))

End Sub

Пояснение. Формальные параметры:

Входные: длины сторон (x, y, z); Выходной: площадь треугольника s.

Вызов процедуры вычисления площади треугольника в основной программе:

Sq(a,b,c,s1)

Sq(c,d,e,s2)

Sq(b,e,f,s3)

Sq(a,f,d,s4)

s = s1+s2+s3+s4

Фактические параметры:

a, b, c, s1 – в первом обращении c, d, e, s2 – во втором обращении и т.д.

Задача 5.2. Вычислить число сочетаний из n по m: C m =

n!

 

.

n

m! (n m)!

Вычисление факториала оформить в виде рекурсивной функции.

13

Функция вычисления факториала:

Function Fakt (n As byte) As double

If n = 0 Then Условие выхода из рекурсии

Fakt = 1

Else

Fakt = n * Fakt(n-1)

End If

End Function

Вызов функции в основной программе:

Dim c As Double

Dim n, m As Byte

n = 7 : m = 5

c = F(n) / (F(m)*F(n-m))

Задача 5.3. Найти наибольший общий делитель (НОД) двух натуральных чисел. Вычисление НОД оформить в виде рекурсивной функции.

Пояснение. НОД – это наибольшее целое число, на которое делятся оба числа без остатка. Например, НОД (12, 9) = 3.

Великий математик Эйлер (XVIII век) обнаружил, что если В делится на А нацело, то НОД(А, В) = А, в противном случае НОД(А, В) = НОД(В mod А, А).

Рекурсивная функция вычисления НОД:

Function N_D (A As Int32, B As Int32) As Int32

If B mod A = 0 Then N_D = A Else N_D = N_D (B mod A, A)

End Function

14

5.5. Контрольные вопросы

1.Что такое подпрограмма?

2.Что такое функция и процедура? Опишите различия между функцией и процедурой.

3.Где описываются процедуры и функции?

4.Каковы главные отличия функции от процедуры?

5.Что такое формальные и фактические параметры?

6.В чем разница между параметрами, передаваемыми по значению,

ипараметрами, передаваемыми по ссылке?

7.Каким ключевым словом описываются параметры, передаваемые по значению, а каким по ссылке?

8.Как обычно передают входные параметры процедуры: по значению или по ссылке?

9.Какой оператор должен обязательно присутствовать в разделе операторов тела функции?

10.Как осуществляется в программном коде обращение к функциям

ик процедурам?

11.Объясните понятие рекурсии. Опишите алгоритм ее применения.

12.Что такое рекурсивные процедуры и функции?

13.Что такое глубина рекурсии?

14.Как осуществляется выход из рекурсии?

15.Приведите пример рекурсивной процедуры.

16.На плоскости задаются 4 точки своими координатами. Определить, между какими парами точек самое большое расстояние. Для вычисления расстояния используйте подпрограмму-функцию.

17.Создать проект для нахождения наибольшего общего делителя и

наименьшего общего кратного двух натуральных чисел

 

 

a b

 

 

НОК(a, b) =

 

. Используйте подпрограммы.

 

 

 

 

 

 

 

НОД(a, b)

18. Создать проект вычисления суммы факториалов всех четных чисел от m до n .

15

19. Найти все целые корни уравнения ax3 + bx

2 + cx + d = 0 , где

a, b, c, d – заданные целые числа, причем a ≠ 0

и d ≠ 0 . (Целыми

корнями могут быть только положительные и отрицательные де-

лители коэффициента d ).

20.Дано простое число. Составить проект, корый будет находить следующее за ним простое число. Использовать подпрограмму.

21.Натуральные числа a, b, c называюся числами Пифагора, если

выполняется условие a 2 + b 2 = c 2 . Найти все числа Пифагора, меньшие N . Вычисление условия оформить в виде функции (выходной параметр – логического типа).

22.Создайте проект для вычисления частичной суммы бесконечного ряда (задание 20 раздела 4)

(−1) k + 1

k k +1

(2k − 1)!

=

k 1

 

сиспользование рекуррентной формулы:

-при заданном количестве слагаемых ( n = 5 );

-при заданной точности вычислений ( ε = 0,0001).

Вычисление сумм оформите в виде процедур.

16

6. МАССИВЫ

Массив – это конечная упорядоченная совокупность однотип-

ных данных, которая связана с упорядоченным набором целых чисел, называемых индексами.

Массив характеризуется

-именем,

-размерностью,

-размером.

Количество индексов определяет размерность массива: одномерный (вектор), двумерный (таблица) и т. д.

Размер массива задается границами изменения индексов по каждому измерению (минимальное и максимальное значение индекса). Размер массива – это количество его элементов.

Для доступа к элементу массива следует указать имя массива и индексы элемента, заключив их в круглые скобки. Индексы могут быть – константами, переменными или выражениями целого типа.

Одномерный массив соответствует списку, каждый его элемент имеет один индекс, например:

A(1), A(i), A(b*5+2)

Местоположение элемента двумерного массива (таблицы) задается двумя индексами (номером строки и номером столбца), которые записываются после имени массива в круглых скобках через запятую,

например, A(0,1), A(i,j), A(b*5+2,i+1)

Для работы с элементами массива, как правило, используются операторы цикла, чаще всего циклы с параметром, с двумерными массивами используются вложенные циклы.

6.1. Описание массивов

Формат статического описания одномерных массивов:

Dim Имя_массива(Верхняя_граница_индекса) As Tип_данных

Формат статического описания двумерных массивов:

Dim Имя_массива (Верхняя_граница_индекса_по_строкам,

Верхняя_граница_индекса_по_столбцам) As Тип_данных

17

Примечание. Нижняя граница индексов массива в .Net по умолчанию равна

нулю!

Например,

Dim A(10) As Single описывает одномерный массив вещественных чисел A, состоящий из 11 элементов. Нижняя граница индекса равна 0, верхняя – 10.

Dim A (8,9) As Single описывает двумерный массив вещественных чисел A, состоящий из 90 элементов (9×10).

Массивы могут инициализироваться при объявлении, например:

Dim S() As Int32 = {9,7,5,4,2,-37,6}

Dim А(,) As Int32 = {{9,7},{5,4},{2,-37}}

Указывая верхнюю границу массива, пользователь заранее выделяет память под определенное количество элементов.

Массив можно описать динамически, т.е. заранее не выделяя под него память.

Формат динамического описания одномерных массивов:

Dim Имя_массива () As Тип_данных

Например, Dim A() As Single описывает одномерный массив вещественных чисел. Какое число элементов будет в массиве при этом не известно, и память под него заранее не выделяется.

Формат динамического описания двумерных массивов:

Dim Имя_массива (,) As Тип_данных

Например: Dim A(,) As Int32 описывается двумерный массив целых чисел. Какое число элементов будет в массиве при этом не известно, и память под него заранее не выделяется.

Перед тем, как использовать массив, объявленный таким образом, в программном коде необходимо применить процедуру ReDim, с помощью которой указать верхнюю границу индексов массива. Именно ReDim и выделит необходимое количество памяти.

Формат процедуры ReDim для одномерных массивов:

ReDim Имя_массива (Верхняя граница индекса)

18

Формат процедуры ReDim для двумерных массивов:

ReDim Имя_массива (Верхняя_граница_индекса_по_строкам,

Верхняя_граница_индекса_по_столбцам)

При работе с массивами необходимо жестко задать его размер. В дальнейшем размер массива изменен быть не может. Причем, как уже говорилось выше, языками, входящими в .NET, поддерживаются только массивы с верхней границей, равной нулю.

6.2. Класс System.Array для работы с массивами

Все типы данных в .NET являются объектами. Например, когда вы создаете переменную целого типа (Int32), на самом деле создается экземпляр класса System.Int32. Это касается и массивов – любой массив является экземпляром класса System.Array.

Класс System.Array содержит свойства и методы для работы с массивами. Некоторые методы и свойства класса Array представлены в табл. 6.1.

 

Таблица 6.1. Методы и свойства класса Array

 

 

Название

Описание

 

Свойства

 

 

Length

Возвращает общее число элементов во всех измерениях

массива. Ноль, если в массиве нет элементов

 

 

 

Rank

Возвращает ранг (размерность) массива

 

 

 

Методы класса

 

 

GetLength

Возвращает количество элементов в заданном измерении

массива

 

 

 

GetLowerBound

Возвращает индекс первого элемента заданного измере-

ния в массиве.

 

 

GetUpperBound

Возвращает индекс последнего элемента заданного из-

мерения в массиве.

 

 

IndexOf

Ищет первое вхождение в массив указанного объекта

 

 

LastIndexOf

Ищет последнее вхождение в массив указанного объекта

 

 

Sort

Позволяет сортировать элементы одномерного массива

по возрастанию

 

 

 

Copy

Копирует часть одного массива в другой

 

 

 

19

 

Продолжение табл. 6.1

 

Методы экземпляра класса

 

 

GetValue

Ищет значение элемента с указанным индексом

 

 

SetValue

Присваивает значение элементу, находящемуся в указан-

ной позиции

 

 

 

CopyTo

Копирует все элементы одного массива в другой массив,

начиная с указанного индекса

 

 

 

 

Изменяет порядок элементов таким образом, что послед-

Reverse

ний элемент становится первым, предпоследний – вто-

 

рым и так далее

 

 

Примечание. С описанием остальных свойств и методов пространства имен System.Array вы можете ознакомиться в Интернете на сайте Microsoft по адресу:

http://msdn.microsoft.com/en-us/library/system.array

В табл. 6.1 приведены методы класса и методы экземпляра класса. Методы класса определяются именем класса Array. На-

пример, Array.Sort(a).

Для того чтобы при вызове методов класса System.Array не указывать имя класса Array, этот класс следует импортировать в модуль c помощью оператора Imports:

Imports System.Array

Методы экземпляра класса основываются на отдельном экземпляре класса Array и должны уточняться именем экземпляра, например,

Dim b() as int32

b.CopyTo(a, 8),

здесь b – экземпляр класса Array.

Примечание. Все методы класса Array работают с массивами только

фиксированной длины.

Некоторые из приведенных в табл.6.1 методов, например, Sort являются перегруженными, т.е. фактически это несколько методов с одним именем, но имеющих разное количество параметров, причем тип параметров тоже может отличаться.

20

Применение свойств и методов класса Array

Определение размерности массива и количества элементов в массиве.

Для одномерного массива a, состоящего из 10 элементов:

a.Rank вернет значение 1 a.Length вернет значение 10 a.GetLength(0) вернет значение 10

a.GetUpperBound(0) вернет значение 9

Для двумерного массива b, состоящего из двух строк и трех столбцов:

b.Rank вернет значение 2 b.Length вернет значение 6 b.GetLength(0) вернет значение 2 b.GetLength(1) вернет значение 3

b.GetUpperBound(0) вернет значение 1 b.GetUpperBound(1) вернет значение 2

Изменение порядка следования элементов в массиве. Изме-

нить порядок элементов в массиве возможно с помощью двух методов класса Array: путем задания обратного порядка следования элементов (метод Reverse()) и путем сортировки (метод Sort()) .

Метод Reverse()имеет формат:

Array.Reverse(Массив)

Метод Reverse() «перегружен». Если необходимо задать обратный порядок следования только у части массива, достаточно задать еще два параметра: индекс начального элемента и длину части массива, которую нужно изменить:

Array.Reverse(Массив, Нач_номер, Длина)

Метод Sort() также «перегружен». Самый простой вариант его применения выглядит так:

Array.Sort(Массив)

В таком виде метод Sort сортируется весь массив по возрастанию.

21

Если необходимо отсортировать только часть массива, то к параметру Массив следует добавить индекс начального элемента и длину части массива, которую нужно отсортировать:

Array.Sort(Массив, Нач_номер, Длина)

У метода Sort есть ещё одна интересная разновидность, позволяющая сортировать элементы одного массива в соответствии со значениями элементов другого массива:

Array.Sort(Массив_ключей, Массив)

В первом параметре задаётся массив ключей. На основе элементов этого массива будет отсортирован массив, передаваемый во втором параметре. Длины массивов должны быть одинаковыми.

Пример. Массив f содержит фамилии студентов, а в массиве

r – накопленные ими баллы. Отсортировать массив f по накопленным баллам r в порядке убывания.

Dim f() As String ={"Ханов", "Иванов", "Петров", _ "Седов", "Исаев", "Фролов", _ "Макеев", "Тукаев", _ "Шафеев", "Ассев"}

Dim r() As Byte ={29, 38, 24, 7, 18, 5, 28, 94, 79, 32}

Array.Sort(r, f) Array.Reverse(f) Array.Reverse(r)

For i As Byte = 0 To 9

TextBox1.Text &= f(i) & " " & Str(r(i)) & _ Chr(13) & Chr(10)

Next i

Результат работы: Тукаев

94

Шафеев

79

Иванов

38

Ассев

32

Ханов

29

Макеев

28

Петров

24

Исаев

18

Седов

7

Фролов

5

22

Копирование массивов. Метод Copy класса Array позволя-

ет скопировать часть исходного массива, начиная с первого эле- мента, и заменить этой частью элементы принимающего массива,

также начиная с первого элемента. Его формат:

Array.Copy(Исходный массив, Принимающий массив, Длина части исходного массива)

Пример. В исходном массиве b заменить первые два элемента двумя первыми элементами из массива a:

Array.Copy(a, b, 2)

Исходный массив а:

Исходный принимающий массив b:

Результат (массив b):

Метод экземпляра класса CopyTo класса Array копирует все

элементы исходного массива и заменяет ими элементы в принимающем массиве, начиная с указанного индекса:

Исходный массив.CopyTo(Принимающий массив, Индекс в принимающем массиве)

Пример. В исходном массиве a заменить элементы, начиная с индекса 2, элементами массива b:

Dim a(),b() As String

… … … … … … … … … …

b.CopyTo(a, 2)

Массив а:

Массив b:

Результат (массив a):

23

Пример. Добавить массив b в конец массива а. Размерность массива а должна быть объявлена с учетом вставки массива b:

Dim a(),b() As String

'na размерность исходного массива а. 'nb – размерность массива b.

ReDim a(na+nb-1) ' Размерность массива a объявляем с учетом ' вставки массива b

ReDim b(nb-1)

b.CopyTo(a, na)' Копируем массив b в конец массива a

Исходный массив а:

Исходный массив b:

Результат (массив a):

Примечание. Массив класса Array имеет фиксированную длину и не может увеличиваться или уменьшаться в размерах. Поэтому методы Copy и CopyTo фактически заменяют элементы принимающего массива.

Поиск объекта в массиве. Найти первое вхождение указанного объекта в массиве можно с помощью метода IndexOf класса Array, а последнее вхождение – с помощью метода LastIndexOf. Синтаксис у этих двух методов одинаков:

Array.IndexOf(Массив, Объект)

Array.LastIndexOf(Массив, Объект)

Эти методы «перегружены», т.е. у них может быть и большее количество параметров. Например, при следующих параметрах:

Array.IndexOf(Массив, Объект, StartIndex)

метод ищет первое вхождение указанного объекта, начиная с индекса

StartIndex.

Пример. Найти номер первого появления символа "b" в массиве символов a {"a", "b", "c", "a", "b", "c"}:

Array.IndexOf(a, "b")

24

Пример. Найти номер первого появления символа "b" в массиве a,

начиная с заданного индекса k:

Array.IndexOf(a, b, k)

Пример. Найти значение элемента с указанным индексом можно с помощью метода GetValue экземпляра класса Array:

Массив.GetValue(Индекс)

Пример. В заданном массиве a {"1", "2", "3", "4", "5", "6", "7", "8"} найти значение элемента с индексом 2:

a.GetValue(2)

Результат: 3

Примечание. Все описанные выше методы возвращают индекс найденного элемента, если поиск увенчался успехом, и -1, если ничего не найдено.

Замена указанного элемента в массиве. Метод экземпляра класса Array:

Массив.SetValue(Новое_значение_элемента, Индекс)

присваивает новое значение элементу, находящемуся в указанной позиции одномерного массива.

Пример. В заданном массиве a элемент с индексом 0 заменить на слово «Петух»:

Dim a() = {"1", "2", "3", "4", "5", "6", "7", "8"}

… … … … … … … … … …

a.SetValue("петух", 0)

Исходный массив:

Результат :

25

6.3.Класс System.Collections.ArrayList для работы

сдинамическими массивами

В отличие от класса Array, который работает с массивами только фиксированной длины, класс ArrayList пространства имен

System.Collections работает c массивами переменной длины.

Методы класса ArrayList рассматривают одномерные массивы как экземпляры списков и поэтому позволяют спискам увеличиваться и уменьшаться в размерах. В таких списках можно динамически удалять элементы и добавлять новые.

Пространства имен System.Collections содержит разные типы коллекций. Коллекцией можно считать конечную совокупность объектов, с которыми можно совершать те или иные действия. Хотя в

.NET Framework массивы не относится к числу коллекций, но по своему предназначению это тоже коллекции. Массивы отделены от коллекций потому, что они поддерживаются средой исполнения CLR непосредственно.

Основные свойства и методы класса ArrayList представлены в табл. 6.2.

 

 

Таблица 6.2. Методы и свойства класса ArrayList

 

 

 

 

 

Название

Описание

 

 

Свойства

 

 

Count

Получает число элементов, которое в действительности со-

 

держится в списке

 

 

 

 

 

 

 

Методы экземпляра класса

 

 

Add

Добавляет элемент (объект) в конец списка

 

 

 

 

AddRange

Добавляет совокупность объектов в конец списка

 

 

 

 

Remove

Удаляет первое вхождение указанного объекта из списка

 

 

 

 

RemoveAt

Удаление из списка элемента, находящегося в указанной по-

 

зиции

 

 

 

 

 

 

RemoveRange

Удаление из коллекции указанного количества элементов,

 

начиная с указанной позиции

 

 

 

 

Clear

Удаляет все элементы из списка

 

 

 

 

 

 

26

 

 

 

Продолжение табл. 6.2

 

Insert

Вставляет элемент в список по указанному индексу

 

 

 

 

 

InsertRange

Вставляет элементы одного массива в другой массив, начи-

 

ная с указанного индекса

 

 

 

 

 

CopyTo

Копирует список ArrayList или его часть в одномерный

 

массив класса Array.

 

 

 

 

 

 

 

IndexOf

Ищет первое вхождение в список указанного объекта

 

 

 

 

 

LastIndexOf

Ищет последнее вхождение в список указанного объекта

 

 

 

 

 

Reverse

Изменяет порядок элементов во всем списке на обратный.

 

 

 

 

 

Sort

Сортирует элемента списка по возрастанию

 

 

 

 

 

 

 

 

Примечание 1. При использовании методов класса ArrayList необходимо вначале создать экземпляр коллекции с помощью конструк-

тора: Dim a As New ArrayList()

Примечание 2. Для того чтобы при вызове методов класса ArrayList не указывать имя класса, этот класс следует импортировать в модуль c помощью оператора Imports:

Imports System.Collections.ArrayList

Примечание 3. С описанием остальных свойств и методов пространства имен System. Collections вы можете ознакомиться в Интернете на сайте Microsoft по адресу: http://msdn.microsoft.com/en-us/library/system.collections.arraylist

Применение свойств и методов класса ArrayList

Добавление элементов в список. Добавить элемент в конец списка можно с помощью метода Add экземпляра класса

ArrayList:

Список.Add(Oбъект)

Пример. Заполнить список 16 случайными числами:

For i As Int32 = 0 To 15

a.Add(S.Next(1, 9))

Next i

27