Ввод данных в массив и вывод данных из массива

Функции для работы с массивами

 

QBasic имеет несколько функций для работы с массивами:

LBOUND(ИмяМассива, Индекс) – возвращает нижнюю границу диапазона индекса массива. Индекс указывается только для многомерных массивов, и определяет, к какому измерению массива применяется функция. По умолчанию индекс равен 1. Например:

Dim A(5 To 10,15 To 20)

Lbound (A, 2) – определяется нижняя граница второго измерения массива;

UBOUND (ИмяМассива, Индекс) – возвращает верхнюю границу диапазона индекса массива.

 

 

Так как число элементов массива представляет собой всегда счетное множество, то для работы с массивами используется оператор цикла FOR/NEXT.

Пример 9.4.14. Ввод и вывод одномерного массива.

REM Ввод одномерного массива

OPTION BASE 1

30 INPUT “Укажите размерность массива ”,N

40 DIM A(N)

60 FOR i = 1 TO N

70 PRINT “Введите”; i; “элемент массива ”;

80 INPUT “”,A(i)

90 NEXT i

100 END

Вначале по запросу программы, с клавиатуры вводится размерность массива, строка 30. Объявляется одномерный массив А размерностью N (строка 40) как массив вещественных переменных одинарной точности (по умолчанию). Затем организуется цикл с заданным числом повторений (строки 60 – 90). В строке 70 оператор PRINT выводит на экран запрос на ввод текущего элемента массива. В конце оператора имеется символ “точка с запятой”, который после вывода информации оставляет курсор в строке ввода, поэтому запрос на ввод данных с помощью оператора INPUT, строка 80, будет выведен в этой же строке, сразу же после вывода текстовой информации.

REM Вывод одномерного массива

110 FOR i = 1 TO N

120 PRINT A(i),

130 NEXT i

140 END

Алгоритм вывода массива на экран или печать подобен алгоритму ввода массива. В данном алгоритме необходимо обратить внимание на символ “запятая” в конце оператора PRINT (строка 120). При наличии данного символа данные будут выводиться в пять колонок. Если этот символ удалить, то данные будут выведены в один столбец (см. описание оператора PRINT).

При вводе (выводе) данных в многомерный массив необходимо организовать столько вложенных циклов, какова размерность массива.

Пример 9.4.15. Ввод и вывод двухмерного массива

INPUT “Укажите число строк ”,n

INPUT “Укажите число столбцов “,m

DIM A(n, m)

REM Ввод данных в двухмерный массив

FOR i = 1 TO n

FOR j = 1 TO m

PRINT “Введите А(“ ; i ; “,” ; j ; “элемент массива”;

INPUT A(i, j)

NEXT j

NEXT i

REM Вывод данных из двухмерного массива

FOR i = 1 TO n

FOR j = 1 TO m

PRINT A(i, j);

NEXT j

PRINT

NEXT i

В данном примере вывод элементов массива осуществляется в виде матрицы. Это обеспечивается за счет использования разделителя “;” в конце оператора PRINT. Символ “;” в конце оператора PRINT оставляет курсор в текущей строке. Когда ввод данных в первую строку закончится, то оператор PRINT без параметров возвращает курсор в начало строки.

Процедуры ввода данных в массив и вывода данных из массива типичные, поэтому их можно оформить в виде подпрограмм (см. раздел 9.4.6), например:

SUB Massiv1(A(),n)

REM Подпрограмма ввода данных в одномерный массив.

FOR i = 1 TO N

PRINT A(i),

NEXT i

END SUB