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



Российский Государственный Социальный Университет

Филиал в г. Мурманске

 

 

 

КАФЕДРА «Общегуманитарных и естественно-математических дисциплин»

 

 

 

 

Контрольная работа

по дисциплине: "ВТ и программирование"

 

 

ТЕМА: " Объявление массива".

             

             

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Мурманск, 2012

 

СОДЕРЖАНИЕ:

 

Введение

   с. 3

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

   с. 5

    1.1. Работа с массивами

   с. 5

    1.2. Объявление фиксированного массива

   с. 7

    1.3. Объявление динамического массива

   с. 11

Заключение 

   с. 14

Список литературы

   с. 16


 


ВВЕДЕНИЕ

 

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

Массивы – это доступный метод программирования.  Они предоставляют программисту возможность организовать набор однородных (имеющих одинаковый тип и размер) элементов данных в отдельную структуру данных. 

Использование массивов в программе является шагом к более профессиональному программированию.

Поэтому тема данной контрольной работы очень актуальна.

Основной целью контрольной работы является:

1)         ознакомление с избранной темой;

2)         анализ.

Для написания контрольной работы был выявлен значительный круг материалов специального характера.

Массив – это конечная последовательность однотипных элементов. Например, список фамилий студентов — массив, все экзаменационные оценки — массив и т.д.

Массив - это структура данных, созданная из некоторого числа переменных одного типа, доступ к которым задается одним именем.[1]

Отдельные элементы данных, составляющие массив, называются элементами массива. Количество элементов в массиве всегда конечно. В определенных условиях массив можно представлять и как тип данных, и как переменная типа массив.  Массивы могут быть одномерные и многомерные; фиксированного размера и динамические.

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

      загрузка набора начальных значений в элементы массива,

      обработка элементов массива,

      линейный или двоичный поиск в массиве отдельных элементов,

      выписывание содержимого массива в отчет.

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

Всестороннее изучение программирования представляется весьма важной задачей.

Работа имеет следующую структуру:

1)     Введение;

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

3)     Заключение.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.      ОБЪЯВЛЕНИЕ МАССИВА

1.1. Работа с массивами

 

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

Если собраться работать в программе с большим объемом каких-то данных, то нужно этот массив объявить с помощью специального оператора dim (от англ. «dimension»), после которого указывается имя массива, а потом в скобках следует размер массива, т. е. количество его элементов.

Например:            DIM A(4)

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

5

10

15

20


 

Отсюда следует, что:

      у массива есть имя, которое дает ему программист;

      у массива есть тип, который определяется именем — числовой и текстовый (или символьный, или строковый);

      у массива есть размер, т. е. количество составляющих его элементов;

      у массива есть сквозная последовательная индексация составляющих его элементов;

      у каждого элемента массива есть значение.

Оператор dim для каждого конкретного массива должен задаваться только один раз в программе до первого к нему обращения. Программа Basic допускает использовать в программе 1 числовой массив с максимальным количеством индексов не более 10 раз предварительного объявления. После описания элемент массива становится переменной с номером, по которому к нему и доступно обращение.

Можно выделить следующие типовые задачи на массивы:

      ввод элементов массива;

      вывод элементов массива на экран;

      различная обработка элементов массива.

Прежде чем использовать массив его надо объявить. Объявляется он точно также как и переменная. Если объявить массив локально в процедуре (здесь используется ключевое слово Private), то он будет доступен только в этой процедуре и нигде больше. Если в разделе (General)-(Daclarations) формы (c оператором Dim) – то во всей форме. А если нужно объявить его глобально, так, чтобы он был доступен всему проекту, то в стандартном модуле с ключевым словом Public.

Массивы могут быть одномерные и многомерные; фиксированного размера и динамические.

 

 

 

 

 

 

 

 

 

 

1.2. Объявление фиксированного массива

Массив фиксированного размера имеет неизменный размер, заданный при его объявлении.

Объявление массива фиксированного размера зависит от области его видимости и осуществляется следующим образом:

        • глобальный массив объявляется с помощью оператора Public в

            секции Declaration модуля;

        • массив уровня модуля – с помощью оператора Private или Dim

            в секции Declaration модуля;

        • локальный массив – с помощью оператора Private или Dim

            процедуры.

Наиболее часто для объявления массива используется оператор Dim.

Объявление массива зависит от области его видимости.

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

В форме он объявляется так: Dim Chislo(4) As Long

Dim – оператор, как и при объявлении переменной, объявляет массив и выделяет для нее память.
         Chislo – это просто имя, придумывается как и для переменной и отвечает тем же требованиям.
         (4) – количество элементов в массиве – их 5.

Почему так. Дело в том, что элементы массива нумеруются с нуля, а не с единицы, поэтому у нас пять элементов массива c номерами 0, 1, 2, 3, 4, 5. Если для каких-то целей такой порядок  не устраивает, то используется оператор Option Base 1, который прописывается в разделе Declarations и привязывает первый элемент ВСЕХ, массивов в программе к единице.

As Long – определение типа данных массива -  как тип обычной переменной. Почти всегда все элементы массива имеют один и тот же тип (в данном случае длинное число Long). Если не знаем какого типа будут данные, можно задать тип Variant, но это нежелательно из-за того, что это занимает внушительный объем памяти, особенно если массив большой.

Размерность – ее сразу не заметно, но она здесь присутствует и равна единице, потому что у нас одна цифра (четыре), т.е. наш массив является одномерным – по сути, список значений. 

