Вторник, 12.11.2019, 16:48
Главная | Регистрация | Вход Приветствую Вас Гость | RSS


Меню сайта


Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0


Тестування онлайн
тестування онлайн 


Социальные закладк

Приложение:  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
            Massiv(i) = Fix(Rnd() * 50)         ' заполняем массив случайными числами
        Next i

  

 ' вывод массива:

        For i = 0 To 10  
            z = "Индекс массива:   " & i  &  vb Tab  & "Значение:  " & Massiv(i)     '   в цикле записываем текущее  значение        массивa в переменную  z   

             MessageBox.Show(z)     'вывод текущих значений массива в "Окно сообщений" 

            ListBox1.Items.Add("Massiv("  &  i  &  ")  =    "  &  Massiv(i))   'вывод значений элементов массива в список (ListBox1)         
        Next i

    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

Форма входа
Поиск
Календарь
«  Ноябрь 2019  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Рейтинг@Mail.ru
    Copyright MyCorp © 2019
    Конструктор сайтов - uCoz