Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект_ лекций по Паскалю_ИиКТ.doc
Скачиваний:
12
Добавлен:
24.09.2019
Размер:
2.85 Mб
Скачать

Пустой оператор

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

Составной оператор

Составной оператор представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки Begin и End:

Begin

< оператор 1 > ;

< оператор 2 > ;

. . . . . . . . . . . . . .

< оператор N >

End ;

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

Отдельные операторы внутри составного оператора отделяются друг от друга точкой с запятой. Так как завершающее составной оператор слово end не является отдельным предложением, то перед ним точку с запятой можно не ставить, в противном случае компилятор будет считать, что перед словом end стоит пустой оператор. Можно считать, что и само тело программы, т. к. оно заключено в операторные скобки begin и end, тоже является составным оператором.

Массивы

Массив - это структура данных, которую можно рассматривать как набор переменных одинакового типа, имеющих общее имя. Использование массивов существенно упрощает работу с однотипными данными, ускоряет обращение к ним и сокращает размер используемой памяти, так как все данные получают общий начальный адрес. Максимальный объём памяти, который может занимать массив, в Турбо Паскале составляет 65520 байт.

Объявление массива

Перед использованием массив, как и любая переменная, должен быть объявлен в разделе объявления переменных. В общем виде объявление массива выглядит так:

Имя : Array [ нижний _индекс. . верхний индекс ] of Тип ;

где Имя  имя переменной-массива;

Array  ключевое слово, обозначающее, что переменная является массивом;

нижний_индекс и верхний_индекс  целые числа, определяющие диапазон изменения индексов (номеров) элементов массива и, неявно, количество элементов (размер) массива;

Тип  тип элементов массива.

Пример : Var

a, b : array [1..5] of real ;

c, d : array [-7..3] of integer ;

Кроме одномерных массивов в Паскале вводятся многомерные массивы; соответственно они могут быть описаны двумя способами, например:

Var a : array [0..3] of array [5..7] of real;

или

Var a: array [0..3,5..7] of real ;

Следует соблюдать следующие правила:

1. Нижняя граница диапазона должна быть не меньше верхней.

2. Между верхней и нижней границами диапазонов ставятся две точки и не должно быть никаких пробелов.

3. У многомерных массивов диапазоны разделяются запятыми, количество измерений неограничено ( за исключением, конечно, правила о 65520 байтах).

4. Границы диапазонов находятся в пределах либо -32768..32767, либо 0..65535.

5. В качестве границ диапазонов могут использоваться не только числа, но и определенные к этому моменту константы.

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

Например, описание массивов

Var

a, c : array [1..3] of real ;

b, d : array [5..7,1..3] of real

и Const

k1 = 1 ; k2 = 3 ; l1 = 5, l2 = 7;

Type

vector = array [k1..k2] of real ;

matrix = array [l1..l2] of vector;

Var

a, c : vector;

b, d : matrix

эквивалентны между собой.

Одномерный массив естественно сопоставить со строкой, столбцом или вектором; двумерный - с матрицей или таблицей.

Элемент одномерного массива обозначается с помощью названия массива и индекса заключенного в квадратные скобки, например a[k]; индексы элемента многомерного массива могут перечисляться в квадратных скобках через запятые или заключаться в отдельные квадратные скобки, например b[2,10] или b[2][10]. При этом b[2] представляет собой одномерный массив.

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

a[2] :=3;

read(b[5,6]) ;

a[2] := c[3] + d[7] ;

WriteLn(c[3] : 5 :2, c[3] - d[5] : 5 : 1);

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

Type

vector_1 = array[0..10] of vector ;

Var

a, b : vector_1;

Begin

a : = b;

if a = b then WriteLn(‘ массивы a и b совпадают ‘) ;

if a <> b then WriteLn (‘ массивы a и b не совпадают ‘);