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

1.6. Обработка массивов. Индексированные переменные

Часто в задачах возникает необходимость обработки нерегулярных наборов значений переменных. Например, в цикле переменная x = {1,2; -3; 0; 0,55}. Был рассмотрен алгоритм с динамическим вводом данных. Но если требуется сохранить значение переменной после ввода следующего значения, то используются индексированные переменные, называемые массивами.

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

Например, элементы массива X будут задаваться в программе операторами:

X[1] := 1,2; X[2] := -3; X[3] := 0; X[4] := 0,55;

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

X: ARRAY [1..4] OF Real;

где начальное и конечное значения индекса разделяются двумя точками.

Для двумерного массива (матрицы) S(3,4) декларация может иметь вид

S: ARRAY [1..3, 1..4] OF integer;

Такая матрица может принимать значения:

, т.е. первый индекс обозначает номер строки, а второй – столбца.

Например, S[2,3] = -6.

В операторах программы индексированная переменная должна всегда содержать указание индекса, которое может быть выражением целого типа.

Рассмотрим пример: требуется найти в массиве X(4), рассмотренном ранее, и вывести на экран положительные элементы, т.е. удовлетворяющие условию X[i] > 0, где i = 1,2,3,4.

Обычно ввод и вывод значений элементов массива выполняются отдельными циклами. Блок-схема и фрагмент программы вывода приведены на рис.1.6

k от 1 до 4 for k := 1 to 4 do

Вывод x, Y write (x[i]:10:2);

Writeln;

Рис.1.6

Здесь в цикле выполняется вывод элементов массива в строку, поэтому необходимо форматирования при выводе, чтобы между числами были пробелы. После цикла помещается «пустой» оператор Writeln; для перехода на новую строку.

Вся программа будет состоять из трех циклов (блок- схема очевидна):

Program Vibor;

Uses CRT;

Var x: Array [1..4] of real; i: integer;

begin CLRSCR; {очистка экрана}

Write (‘Vvedite znacheniya x[i]: ’);

for i:=1 to 4 do read (x[i]);

Writeln (‘V massive X’);

for i:=1 to 4 do write (x[i]); writeln;

Writeln (‘Polojitelnie elementy: ’);

for i:=1 to 4 do if x[i] > 0 then writeln (‘ x =’, x[i]:5:2);

end.

Напомним, что после запуска программы необходимо ввести числовые значения, разделенные пробелами или клавишей Enter.

Рассмотрим обработку двумерных массивов.

Для ввода и вывода двумерных массивов используются вложенные циклы, которые должны соответствовать определенным правилам

Главное:

  • вложенные циклы управляются разными параметрами цикла;

  • внутренний цикл начинается позже внешнего цикла и заканчивается раньше.