Учебное пособие: Обработка массивов данных в среде Turbo Pascal
Примеры ввода одномерных массивов:
а) ввод с клавиатуры
FOR I: = 1 TO N DO READ ( M [I] );
б) ввод с помощью генератора случайных чисел
RANDOMIZE; { инициализация генератора случайных чисел }
FOR I: = 1 TO N DO M [I]: = - 25 + RANDOM (D);
Стандартная функция Random формирует случайное целое число из диапазона от 0 до D-1. При этом i-му элементу массива будет присвоена сумма выбранного случайного числа и -25. Таким образом, массив будет заполняться целыми случайными числами от -25 до -25 + (D-1). Например, если выбрать D равным 51, то массив будет заполняться случайными числами от -25 до +25.
Вывод одномерных массивов происходит аналогичным образом, например:
FOR I: = 1 TO N DO WRITELN ( M [I] );
Ввод двумерных массивов (матриц) производится с помощью вложенного оператора FOR:
FOR I: = 1 TO N DO
FOR J: = 1 TO K DO
READ ( M [I, J] );
Вывод значений элементов двухмерных массивов производится аналогичным образом с использованием операторов вывода WRITE или WRITELN:
FOR I: = 1 TO N DO
FOR J: = 1 TO K DO
WRITELN ( M [I, J] )
Таким же образом, поэлементно, происходит ввод и вывод многомерных массивов.
2.6 Контроль ошибок при работе с массивами
Самой распространенной ошибкой при работе с массивами является выход индексов за допустимые диапазоны. Для исключения таких ошибок в среде TurboPascal предусмотрена директива компилятора {R}. При указании в программе директивы {$R+} все массивы проверяются на предмет нахождения их внутри указанных границ. Если обнаруживается нарушение диапазона, программа завершает свою работу, выводя сообщение об ошибке выполнения. Если директива не используется (этот режим принят по умолчанию), выход индекса за пределы допустимого диапазона не приведет к прекращению работы программы. Но при обращении к ’’несуществующему’’ элементу массива даст неопределенный результат, что может сделать ход дальнейшего выполнения программы непредсказуемым.
Следует заметить, что применение директивы {R+} несколько замедляет выполнение программы и увеличивает ее размер. Поэтому рекомендуется использовать эту директиву при отладке, а затем ее удалить из текста программы.
3. РЕШЕНИЕ ЗАДАЧ - ПРИМЕРОВ
В качестве примера рассмотрим решение двух задач с одномерным и двухмерным массивами.
Пример 1. Создать одномерный вещественный массив из 25 элементов. Определить максимальный и минимальный элементы массива и поменять их местами. Полученный результат вывести на экран.
Текст программы на языке TurboPascal:
PROGRAM MAS;
VAR
M: ARRAY [1.. 25] OF REAL; { Вещественныймассив }
MAX, MIN, MN: REAL;