Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

Описание массивов:

1) одномерный статический массив

Dim <имя массива> ( <начальное значение индекса > To <конечное значение индекса> ) [ As <тип элементов массива >]

или

Dim <имя массива> ( <количество элементов массива > ) [ As <тип элементов массива >];

2) двумерный статический массив

Dim <имя массива > ( <начальное значение индекса по строкам> To <конечное значение индекса по строкам >, < начальное значение индекса по столбцам > To < конечное значение индекса по столбцам> ) [ As <тип элементов массива> ]

или

Dim <имя массива> ( <количество строк>, <количество столбцов> ) [ As <тип элементов массива>].

Первый способ отличается от второго тем, что в первом случае указывается индекс первого и последнего элементов, во втором же – только количество элементов, нумерация которых может начинаться как с 0, так и с 1. Это зависит от опции Base (задает базовый индекс). Если опция не указана, то нумерация элементов массива начинается с нуля. Для изменения базового индекса в начале листа модуля необходимо написать Option Base 1.

Пример:

а) Dim А(1 To 10) As Integer – массив А состоит из 10 элементов целого типа, индексы которых 1, 2, …, 10;

б) Dim А(10) As Integer – массив состоит из 10 значений целого типа. Индексация зависит от опции Base. Если опция не указана, то номера элементов - от 0 до 9, если же указана (т.е. вначале модуля записано Option Base 1), то номера элементов изменяются от 1 до 10;

3) динамический массив:

Dim <имя массива> () [ As <тип элементов массива>].

После определения количества элементов массива выполняется его переопределение:

ReDim <имя массива> ( <задается размерность массива (одномерного/двумерного > ).

Пример:

Dim А() As Single–динамический массив А вещественных элементов

n=7

ReDim A(1 To n) – переопределение одномерного массива из n значений

ReDim A(5,n) – переопределение двумерного динамического массива, состоящего из 5 сток и n столбцов (начало индексации элементов определяется по опции Base)

Обращение к элементу массива осуществляется следующим образом: указывается имя массива, а затем в круглых скобках указывается номер элемента в массиве. Если массив двумерный – указывается вначале номер строки, затем через запятую номер столбца.

Пример. Определить сумму положительных элементов массива A5×8.

Public Sub prog4() Dim a(1 To 5, 1 To 8) As Integer Dim s As Integer s = 0 For i = 1 To 5 For j = 1 To 8 a(i,j)=Worksheets(1).Cells(i,j)   If a(i, j) > 0 Then s = s + a(i, j) End If Next j Next I Worksheets(1).Range("A12")= s End Sub   Описание целочисленного массива из 5 строк и 8 столбцов Обнуление переменной s Цикл по строкам (номер строки от 1 до 5) Цикл по столбцам (номер столбца от 1 до 8) Ввод элементов массива с листа Excel (номера строк изменяются от 1 до 5, столбцов – от 1 до 8) Сравнение элементов массива с нулем Добавление положительного элемента к текущей сумме положительных элементов Прибавление шага (в данном случае 1) к счетчику j Прибавление шага (в данном случае 1) к счетчику i Вывод результата в ячейку А12

 
 

Рисунок 10 - Блок-схема программы prog4

Пример. В одномерном динамическом массиве определить максимальный элемент и поменять его местами с первым.

Public Sub prog5() Dim b() As Double   Dim max As Double, m As Double n=CInt(InputBox("Введите размерность массива")) ReDim b(1 To n) For i = 1 To n b(i) = CDbl(InputBox("Введите " & i & "-ый элемент массива")) Next i max = b(1): m = 1     For i = 2 To n If b(i) > max Then max = b(i) m = i End If Next i t = b(1) b(1) = b(m) b(m) = t   For i = 1 To n Worksheets(1).Range("D"& i)=b(i) Next i End Sub Описание динамического массива вещественных значений   Ввод размерности массива (вводимое значение преобразуется к целому типу) Переопределение массива Цикл с параметром используется для ввода элементов массива через окно ввода     Переменной max присваивается значение первого элемента массива (считается первый элемент максимальным) и присваивается переменной m его номер Начиная со второго элемента, просматриваются все элементы массива Каждый элемент сравнивается с максимальным на данный момент элементом: если текущий (i-ый) элемент оказался больше максимального, то значение переменной max изменяется на это значение и запоминается его номер в переменной m С помощью промежуточной переменной t меняются значения двух переменных С помощью цикла с параметром выводится массив (элементы массива) на лист1 в столбец D, начиная с первой строки

 
 

Рисунок 11 - Блок-схема программы prog5





Дата публикования: 2015-04-10; Прочитано: 320 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...