- •2.5.2.3. Средства программирования разветвляющихся структур
- •2.5.1.2. Средства программирования алгоритмов линейной структуры
- •Input [;] [подсказка { ; | , }] список_переменных
- •Input “Введите коэффициенты уравнения a, b, c “, a#, b#, c#
- •Input ;“Радиус круга”; r!
- •2.5.1.3. Средства программирования разветвляющихся структур
- •If выражение then оператор(ы) [else оператор(ы)]
- •2.5.1.4. Средства программирования регулярных циклических структур
- •2.5.1.5. Средства программирования итеративных циклических структур
- •2.5.1.6. Средства описания и работы с одномерными массивами данных
- •2.5.1.7. Средства описания и работы с двумерными массивами данных
- •2.5.1.8. Строковые данные и операции над строками
- •Val(строка)
- •2.5.1.9. Средства процедурного программирования в среде qb
- •Dim shared переменная [as тип][, переменная [as тип]]...
- •2.5.2.2. Средства программирования алгоритмов линейной структуры и функций
- •2.5.2.3. Средства программирования разветвляющихся структур
- •If (выражение) оператор_1; [ else оператор_2;]
- •2.5.2.4. Средства программирования регулярных циклических структур
- •2.5.2.5. Средства программирования итеративных циклических структур
- •2.5.2.6. Средства описания и работы с одномерными массивами данных
- •Int array[4]; /* array - массив из 4 элементов типа int */
- •2.5.2.7. Средства описания и работы с двумерными массивами данных
- •Int w[2][3]; /* двумерный массив из двух строк и трех столбцов
- •2.5.2.8. Строковые данные и операции над строками
- •2.5.3. Контрольные вопросы по теме «Основные конструкции языка программирования qb» (вставить из лаб.Работ!)
- •Тема 2.5. Основные конструкции языков программирования Страница 295
2.5.1.6. Средства описания и работы с одномерными массивами данных
Массив–это последовательность переменных одинакового типа, объединенных общим именем. Массив состоит из элементов,например: одномерный массив а(50) состоит из 51 элемента:a(0), a(1) a(2) a(3) . . . a(50).
. В программе элементы одного и того же массива отличаются один от другого при помощи индексов. Индексы записываются вслед за именем в круглых скобках и могут представлять собой любое целочисленное выражение. Например: d(24), a(2*i+1), b(i,i-1).
Количество индексов указывает на размерность массива. Так, в приведенном выше примере размерность массива a(50) равна единице, то есть массив одномерный. Максимальная размерность массива может достигать 60.
В отличие от размерности, размер массива - это количество элементов в массиве. В нашем примере размер массива а(50) равен 51 ( с 0-го по 50).
Перед использованием массива в программе его необходимо объявить с помощью оператора DIM.Этот оператор выделяет место в памяти для размещения элементов массива. Онимеетследующийформат:
DIM v1([imin TO] imax) AS type [, . . . vn([imin TO] imax) [AS type]
где: v1,...,vn - имена описываемых массивов; imin, imax - нижняя и верхняя границы изменения индекса (если imin опущено, то нижняя граница по умолчанию принимается равной нулю - 0); служебное слово AS с параметром type устанавливает тип массива (INTEGER, LONG, SINGLE, DOUBLE, STRING).
Оператор DIM не только объявляет, но и обнуляет элементы числовых массивов или заполняет элементы строковых массивов пустыми строками (“”). Если одномерный массив, используемый в программе, не объявлен оператором DIM, то верхняя граница его индексов устанавливается равной 10.
Различают два способа распределения памяти: статическое - на этапе компиляции до выполнения программы, и динамическое - в ходе выполнения программы. По умолчанию массив, границы которого заданы константными выражениями, считается статическим. Память для размещения такого массива выделяется на этапе компиляции программы и сохраняется за ним на весь период выполнения программы. Например:
DIM sigma(1 TO 5) AS INTEGER, m(3) AS INTEGER
Если в процессе выполнения программы элементы массива требуется очистить, то используется оператор
ERASE a[,b . . . c] , где a, b, c – имена массивов.
Если границы массива в операторе DIM указаны в виде переменных (или выражений, содержащих переменные), то массив считается динамическим. Причем все переменные, определяющие границы массива, должны быть объявлены до оператора DIM. Например:
m = 5
DIM mas1(m+2).
Выделение памяти для хранения динамического массива осуществляется в процессе выполнения программы. Такой массив можно многократно переопределять (изменять границы индексов, и даже размерность массива) с помощью оператора REDIM, имеющего такой же формат, что и оператор DIM.
Память, отведенная для динамического массива, может быть освобождена с помощью оператора ERASE, а затем в нужный момент такой массив может быть объявлен оператором REDIM.
Следует отметить, что независимо от конкретной задачи, алгоритмы формирования и обработки массивов обычно строятся с использованием регулярных циклических структур, а при работе с многомерными массивами с использованием вложенных циклов (цикл в цикле).
