Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Basic Методичка.doc
Скачиваний:
12
Добавлен:
15.11.2018
Размер:
1.47 Mб
Скачать

7. Обработка массивов

7.1.Массивы

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

Индекс представляет целую величину или набор величин, разделённых запятыми и заключёнными в круглые скобки.

Имя массива выбирается, исходя из тех же правил, что и имя переменных (из одной буквы или символов). Количество индексов определяет размерность массива.

Примеры. А(I) – одномерный массив;

В(I,J) – двумерный массив.

Максимальное количество индексов в GB – 255, в QB – 60, в TB – 8. Минимальное значение индекса – 0. Максимальное значение индекса в GB – 16387, в QB и TB – 32767.

7.2. Оператор dim

При обработке массивов память микроЭВМ резервируется под элементы массива. Предусмотрены два способа резервирования: по умолчанию и с помощью специального оператора DIM. По умолчанию резервируется 10 элементов массива от 0 до 9. При обработке большего количества элементов массива на экране монитора появится сообщение об ошибке.

Оператор DIM используется для описания максимального размера массива.

Структура оператора:

нс DIM <имя> (мн1, мн2),

где DIM – ключевое слово (сокр. от DIMENSION) – “размер”; вместо угловых скобок указывается имя массива, а в круглых скобках максимальный (для одномерного) или максимальные (для двумерного или другой размерности) массивов индексы мн1 и мн2.

Пример. 30 DIM А1(2,3), В(10)

В 30-й строке резервируется место в памяти для 12-ти элементов двумерного и 11-ти элементов одномерного массивов (учитываются нулевые индексы).

Оператор DIM должен записываться вначале программы до первого выполнения оператора.

7.3. Обработка массивов

Обработка массивов включает: ввод или формирование массивов, вывод на печать массивов и использование массивов в вычислениях.

7.4. Ввод массивов

Для ввода или формирования массивов можно использовать операторы DATA - READ или оператор INPUT с использованием операторов циклов.

Пример. Ввести 5 первых элементов массива А(I): 1;2;3;4;5.

Фрагмент программы:

20 DIM А(5)

30 FOR I = 1 TO 5

40 INPUT A(I)

50 NEXT I

Для большинства версий системы INТEL знаки вопроса (?) после команды RUN печатаются в столбик:

? 1

? 2

Аналогично с помощью INPUT производится ввод двумерного массива через организацию вложенных циклов, при этом в памяти микроЭВМ элементы двумерного массива располагаются по строкам: В(0,0); В(0,1); В(0,2);…В(1,0); В(1,1);…

7.5. Вывод массивов

Организация вывода одномерного массива ничем не отличается от организации ввода – только вместо INPUT используется PRINT (для вывода на экран) или LPRINT (для вывода на печатающее устройство).

При выводе двумерных массивов на микроЭВМ между оператором NEXT J (окончание внутреннего цикла) и NEXT I (окончание внешнего цикла) следует употреблять PRINT без списка – для закрытия строки, чтобы матрица распечаталась в привычном виде, а в конце PRINT A(I,J); надо использовать знаки препинания ‘,’или ‘;’.

7.6. Использование массивов в вычислениях

Все вычисления организуются с помощью операторов циклов FOR – NEXT или вложенных циклов для двумерных массивов. С помощью операторов обработки массивов FOR-NEXT можно решать большое многообразие задач, например, производить обработку результатов измерений, вычислять площади под кривыми, решать задачи с рядами, обрабатывать полиномы по алгоритму(схеме).

Алгоритм накопления сумм:

S = 0 – до цикла

S = S + <∑> – в цикле

Алгоритм накопления произведений:

P = 1 – до цикла

P = P * <П> – в цикле

Пример. Вычислить

Фрагмент программы:

50 S=0

60 FOR I = 1 TO N

70 S = S + X(I)

80 NEXT I

90 Y=S

В 50-й строке осуществляется подготовка цикла (установка сумматора или накопителя в “нуль”); 60 – 80 строки – тело цикла; в 90-й строке полученное значение присваивается переменной Y.

Алгоритм (схема) Горнера.

Известно, что полином в общем виде записывается следующим образом:

Y=An*X^n+ A(n-1)*X^(n-1)+…A1*X+A0 .

Горнер предложил переиндексировать коэффициенты многочлена:

Y=A1*X^n+ A(n-1)*X^(n-1)+…An*X+A(n+1) .

Далее он предложил разложить многочлен и представить в виде:

Y=(…(A1*X+A2)*X +A3)*X+…A1)*X+A(n+1) .

Исходя из такого представления, он предложил алгоритм, который еще называют схемой Горнера:

-все коэффициенты A1, A2,…,A(n+1) представить в виде элементов массива;

-должны учитываться все коэффициенты. Если они отсутствуют в полиноме, то их надо все равно использовать, считая их равными нулю;

-до цикла FOR-NEXT взять значения y=A(1);

-цикл по управляющей переменной организовывать с I=2 до X+1;

-в цикле использовать формулу:

Y=Y*X+A(I) .

Если все значения Y надо сохранить, то Y следует организовать тоже как массив.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]