Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
attachments_03-09-2012_10-20-12 / Массивы.doc
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
149.5 Кб
Скачать

Массивы констант.

Если константа принадлежит составному типу или типу, введенному в разделе type, этот тип должен быть указан (такая константа называется типизированной):

const<имя константы> : <тип> = <значение константы> ;

Константа отличается от переменной тем, что значение ей присваивается при трансляции программы, а не в процессе выполнения, как для переменной. Обычно в раздел констант включают те данные, которые не меняются в процессе работы программы. Описание массива констант выглядит так

const

<имя константы массива> : array[<диапазон индексов>] of <тип элементов массива> = (<значение1>,<значение1>, ……,<значениеN>) ;

Число значений должно совпадать с числом элементов массива, а тип значений с типом элементов массива.

Пример:

{массив Days хранит количество дней в месяце, номер месяца соответствует номеру элемента в массиве}

const Days:array[1..12] of integer =(31,28,31,30,31,30,31,31,30,31,30,31);

Если набор однотипных данных не меняется во время выполнения программы, то вместо присваивания неизменных значений в переменную-массив в начале работы, предпочтительней ввести массив из констант.

Операции с элементами массива.

Практически все операции с массивом следует проводить поэлементно в цикле. Для обработки элементов массива удобно использовать цикл for ...do, а верхний индекс массивов определять как предварительно описанную константу. В этом случае все циклы по обработке массива будут заканчиваться значением этой константы. При изменении числа элементов массива, в программе достаточно изменить значение константы (т.к. все циклы зависят от константы).

Стандартные функции Low() иHigh() действуют для идентификаторов типа массива. Они возвращают нижние и верхние границы массива. Стандартная функцияLength() возвращает количество элементов первого измерения массива (для матрицы возвращается число строк)

Ввод-вывод элементов одномерного массива.

Паскаль не имеет средств ввода-вывода всего массива, поэтому ввод-вывод следует организовывать поэлементно (см. рис.1, 2). Блок-схема, изображённая на рис.1 и 2 может быть реализована циклами while,for.

Рис. 1 Ввод элементов массива.

Рис.2 Ввод элементов массива

Пример - ввод элементов массива X с помощью цикла while.

const n=10;

var x: array [1..n] of real;

i: integer;

begin

i:=1;

while (i<=N) do

begin

write(' x[ ', i , '] = '); readln(x[i]);

i:=i+1 // или inc(i);

end;

……………….

end.

Пример - ввод элементов массива X с помощью цикла for.

const n=10;

var x: array [1..n] of real;

i: integer;

begin

for i:=1 to N do

begin

write(' x[ ', i , '] = '); readln(x[i]);

end;

………..

end.

Пример – вывод элементов массива Х в одну строку.

for i: = 1 to n do write (x[i]:6:2,’ ‘);

или

for i: = 1 to n do write (‘X[‘,i,’] = ’,x[i]:6:2,’ ‘);

Алгоритм нахождения суммы и произведения элементов массива.

Рис.3 Нахождение суммы элементов массива Х.

Рис.4 Нахождение произведения элементов массива Х.

Пример – фрагмент программы нахождения суммы и произведения элементов массива Х из n целочисленных элементов.

const n=10;

var x: array [1..n] of integer;

i, s ,p : integer;

begin

{ввод элементов массива}

s:=0;

for i:=1 to N do // нахождение суммы элементов

s:=s+x[i];

writeln(‘сумма = ‘,s);

p:=1;

for i:=1 to N do // нахождение произведения элементов

p:=p*x[i];

writeln(‘произведение = ‘,p);

……..

end.