Работа с массивами. Процедуры и функции
Массивом называется упорядоченная по номерам последовательность однотипных элементов. Простейшим примером массива является любой пронумерованный список. Основными параметрами массива являются:
- порядок массива: одномерный (вектор), двумерный (матрица), и т.д. по количеству различных переменных в массиве;
- объём массива: количество элементов в массиве;
- тип элементов: характер элементов.
Как и простая переменная, массив является единым целым и обозначается в языке Турбо Паскаль одним идентификатором (именем), после которого в квадратных скобках указывается диапазон номеров элементов массива и далее тип элементов. Так, формат записи одномерного массива будет иметь вид
X: array [1..n] of real,
где X-идентификатор (имя массива),
array (массив) – служебное слово для обозначения массива,
n -количество элементов массива,
real – тип элементов массива (здесь - действительные числа).
В квадратных скобках показан диапазон номеров элементов массива – от 1 до n. Наличие номера у каждого элемента позволяет решать две задачи:
- при работе программы обращаться к каждому элементу массива и производить с ним любые операции;
- использовать номера элементов для организации работы счётчика циклов, о котором говорилось выше.
Например, для ввода значений массива с клавиатуры необходимо организовать цикл в пределах от номера первого элемента массива 1до номера последнего элемента n и выполнить оператор ввода read nраз. После ввода последнего элемента c номером n счётчик автоматически выключит процедуру ввода и передаст управление очередной команде программы.
В оперативной памяти компьютера массив представляет собой расположенные рядом ячейки памяти, имеющие одинаковый тип и размер. Номера соседних элементов массива отличаются на единицу. Переменной цикла в таком одномерном массиве является индекс (номер) элемента,записываемый в квадратных скобках после идентификатора массива: X[i], где i– номер элемента одномерного массива.
Для многомерных массивов используется несколько переменных цикла, причём их количество равно порядку массива.
Так, для двумерногомассива, представляющего матрицу, состоящую из mстрок и nстолбцов, формат записи выглядит следующим образом:
Y : array [1..m, 1..n] of real,
аиндекс каждого элемента матрицы (его номер) имеет два параметра – номер строки i и номер столбца j,т.е. запишется в виде X[i,j].Для работы с многомерными массивами необходимо организовать отдельные циклы для каждой переменной: для двумерного массива, в частности, нужно два цикла, по переменным i иj, соответственно.
Ввод значений массива может осуществляться операторами присваивания с клавиатуры или из файла, если данные массива и файла имеют одинаковый тип. Над одномерными и многомерными массивами можно осуществлять операции сравнения и присваивания. При этом массивы также должны иметь один тип.
При решении задач по созданию новых массивов необходимо вводить для каждого нового массива свои идентификаторы индексов. При копировании и в некоторых других случаях индексы могут совпадать.
Процедуры и функциипредставляют собой стандартные подразделы программ, причём они могут использоваться многократно в различных частях основной программы.
Процедура – это программа написанная для выполнения часто повторяющихся действий. Фактически она является подпрограммой, как её обычно и называют. Процедура записывается в раздел описаний основной программы uses и вызывается к работе оператором обращения к процедуре.
Все параметры, которые использует подпрограмма, можно разбить на две категории:
- локальные, объявленные внутри подпрограммы и доступные лишь ей самой;
- глобальные, объявленные в описании основной программы и доступные как программе, так и всем подпрограммам.
Обмен данными между основной программой и подпрограммами осуществляется только с помощью глобальных параметров. Подпрограмма может использовать любые глобальные параметры, за исключением тех, которые имеют такие же имена, что и локальные параметры.
Любая процедура начинается с заголовка, который является обязательным. Он состоит из служебного слова Procedure, за которым следует идентификатор процедуры и, в круглых скобках, список формальных параметров. Заголовок завершается точкой с запятой. После заголовка могут идти те же разделы, что и в основной программе.
Procedure <идентификатор процедуры> (список формальных
параметров)
[описание локальных параметров] {могут отсутствовать или быть
теми же, что в основной программе}