Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чернов Шафеева.doc
Скачиваний:
47
Добавлен:
21.05.2015
Размер:
1.39 Mб
Скачать

Встроенные функции

Обращение

Тип параметра

Тип результата

Примечание

Pi

Frac(Х)

Int(x)

Random

Randomize

вещественный

вещественный

вещественный

вещественный

вещественный

вещественный

Pi=3,141592653

Дробная часть Х

Целая часть x

0<x<1  случайное целое число

Инициализация датчика случайных чисел

2.8.8. Структурированные типы данных. Массивы

Массивыупорядоченная структура однотипных данных, хранящихся последовательно. Массив обязательно имеет размеры. Описывается в разделе TYPE или VAR следующим образом:

Type <имя>=array[индексный тип] of <базовый тип>; или

Var <Имя_переменной>: array [ диапазон_индексов] of <базовыйтип>;

Диапазон индексов может задаваться любым порядковым типом кроме LongInt. Произведение количества компонентов массива, задаваемого диа­пазоном индексов на размер компонентов в байтах, не может превышать 65520 байт.

Пpимер: TYPE

array10=array[1..10] of integer;

array11=array[11..22] of real;

VAR V:array[-3..2] of char; {массив из 6 элементов}.

В качестве индексов можно использовать любые перечислимые типы как встроенные, так и вводимые программистом. Индексы в этом случае могут задаваться также диапазоном. Если диапазон соответствует всему типу, можно просто указывать имя этого типа. Например:

TYPE DIAP=1..100;

VECTOR=array[DIAP] of real;

PRIZ=array[Boolean] of char;

При записи сложных массивов индексы разных диапазонов могут при­надлежать разным типам. Например:

VAR V: array[0..10,'A'..'C',Boolean] of char;

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

CONST

K=10; L=5;

VAR

A:ARRAY[1..K] OF INTEGER;

B,С:ARRAY[1..K,1..L] OF REAL;

Массивы хранятся в памяти как сплошные последовательности компо­нентов, причем, быстрее изменяется дальний правый индекс.

Обращение к элементу массива производится указанием имени массива и индексов, заключенных в квадратные скобки:

<имя>[<индексы>].

Пример:

A[1] := 1; B[8,5] := В[8,1] + B[8,2];

V[1,'B',False] или V[1]['B'][False].

В данном типе определена единственная операция присваивания. Мож­но присваиваить массив лишь массиву, например: A := С.

Операции сравнения производятся только поэлементно.

Обнуление элементов массива выполняется циклом

FOR I:=1 TO K DO A[I]:=0.

Разрешается обьявлять массивы массивов, например:

TYPE VECTOR=array[1..5] of real;

MATRIX=array[1..10] of VECTOR;

или

MATRIX=array[1..10] of array[1..5] of real;

или

MATRIX=array[1..10,1..5] of real;

Приведенные три последних вида записей эквивалентны.

Слову array может предшествовать ключевое слово PACKED, которое означает «упакованный». Заметим, что в Турбо Паскале все массивы хра­нятся в упакованном виде, поэтому PACKED писать не рекомендуется.