Суббота, 2024-05-18

Professor VB - примеры на VB.net и C#
Меню сайта
Вход на сайт
Категории раздела
Уроки VB.net [25]
VB.net и математика [13]
Random VB [4]
VB.net - разное [7]
VB.net - Примеры программ [2]
Главная » Статьи » VB.net » Уроки VB.net

VB.net - Многомерные массивы.

VB.net - Многомерные массивы.



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

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

Объявление

Использование

Определение размера

ПРИМЕР 1

ПРИМЕР 2

Преимущества и недостатки многомерных массивов

 

Объявление

Начнем с объявления.

Для объявления одномерных массивов используют следующие варианты.


    Dim massiv0()                          ' не определенный массив

    Dim massiv1(n)                        ' массив размера n, содержит элементы от 0 до n-1

    Dim massiv2()={0,1,2,3}           ' массив чисел, размер массива 4

    Dim massiv3()={"0","1","2","3"} ' массив строк, размер массива 4

    



Для определения многомерных массивов используется похожая конструкция:


    Dim mass0(,)
    Dim mass0(n,m)

    



    
Многомерный массив представляет из себя массив массивов. То есть каждый элемент является переменной типа массив.
 
Массивы могут иметь как одинаковый размер, так и произвольный.

 


   
    'задаем 2 мерный масссив размера 3 с массивами одинакового размера

    Dim mass() = {({"00", "01"}), ({"10", "11"}), ({"20", "21"})}
    
    'задаем многомерный масссив размера 3 с массивами различной длины    
    
    Dim mass2() = {({"дом", "дворец", "хата", "халупа"}), _
                   ({"автомобиль", "машина", "таратайка"}), _
                   ({"деньги", "бабки", "лаве", "фантики", "баксы"})}



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

 

Использование

Для вывода элемента массива мы пишем имя массива и индекс элемента.



MsgBox(mass(0))


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


              
'вывод элемент массива
        MsgBox(mass(0)(1))

 


 

Определение размера

      
Таким же образом поступаем и с определением размера массива.
 


       
        'размер массива - количество членов массива
        MsgBox(mass.Length)


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

 


 
        'размер массива - размерность определенного члена массива
        MsgBox(mass(0).Length) '2


        
ПРИМЕР 1

Небольшой пример использования многомерных массивов.

Имеется 3 картинки, в массиве задаем ссылки на ресурсы.

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

На форму поместим 4 пикчербокса - в первые три будут выводиться определенные картинки, а в четвертый случайная.

Также добавим 4 ярлыка - соответсвующие подписи к рисункам.

      


 
 Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

'массив с сылками на картинки
        Dim massRes() = {My.Resources.kot, My.Resources.pl, My.Resources.list}

'многомерный массив свойств

        Dim mass2() = {({"кот", "кошка", "белый", "пушистый"}), _
                       ({"плащ", "желтый"}), _
                       ({"лист", "клен", "оранжевый"})}

        Randomize()

        Label1.Text = mass2(0)(Int(Rnd() * mass2(0).Length))
        Label2.Text = mass2(1)(Int(Rnd() * mass2(1).Length))
        Label3.Text = mass2(2)(Int(Rnd() * mass2(2).Length))


        PictureBox1.Image = massRes(0)
        PictureBox2.Image = massRes(1)
        PictureBox3.Image = massRes(2)

        'случайный элемент массива
        Dim x = Int(Rnd() * mass2.Length)
        Label4.Text = mass2(x)(Int(Rnd() * mass2(x).Length))
        PictureBox4.Image = massRes(x)

    End Sub

       


Под каждой картинкой появляется только та подпись, которая ей соответствует.

 

ПРИМЕР 2

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

Создадим его:

Он будет содержать массивы с такой структурой: ссылка на картинку из ресурсов, число и 2 строковые переменные.


 Dim mass2() = {({My.Resources.kot, 0, "кот", "белый", "пушистый"}), _
                       ({My.Resources.pl, 1, "плащ", "желтый", ""}), _
                       ({My.Resources.list, 2, "лист", "клен", "оранжевый"})}


В пикчербокс выводим изображение, а в соответствующие ярлыки - число и строки


Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        Dim mass2() = {({My.Resources.kot, 0, "кот", "белый", "пушистый"}), _
                       ({My.Resources.pl, 1, "плащ", "желтый", ""}), _
                       ({My.Resources.list, 2, "лист", "клен", "оранжевый"})}

        PictureBox1.Image = mass2(a)(0)
        Label1.Text = mass2(a)(1)
        Label2.Text = mass2(a)(2)
        Label3.Text = mass2(a)(3)
        Label4.Text = mass2(a)(4)

        If a = mass2.Length - 1 Then
            a = 0
        Else
            a += 1
        End If

    End Sub

 


        
Теперь по нажатию на кнопку изменится и картинка и описание.

Получилась небольшая база данных.

 

Преимущества и недостатки многомерных массивов


Преимущества многомерных массивов как и у одномерных

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

Недостатки.
Кроме недостатков одномерных массивов, а именно

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

добавляется большее потребления памяти:

Общее количество элементов данного массива определится как
mas(2,3) as int
КоличествоСтрок * КоличествоСтолбцов = 2 * 3 = 6.
Количество байт памяти, требуемых для размещения массива, определится как
КоличествоЭлементов * РазмерЭлемента = 6 * 4 = 24 байта.

На сегодня это все.

 

Смотреть видео

В начало

 

 



 

Категория: Уроки VB.net | Добавил: ProfessorVB (2016-10-03)
Просмотров: 4116 | Теги: многомерные, массивы, Vb.net, недостатки, Использование, размер | Рейтинг: 5.0/1
Всего комментариев: 0
avatar
Облако тегов
Поиск
Друзья сайта
  • www.youtube.com

  • vk.com/professorvb

  • Партнерка AIR

  • Партнерка VSP Group
  • Поделись с друзьям
    Теги
    Видео Switch массивы уравнения геометрия continue forEach while Обработка событий задать цвет C# math Vb.net xml количество элементов xml поиск значений математика видеоуроки Soft системы Google pirat Proxy tor НОД нок добавление записи в xml поиск Уроки генератор hello world время деструкторы конструкторы дроби калькулятор десятичные дроби решебник сокращение дробей си шарп мнемоника тренажер random количество дней между датами professorvb дата Урок mindgames алгебра многомерные слова словарь Пароль cos SIN база timer рандом Цикл Break DO for RGB условия массив элементов xml редактирование xml создание вирус MenuStrip AntiCenz fri-gate запрещенные сайты база данных Open RichTextBox XML удалить из xml save TopMost анекдот создать XML Классы Тест OpenFileDialog английский развитие иностранные слова DateTimePicker календарь массив перемешивание массива Анаграммы Рифмоплет Сравнение дробей Меморина скорочтение Использование ребусы комплексные числа программа генератор имен
    Copyright ProfessorVB © 2024