Одномерные массивы
Массивом называется совокупность данных, выполняющих аналогичные функции, и обозначаемая одним именем. Если за каждым элементом массива закреплен только один его порядковый номер, то такой массив называется линейным, или одномерным.
Массив в Паскале
<имя массива>:= array [<количество элементов>] of <тип переменной>; Каждый элемент массива в общем виде описывается как А[I], где А - имя массива, I - номер или индекс массива (0<=I<=N, но практически употребляется 1<=I<=N) A[I] - значение элемента массива.
Действия над массивами
Для работы с массивом как единым целым используется идентификатор массива без указания индекса в квадратных скобках. Массив может участвовать только в операциях отношения "равно", "не равно" и в операторе присваивания. Массивы, участвующие в этих действиях, должны быть идентичны по структуре, т. е. иметь одинаковые типы индексов и одинаковые типы компонентов.
Например, если массивы А и В описаны как var А, В: array[1..20] of real; то применение к ним допустимых операций даст следующий результат:
Выражение Результат
А=В True, если значение каждого элемента массива А равно соответствующему значению элемента массива В
А<>В True, если хотя бы одно значение элемента массива А не равно значению соответствующего элемента массива В
А:=В Все значения элементов массива В присваиваются соответствующим элементам массива А. Значения элементов массива В остаются неизменны.
Действия над элементами массива
После объявления массива каждый его элемент можно обработать, указав идентификатор (имя) массива и индекс элемента в квадратных скобках. Например, запись Mas[2], VectorZ[10] позволяет обратиться ко второму элементу массива Mas и десятому элементу массива VectorZ.
При работе с двумерным массивом указываются два индекса, с n-мерным массивом - n индексов. Например, запись MatrU[4,4] делает доступным для обработки значение элемента, находящегося в четвертой строке четвертого столбца массива MatrU.
Индексированные элементы массива называются индексированными переменными и могут быть использованы так же, как и простые переменные. Например, они могут находиться в выражениях в качестве операндов, использоваться в операторах for, while, repeat, входить в качестве параметров в операторы Read, Readln, Write, Writeln; им можно присваивать любые значения, соответствующие их типу.
Двумерные массивы
Двумерным называется массив, элемент которого зависит от его местоположения в строке и в столбце. В общем виде элемент матрицы обозначается как A(I,J), где А — имя массива, I — индекс (номер) строки, J — индекс (номер) столбца.
Описание матрицы на языке Паскаль
Матрицу можно задать двумя способами:
<имя матрицы>: array [<количество строк>] of array [<количество столбцов>] of <тип переменной>;
<имя матрицы>: array [<количество строк >,<количество столбцов>] оf <тип переменной>].
Соотношение индексов в квадратной матрице
I=J элементы матрицы расположены на главной диагонали I<J элементы матрицы расположены над главной диагональю I>J элементы матрицы расположены под главной диагональю I+J=N+I элементы матрицы расположены на побочной диагонали (N — количество строк или столбцов в квадратной матрице) I+J<N+I элементы матрицы расположены над побочной диагональю I+J>N+I элементы матрицы расположены под побочной диагональю.
Операции в Pascal могут производиться не только над различными по характеру числами, но и над иными объектами. Такими объектами могут быть массивы, файлы, отдельные записи, их совокупности, ограниченные множества, перечисления и прочие логически связанные элементы.
Рассмотрим далее типы переменных - Char и String.
Переменные типа Char описывают отдельные символы кодовой таблицы ASCII (всего 256 символов). С этими переменными могут быть использованы функции Ord(a), Chr(x), UpCase(a).
Если аргументом функции Ord является какой-либо символ, то в результате операции присваивания t:=Ord(a);целочисленная переменная t получит значение, равное её числовому коду в системе ASCII. При выполнении присваиванияa:=Chr(x), a окажется символом, соответствующим коду x (при передаче параметра X, если он не Byte типа то преобразуется в него). Функция UpCase(a) при наличии в параметре a прописных символов преобразует их в заглавные, остальные же символы выдаст без изменения. UpCase применима лишь для преобразования символов латинского алфавита. Все эти особенности изложены в двух программах, приводимых далее:
Program Prochar; {Комплексная программа использования операторов символьных данных} Var a: Char; b, c: Byte; Begin Write('Введите символ'); ReadLn(a); b:= Ord(a); c:=Ord(UpCase(a)); WriteLn('a=',a,' Ord(a)=', b,' UpCase(a)=',UpCase(a),' c=',c); WriteLn(Chr(b),' ',Chr(c)); ReadLn End.
Program Casl; {Пример структуры Case<Порядковая переменная> of <Список выбора> else <Оператор> end;} {Выяснить, является ли введённый символ буквой латинского алфавита} Var ch: Char; Begin Write('Введите символ '); Readln(ch); Case ch of 'A'..'Z','a'..'z': Writeln('Символ ',ch,' является символом латинского алфавита'); Else Writeln('Символ ',ch,' не является символом латинского алфавита'); End; End.
Библиотека (модуль) CRT в Turbo Pascal.
Библиотека CRT позволяет менять цвета и яркость экрана, производить
его очистку, управлять звуковым генератором компьютера.
Подключение модуля CRT производится директивой USES CRT, которая
указывается в разделе описаний.