Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Действия над элементами массивов




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

Примеры задания индекса:

M [5] - непосредственно числом;

M [x] - косвенно через переменную x;

M [y+5] - косвенно через выражение;

M [Succ(i)] - косвенно через значение функции.

Всем элементам одного массива можно присвоить значения элементов другого массива с помощью одного оператора присваивания, в том случае, когда массивы имеют идентичный тип. Так, если заданы следующие массивы:

VAR

X, Y: ARRAY [1.. 10] OF INTEGER;

Z: ARRAY[1.. 10] OF INTEGER;

то допустим следующий оператор присваивания:

X: = Y;

но недопустим оператор

Z: = X;

так как массивы X и Z не идентичных типов.

В Паскале над массивами не определены операции отношения. Сравнивать массивы можно только поэлементно. К отдельным элементам массива можно применять стандартные процедуры и функции, предусмотренные в языке. Перечень допустимых стандартных подпрограмм зависит от типа элементов массива.

 

Контроль ошибок при работе с массивами

Самой распространенной ошибкой при работе с массивами является выход индексов за допустимые диапазоны. Для исключения таких ошибок в среде Turbo Pascal предусмотрена директива компилятора {R}. При указании в программе директивы {$R+} все массивы проверяются на предмет нахождения их внутри указанных границ. Если обнаруживается нарушение диапазона, программа завершает свою работу, выводя сообщение об ошибке выполнения. Если директива не используется (этот режим принят по умолчанию), выход индекса за пределы допустимого диапазона не приведет к прекращению работы программы. Но при обращении к ''несуществующему'' элементу массива даст неопределенный результат, что может сделать ход дальнейшего выполнения программы непредсказуемым.

Следует заметить, что применение директивы {R+} несколько замедляет выполнение программы и увеличивает ее размер. Поэтому рекомендуется использовать эту директиву при отладке, а затем ее удалить из текста программы.

 

РЕШЕНИЕ ЗАДАЧ - ПРИМЕРОВ

В качестве примера рассмотрим решение двух задач с одномерным и двухмерным массивами.

Пример 1. Создать одномерный вещественный массив из 25 элементов. Определить максимальный и минимальный элементы массива и поменять их местами. Полученный результат вывести на экран.

Текст программы на языке Turbo Pascal:

PROGRAM MAS;

VAR

M: ARRAY [1.. 25] OF REAL; { Вещественный массив }

MAX, MIN, MN: REAL;

I, K, N: INTEGER; { Вспомогательные переменные }

BEGIN

{ Ввод вещественного массива из 25 элементов }

FOR I: = 1 TO 25 DO READ (M [I]);

{ Переменным MAX и MIN присваиваем значение первого элемента массива }

MAX: = M [1]; K: = 1;

MIN: = M [1]; N: = 1;

{ Определяем максимальный и минимальный элементы массива и их индексы}

FOR I:= 2 TO 25 DO

BEGIN

IF M [I] > MAX THEN

BEGIN

MAX: = M [I];

K: = I;

END;

IF M[I] < MIN THEN

BEGIN

MIN: = M [I];

N: = I;

END;

END;

{Меняем местами максимальный и минимальный элементы}

MN: = M [K];

M [K]: = M [N];

M [N]: = MN;

{ Вывод полученного массива на экран }

FOR I: = 1 TO 25 DO WRITELN (M[I]);

END.

Пример 2. Создать целочисленную матрицу А 10х8. Сформировать одномерный массив В, который содержит суммы положительных элементов каждой строки матрицы А и вывести его на экран.

Текст программы на языке Turbo Pascal:

PROGRAM PRIM;

VAR

A: ARRAY [1.. 10, 1.. 8] OF INTEGER;

B: ARRAY [1.. 10] OF INTEGER;

I, J, S: INTEGER;

BEGIN

{ Ввод целочисленной матрицы А 10х8 }

FOR I:= 1 TO 10 DO

FOR J: = 1 TO 8 DO

READ (A[ I, J]);

{ Вычисление суммы положительных элементов каждой строки матрицы А и формирование массива В }

FOR I: = 1 TO 10 DO

BEGIN

S: = 0;

FOR J: = 1 TO 8 DO

IF A [ I, J ] > 0 THEN S: = S + A [ I, J ];

B [ I ]: = S;

END;

{ Вывод сформированного массива В на экран }

FOR I: = 1 TO 10 DO WRITELN (B [ I ]);

END.

 

Раздел 2. Архитектура предприятия





Поделиться с друзьями:


Дата добавления: 2016-10-07; Мы поможем в написании ваших работ!; просмотров: 357 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если президенты не могут делать этого со своими женами, они делают это со своими странами © Иосиф Бродский
==> читать все изречения...

2457 - | 2326 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.009 с.