- •Тема 2.5. Основные конструкции языков программирования
- •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. Средства описания и работы с одномерными массивами данных
- •Dim v1([imin to] imax) as type [, . . . Vn([imin to] imax) [as type]
- •2.5.1.7. Средства описания и работы с двумерными массивами данных
- •2.5.1.8. Строковые данные и операции над строками
- •Val(строка)
- •2.5.1.9. Средства процедурного программирования в среде qb
- •Dim shared переменная [as тип][, переменная [as тип]]...
- •Intx,y;
- •Void main(void)
- •Int test_score;
- •Void main(void)
- •Void main (void)
- •Void main(void)
- •Void main(void)
- •2.5.2.2. Средства программирования алгоритмов линейной структуры и функций
- •Int main ()
- •Int main ()
- •Void main(void)
- •Voidmain(void)
- •Void main(void)
- •Void main(void) {
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Void main(void)
- •Void main (void)
- •Int rus (unsigned char r)
- •Int rus (unsignedcharr); или rus (unsignedchar);
- •2.5.2.3. Средства программирования разветвляющихся структур
- •If (выражение) оператор_1; [ else оператор_2;]
- •2.5.2.4. Средства программирования регулярных циклических структур
- •Int main ( )
- •If (br2) break;
- •2.5.2.5. Средства программирования итеративных циклических структур
- •2.5.2.6. Средства описания и работы с одномерными массивами данных
- •Int array[4]; /* array - массив из 4 элементов типа int */
- •Int minmaxel (float*mas, int n, int&min)
- •2.5.2.7. Средства описания и работы с двумерными массивами данных
- •Int w[2][3]; /* двумерный массив из двух строк и трех столбцов
- •Int minimum(int [][exams], int, int);
- •Int maximum(int [][exams], int, int);
- •Void printArray(int [][exams], int, int);
- •Int main()
- •Int minimum(int grades[][exams], int pupils, int tests)
- •Int maximum(int grades [][exams], int pupils, int tests)
- •Void printArray(int grades [][exams], int pupils, int tests)
- •2.5.2.8. Строковые данные и операции над строками
- •Int strlen(char s[])
- •Void testirovanie ()
- •Void testirovanie();
- •Void reshenie();
- •Void main (void)
- •2.5.3. Контрольные вопросы по теме «Основные конструкции языка программирования qb» (вставить из лаб.Работ!)
- •2.5.4. Тестовые задания по теме «Основные конструкции языка программирования qb»
- •End select
- •Тема 2.5. Основные конструкции языков программирования Страница 274
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.
Следует отметить, что независимо от конкретной задачи, алгоритмы формирования и обработки массивов обычно строятся с использованием регулярных циклических структур, а при работе с многомерными массивами с использованием вложенных циклов (цикл в цикле).