Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 1.doc
Скачиваний:
34
Добавлен:
22.02.2015
Размер:
1.94 Mб
Скачать
        1. Тип массив

 Синтаксис

ARRAY[<Тип индекса>]OF<Тип элемента>

Тип индекса может быть любым порядковым типом. Тип массив описывает в памяти последовательность переменных указанного типа элемента.

 Пример

TYPE

I100=ARRAY [1..100] OF Integer; { Массив из 100 целых чисел}

VAR

A:I100;

B:ARRAY [Char] OF (Letter,Digit);

C:ARRAY [1..10] OF ARRAY [1..20] OF Real;

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

 Пример

VAR

C:ARRAY [1..10,1..20] OF Real;

 Обращение к элементам массива

<Имя массива>[<Индекс 1>][<Индекс 2>]…[<Индекс N>]

или

<Имя массива>[<Индекс 1>,<Индекс 2>,…,<Индекс N>]

 Пример

A[10]:=5;

FOR Ch:='A' TO 'Z' DO B[Ch]:=Letter;

FOR Ch:='0' TO '9' DO B[Ch]:=Digit;

C[2][3]:=C[2,4]-1;

        1. Строковый тип

 Синтаксис

STRING

или

STRING[<Максимальная длина>]

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

 Пример

VAR

S:STRING;

S20:STRING[20]; { Строка максимальной длины 20 символов}

∙ ∙ ∙

S:='Иванов';

IF S[4]<>'н' THEN Writeln('Ошибка');

S20:=S+' ушел в отпуск';

Writeln(S20);

        1. Процедуры и функции для работы со строками

Функция Length(S) возвращает длину (количество символов) строкиS. Для пустой строки функция возвращает 0.

 Пример

Length('Пример')=6,Length('')=0

Функция Copy(S,<Начало>,<Длина>) возвращает часть строки (подстроку)S указанной длины, начиная с позиции, задаваемой параметром <Начало>.

 Пример

Copy('Пример',2,3)='рим',Copy('Пример',4,10)='мер'

Процедура Insert(S1,S2,<Позиция>) вставляет строкуS1 в строкуS2 в указанной позиции.

 Пример

S:='Пер';

Insert('рим',S,2);

 Результат выполнения

S='Пример'

Процедура Delete(S,<Начало>,<Длина>) – удаляет часть строки заданной длины изS, начиная с указанной позиции.

 Пример

S:='Периметр';

Delete(S,3,4);

 Результат выполнения

S='Петр'

        1. Типизированные константы

Типизированные константы, как и обычные, описываются в разделе описания констант, но их описание несколько отличается.

 Синтаксис

CONST

<Имя>:<Тип> = <Значение>;

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

        1. Процедуры и функции

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

 Синтаксис

Общий вид процедур и функций:

<Заголовок>

<Описательная часть>

BEGIN

<Исполнительная часть>

END;

Заголовок процедуры:

PROCEDURE<Имя>[(Формальные параметры>)];

Заголовок функции:

FUNCTION<Имя>[(Формальные параметры>)]: <Тип результата>;

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

 Синтаксис списка формальных параметров

[{VAR|CONST}] <Список имен 1>:<Тип 1>; [{VAR|CONST}] <Список имен 2>:<Тип 2>; . . .

[{VAR|CONST}] <Список именN-1>:<ТипN-1>;

[{VAR|CONST}] <Список именN>:<ТипN>

Тип результата указывает тип значения, возвращаемого функцией.

 Пример

PROCEDURE PrintNumber(n:Real);

FUNCTION Sub(CONST S:STRING;St,En:Integer):STRING;

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

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

 Синтаксис специального оператора присваивания

<Имя функции> := <Выражение>

 Пример

FUNCTION Mul(A,B:Real):Real;

BEGIN

Mul:=A*B;

END;

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

 Пример

FUNCTION Mul(A,B:Real):Real;

BEGIN

Result:=A*B;

END;

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