Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 2 part.docx
Скачиваний:
7
Добавлен:
03.12.2018
Размер:
40.62 Кб
Скачать

35. Структуры данных. Массивы.

Массивы (ARRAY)

Сущ-ет 2 способа описания массивов:

а) TYPE

имя типа = ARRAY [список индексных типов] OF тип;

VAR

Имя переменной: имя типа;

Список индексных типов - список, составленный из одного или нескольких (индексных) типов, разделенных запятыми. В кач-ве индексных типов в TURBO PASKAL-е можно использ-ть любые порядковые типы, кроме типа LONGINT и типа диапазон, где базовый тип- LONGINT.

Тип - это тип элементов массива. Все элементы массива должны быть одного и того же типа, при этом можно указывать любой тип TURBO PASKAL-я.

б) VAR

имя переменной: ARRAY [список индексных типов] OF тип;

Обычно в кач-ве индексного типа исп-ся тип диапазон, в кот. задаются границы изменения индексов, например:

VAR

A, B: ARRAY [1..10] OF REAL;

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

Размерность массива – количество элементов в массиве (количество индексов).

Как в нашем примере, размерность массивов А и В – 10, а у элемента С – 10 на 20.

TYPE

MAT = ARRAY [0..5] OF ARRAY [-2..2] OF ARRAY [CHAR] OF BYTE;

Обычно такая запись не применяется, а использ-ют такую:

TYPE

MAT = ARRAY [0..5, -2..2, CHAR] OF BYTE; (т.е. один массив вкладывается в другой).

Поскольку массивы широко применяются в математике, то максимальное кол-во задач программируют по массивам (на матрицы задачи).

Пр.: VAR

B, A: ARRAY [1..10, 1..20] OF REAL;

Элементы любого массива умещаются в памяти ЭВМ построчно, т.е.

А11, А12, … , А120

А21, А22, … , А220

………………….

А101, А102, … , А1020

Если 2 любых массива имеют одинаковый тип, то можно выполнить такое присваивание: А:=В.

Нельзя выполнять над массивами операции сравнения, т.е. Если А = В (IF A = B) – НЕЛЬЗЯ!!!.

Можно сравнивать только по-элементно (элементы массивов).

Пр.: Одномерный целочисленный массив, состоящий из n-элементов, где n-заданное натуральное число.

Произвести циклический сдвиг элементов данного массива на 1 элемент вправо.

А1 А2 А3 А4

А4 А1 А2 А3 4 B на место А1) A[I]:=A [I-1]

PROGRAM P1;

НАЧАЛО

CONST N=4;

VAR

Ввод А1, А2, … , АN

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

I, B: INTEGER;

BEGIN

B = A [N]

FOR I:=1 TO N DO

READ (A[I]);

I = N, 2, -1

B:=A[N];

FOR I:=N DOWNTO 2 DO

A [I]:=A [I-1];

A [I] = A [I-1]

A [1] = B

A [1]:=B;

FOR I:=1 TO N DO

WRITELN (A[I]);

Вывод А1, А2, … , АN

END

КОНЕЦ

В языке программирования ТР данные подразделяются на след типы: простые(скалярные) и сложные.

Простые типы данных подразделяются на: стандартный (предопределенный) тип; тип, задаваемый пользователем (перечисляемый тип); тип диапазона (интервальный тип).

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

В Turbo Paskal-e используются след. сложные типы: массивы, строки, записи, множества, файлы, указатели, процедурные типы, объекты.

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

В ТР-ле допускается произвольная глубина вложенности типов, но при этом суммарная длина люб. вложенности во внутреннем (двоичном) представлении не должна превышать 65 520 байт