Самой распространенной ошибкой при работе с массивами является выход индексов за допустимые диапазоны. Для исключения таких ошибок в среде Turbo Pascal предусмотрена директива компилятора {R}. При указании в программе директивы {$R+} все массивы проверяются на предмет нахождения их внутри указанных границ. Если обнаруживается нарушение диапазона, программа завершает свою работу, выводя сообщение об ошибке выполнения. Если директива не используется (этот режим принят по умолчанию) , выход индекса за пределы допустимого диапазона не приведет к прекращению работы программы. Но при обращении к ''несуществующему'' элементу массива даст неопределенный результат, что может сделать ход дальнейшего выполнения программы непредсказуемым.
Следует заметить, что применение директивы {R+} несколько замедляет выполнение программы и увеличивает ее размер. Поэтому рекомендуется использовать эту директиву при отладке, а затем ее удалить из текста программы.
Ход работы:
1. Создать одномерный вещественный массив из 25 элементов. Определить максимальный и минимальный элементы массива и поменять их местами. Полученный результат вывести на экран.
PROGRAM MAS;
VAR
M : ARRAY [1 . . 25] OF REAL; {Вещественный массив}
MAX, MIN, MN : REAL;
I, K, N : INTEGER; {Вспомогательные переменные}
BEGIN
FOR I : = 1 TO 25 DO READ ( M [I] ) ; {Ввод вещественного массива из 25 элементов}
MAX : = M [1] ; K : = 1 ; {Переменным MAX и MIN присваиваем значение первого элемента массива}
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.
Контрольное задание:
1. Создать одномерный вещественный массив из N элементов. Определить максимальный и минимальный элементы массива. Очистить экран. Полученный результат вывести на экран.
Контрольные вопросы
1. Что такое массив данных ?
2. Какими способами можно описать массивы ?
3. Какой максимальный размер может иметь массив ?
4. Как происходит доступ к отдельным элементам массива ?
5. Могут ли быть многомерные массивы ?
6. Какие могут быть типы элементов массивов ?
7. Какие могут быть типы индексов массивов ?
8. Можно ли всем элементам одного массива присвоить значения элементов другого массива ?
9. Как происходит ввод-вывод одномерных и многомерных массивов?
10. Какие действия можно производить с отдельными элементами массивов ?
11. Чем отличаются массивы данных от записей ?
12. Чем отличаются массивы от других структурированных типов данных ?
13. Как задается типизированная константа-массив ?