Приложение: massiv1.rar
dinam massiv2
poick k.rar
poick elementov.rar
Занятие 33.Одномерные массивы
Для решения задач, в которых обрабатываются значения большого количества переменных, можно пойти таким путем: рассматривать все эти переменные как элементы некоторого упорядоченного набора переменных. Такому набору переменных можно присвоить имя, а каждая отдельная переменная набора будет определяться именем набора и своим порядковым номером в этом наборе.
Упорядоченный набор переменных одного типа называется массивом.
- Каждая переменная, входящая в массив, называется элементом массива.
- Массив, в котором каждый элемент определяется только одним порядковым номером, называется одномерным.
- Имя каждого элемента одномерного массива состоит из имени массива и взятого в скобки порядкового номера этого элемента в массиве.
VB.Net массивы
Массивы нужны для более удобного хранения информации. По сути, массив это та же переменная, но обращаться к ней надо по индексу.
Синтаксис объявления одномерного массива:
Dim Переменная (количество индексов) As Тип |
Пример 1 Заполнение массива случайными числами.
Интерфейс проекта
Программный код
Public Massiv(10) As Byte
Public z As String
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Byte
Randomize() ' этот оператор нужен чтобы функция Rnd() генерировала всегда разные числа в заданном диапазоне
' формирование массива: For i = 0 To 10 ' цикл длится от 0 до 10 |
' вывод массива: For i = 0 To 10 MessageBox.Show(z) 'вывод текущих значений массива в "Окно сообщений" ListBox1.Items.Add("Massiv(" & i & ") = " & Massiv(i)) 'вывод значений элементов массива в список (ListBox1) |
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListBox1.Items.Clear()
z = ""
End Sub
Динамический массив
Синтаксис объявления одномерного динамического массива:
Dim a( ) As Single 'массив переменной размерности (динамический) |
ReDim a(n) ' переопределение размерности массива
Обращаем ваше внимание, что нумерация элементов динамического массива всегда начинается с 0.
Пример 2. Формирование динамического массива.
Интерфейс проекта
Блок - схема
Программный код
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a() As Single 'массив переменной размерности (динамический)
Dim i, n As Integer
Randomize()
n = Val(TextBox1.Text)
ReDim a(n) ' переопределение размерности массива
For i = 0 To n
a(i) = 20 * Rnd() 'формирование элементов массива
ListBox1.Items.Add("a(" & Str(i) & ") = " & vbTab & Format(a(i), "00.### ")) 'вывод элементов массива
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListBox1.Items.Clear()
TextBox1.Clear()
TextBox1.Focus()
End Sub
Пример 3.
Определить, сколько раз встречается данное действительное число среди значений элементов данного массива из десяти действительных чисел.
Очевидно, что для решения этой задачи нужно просмотреть последовательно значения всех элементов массива, сравнить каждое из них с данным числом, и если некоторое из них равно этому числу, то увеличить счетчик таких элементов массива на 1.
Интерфейс проекта
Блок - схема проекта
Программный код
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim A(15) As Integer
Dim k, i, n As Integer
n = 0 'счетчик
For i = 1 To 15
Randomize()
A(i) = Fix(10 - 20 * Rnd()) 'формирование элементов массива
ListBox2.Items.Add("A(" & i & ")" & vbTab & " = " & A(i)) 'вывод элементов массива
Next i
k = Val(InputBox("введите k", "поиск по k"))
For i = 1 To 15 'поиск элементов по условию
If A(i) = k Then
n = n + 1
ListBox1.Items.Add("A(" & i & ")" & " = " & A(i) & vbTab & vbTab & "n= " & n)
End If
Label2.Text = "n = " & Str(n)
Next i
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
ListBox1.Items.Clear()
ListBox2.Items.Clear()
Label2.Text = ""
End Sub
Задание. Определить элементы данного массива из десяти действительных чисел, значения которых больше данного действительного числа.
Очевидно, что как и в примере 2, нужно просмотреть последовательно значения всех элементов массива и выяснить, какие из них больше, чем заданное число. Возникает вопрос, где хранить значения этих элементов массива:
- Ведь в зависимости от значений элементов массива и от данного числа, количество таких элементов может быть разным: от 0 до 10.
- Найденные по условию элементы массива будем заносить в другой (динамический массив).
PS!!! В языке программирования Visual Basic есть возможность использовать массивы, количество элементов которых предварительно неизвестно и может изменяться в ходе выполнения проекта. Такие массивы называются динамическими. В отличие от них, массивы, количество элементов которых известно предварительно и не изменяется в ходе выполнения проекта, называются статическими.
Вариант интерфейса проекта
Вариант блок - схемы
Вариант программного кода
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim A(10), Z( ) As Single
Dim k As Single
Dim i, n As Integer
n = 0 : Randomize()
For i = 1 To 10
A(i) = 10 - 20 * Rnd()
ListBox2.Items.Add("A(" & i & ")" & vbTab & "= " & Format(A(i), "##.000"))
Next i
k = Val(InputBox("введите k", "поиск по k"))
For i = 1 To 10
If A(i) >= k Then
n = n + 1
ReDim Z(n)
Z(n) = A(i)
ListBox2.Items.Add("z(" & n & ")" & " = " & Format(Z(n), "##.000"))
End If
Label2.Text = "n = " & Str(n)
Next i
End Sub