Теперь создадим массив для хранения результатов, ну например таблицы умножения на 5. Поскольку на ноль умножать бесполезно, привязываем первый элемент массива к единице и объявляем переменную x для организации цикла For…Next.

Option Explicit
Option Base 1
Dim Chislo(4) As Long 'так как мы используем оператор Option Base, то элементы массива нумеруются с единицы
Dim x As Long

Положим на форму Text1 с установленными свойствами MultiLine в True, а  ScrollBars – в 2-Вертикаль, а также кнопку Command1. В процедуре Form_Load напишем цикл, который будет присваивать каждому элементу массива значение, соответствующее его номеру, умноженному на 5.

Private Sub Form_Load()
Text1.Text = “”
For x = 1 To 5
Chislo(x) = x * 5
Next x
End Sub

Можно увидеть, что в цикле вместо номера элемента просто используется значение x, таким образом перебираются все элементы массива. Теперь выведем значения элементов массива в Text1 в процедуре Command1.

Private Sub Command1_Click()
For x = 1 To 5
Text1.Text = Text1.Text & Chislo(x) & vbCrLf
Next x
End Sub

Таким образом одномерный массив представляет собой аналог таблицы с одной строчкой:

1 элемент

2 элемент

3 элемент

4 элемент

1

2

3

4


 

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

Option Explicit
Option Base 1
Dim Chislo(5, 2) As Long
Dim x As Long
Private Sub Form_Load()
Text1.Text = “”
For x = 1 To 5
Chislo(x, 1) = x
Chislo(x, 2) = x * 5
Next x

Private Sub Command1_Click()
For x = 1 To 5
Text1.Text = Text1.Text & “5 x “ & Chislo(x, 1) & “ = “ & Chislo(x, 2) & vbCrLf
Next x
End Sub

 

 

И наш массив будет представлять собой следующее

 

 

1 элемент

2 элемент

3 элемент

4 элемент

1 элемент

1

2

3

4

2 элемент

5

10

15

20

 

Значит элемент массива Chislo (3,2) будет иметь значение 15.
Обратим внимание, что размерность массива определяет количество цифр в объявлении. Массив Chislo (4,5) – тоже двухмерный, только строк в таблице будет не две, а пять. А объявление трехмерного массива выглядело бы так
Dim(4,5,2).Такую трехмерную таблицу нарисовать затруднительно. В принципе Visual Basic поддерживает до 64 размерностей массива, но это в голове трудно укладывается.

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1.3. Объявление динамического массива.

 

Часто возникает ситуация, когда неизвестно заранее, сколько элементов   массива будет использоваться. Поэтому массив объявляется без размерности.

                       Например: Dim Mass () as String
          Динамический массив -  это массив, при объявлении которого размерность не указывается, но размер которого можно изменять в процессе выполнения программы.

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

     Создание динамического массива осуществляется следующим образом:

1.       Массив объявляется с помощью ключевых слов, используемых при создании массива фиксированного размера. Список размерностей массива остается пустым. При объявлении глобального массива необходимо выбрать ключевое слово Public, при объявлении массива на уровне модуля – Dim, при объявлении массива в процедуре - Dim или Static.

                        Например, Dim intCountPar () As Integer

2.       С помощью выполняемого оператора Redim указывается размерность массива и его размер в виде числа или выражения. Синтаксис этого оператора аналогичен синтаксису оператора объявления массива фиксированного размера.

                           Например, ReDim intCountPar (1 To 20)

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

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

                 Например, ReDim Preserve intCountPar (X+1)

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

      Для включения в текст программы комментария необходимо ввести символ ('), который может быть первым символом в строке или находиться в любом ее месте. Этот символ означает начало комментария, и все символы, находящиеся за ним, Visual Basic не  будет транслировать.

      Если оператор имеет большую длину, его можно разбить на несколько строк, используя символы продолжения строки: пробел, за которым следует символ подчеркивания ( _ ).

      При написании программ операторы размещают на отдельной строке. Если операторы имеют небольшую длину и являются однотипными, Visual Basic позволяет их поместить на одной строке, разделив символом двоеточие (:).

Определяем динамический массив:

Public Sendor() As Integer

В данном случае, размер массива Sendor не определен, и это всегда можно сделать в процессе работы программы.

Dim Listing() As String ' Список элементов.
Dim NumInList As Integer ' Число элементов в списке.

Sub AddToList(value As String) ' Увеличить размер массива.
NumCountArray = NumCountArray + 1
ReDim Preserve Listing (1 To NumCountArray) ' Добавить новый элемент к концу списка.
Listing (NumCountArray) = value
End Sub

Sub RemoveFromList()  ' Уменьшить размер массива, освобождая память.
NumCountArray = NumCountArray - 1
ReDim Preserve Listing (1 To NumCountArray)
End Sub

При изменении размера массива при помощи оператора ReDim все содержимое массива пропадает, чтобы этого не происходило, то  следует использовать ключевое слово Preserve, что и выполнено в примере выше. Нужно всегда, когда необходимость в данных массива отпала очищать  память, занятую этими данными. Наиболее просто это сделать при помощи конструкции:

ReDim Listing (0)

Будьте внимательны и не используйте оператор ReDim внутри цикла. Это приведет к резкому снижению производительности.

For I =1 To 255
ReDim Listing (I)
Next I

 

 

 

 

 

 

 

 

 

2

 



[1] Робертсон Л.А. Программирование – это просто. Пошаговый подход; М.:БИНОМ. Лаборатория знаний, 2008. – стр.369


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