Урок 35. Массивы. Заполнение массива

Урок из серии «Программирование на Visual Basic.NET для школьников»

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

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

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

Преимущество в использовании массивов состоит в том, что:

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

Итак ….

Что такое массив?

Массив – это набор однотипных переменных или объектов, объединенных одним именем.

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

Массив может быть одномерным или многомерным.

Размерность массива соответствует числу индексов, необходимых для идентификации отдельного элемента. Можно задать до 32 индексов, хотя случаи использования более трех индексов очень редки.

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

В двумерном массиве два индекса. Его можно представить в виде прямоугольной таблицы. Первый индекс – это номер строки, второй – номер столбца.

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

Доступ к элементу массива производится по его имени, состоящему из имени массива и значению индекса, например N(5).

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

Например, оператор:

a(1) = a(0)

присваивает второму элементу массива значение, равное значению первого элемента.

Как массивы хранятся в памяти компьютера

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

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

Объявление массива

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

Объявим одномерный целочисленный массив, содержащий 10 элементов.

Dim N(9) As Integer

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

Заполнение массива

Для начала работы с массивом необходимо его предварительно заполнить, то есть присвоить элементам массива определенные значения.

Это можно сделать различными способами:

  • заполнить массив случайными числами;
  • заполнить массив символами с клавиатуры;
  • заполнить массив из файла.

Проект «Заполнение массива»

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

  1. Создадим графический интерфейс проектаДля этого поместить на форму:
    • Список ListBox1 для вывода целочисленного массива, заполненного случайными числами;
    • Список ListBox2  для вывода строкового массива, заполненного символами с клавиатуры;
    • Список ListBox3  для вывода строкового массива, заполненного символами алфавита из файла;
    • Кнопки Button1, Button2, Button3 для создания обработчиков событий.

    Visual Basic.NET. Массивы

  2. Заполним массив N(I) целыми случайными числами из диапазона от 1 до 100.На языке Visual Basic.NET для генерации случайных чисел используется функцию Rnd(). При запуске программы функция Rnd() дает псевдослучайную (т.е. каждый раз повторяющуюся) последовательность чисел из диапазона [0, 1].Для получения числовой последовательности случайных чисел из промежутка [0; 100], умножим полученное с помощью функции Rnd() число но 100 и выделим из полученного числа целую часть: Int(Rnd()* 100). Для получения случайных чисел из произвольного интервала [A;B] можно воспользоваться следующей формулой:

    (B – A) * Rnd() +A.

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

    Обработчик события заполнения массива случайными числами

    ' Заполнение массива случайными числами
    
          Dim i, N(9) As integer
          Randomize()
          ListBox1.Items.Clear()
          For i = 0 To 9
              N(i) = Int(Rnd() * 100)
              ListBox1.Items.Add(Str(N(I)))
          Next i
  3. Заполним массив с клавиатуры.Для ввода элементов массива с клавиатуры можно использовать функцию InputBox(). Аргументами этой функции являются две строки, которые отображаются в диалоговом окне ввода, а значением функции – символ, введенный пользователем.Обработчик события заполнения массива с клавиатуры:
     'Заполнение текстового массива из 5 элементов  с клавиатуры
         Dim A(4) As String
         Dim i As integer
         For I = 0 To 4
             A(I) = InputBox("Введите " + Str(I + 1) + " элемент массива:", 
                              "Ввод элементов массива с клавиатуры")
             ListBox2.Items.Add(A(I))
         Next I
  4. Заполним строковый массив буквами русского алфавита из текстового файла.Создадим в текстовом редакторе файл и введем первые 10 букв русского алфавита по одной букве в строке. Файл должен содержать только коды самих символов (не должен содержать управляющие коды форматирования текста) и, следовательно, должен создаваться в простейшем текстовом редакторе типа Блокнот. Сохраним файл alfavit.txt в кодировке Unicode.Для чтения из файла предназначен класс объектов StreamWriter из пространства имен System.IO. Поэтому добавим следующие операторы в самом начале кода, перед объявлением класса формы, которое начинается с Public Class Form1.
      
    Imports System
    Imports System.IO

    В обработчике события заполнения массива из файла объявим массив и переменную, которая будет ссылкой на объект StreamReader. В цикле со счетчиком произведем чтение букв алфавита из файла с использованием метода ReadLine() и введем буквы в список.

    Обработчик события заполнения массива из файла:

     
    'Заполнение текстового массива из  файла
    Dim B(32) As String
    Dim sr As StreamReader
    sr = New StreamReader("alfavit.txt") 
    
    For I = 0 To 9
        B(I) = sr.ReadLine()
        ListBox3.Items.Add(B(I))
    Next I

    Более подробно о работе с текстовым файлом можно посмотреть здесь.

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

    Visual Basic.NET. Заполнение массива

    Так как не все элементы массива помещаются в список, появляется вертикальная полоса прокрутки.


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

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

Следующий урок: Обработка массива. Поиск максимального элемента

До встречи в следующем уроке.

Подписаться
Уведомить о
guest

3 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Александр
Александр
5 лет назад

Отличный урок, в формате видео урока было бы вообще супер!

Артем
Артем
5 лет назад

В заголовке — Массивы!!! А в итоге мы узнали ТОЛЬКО про одномерные массивы. А где многомерные?
Где заполнение многомерных массивов?
Мне вот надо сделать одномерный массив, каждый элемент которого является одномерным массивом. По сути — двумерный массив. При этом заполнять хочу сразу строками (5 значений), но информацию найти нигде не могу, везде только азы — что такое массив и как заполнить в цикле по формуле.

Нияз
Нияз
7 лет назад

Хорошая статья, и не только для школьников.