Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курс лекций программирование.doc
Скачиваний:
40
Добавлен:
31.08.2019
Размер:
5.03 Mб
Скачать
  1. Строковый тип данных

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

1. Определение массива

Простые типы данных позволяют использовать в программе одиночные объекты - числа, символы, строки и т.п. В Турбо Паскале могут использоваться также объекты, содержащие множество однотипных элементов. Это массивы -- формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое. К необходимости применения массивов мы приходим всякий раз, когда требуется связать и использовать целый ряд родственных величин. Например, результаты многократных замеров температуры воздуха в течение года удобно рассматривать как совокупность вещественных чисел, объединенных в один сложный объект -- массив измерений.     При описании массива необходимо указать общее число входящих в массив элементов и тип этих элементов. Например:

var

а: array [1..10] of real;

b: array [0..50] of Char;

с: array [-3..4] of Boolean;

    Как видим, при описании массива используются зарезервированные слова ARRAY и OF (массив, из). За словом ARRAY в квaдрaтныx скобкax указывается тип-диапазон, с помощью которого компилятор oпеределяет общее число элементов массива. Тип-диапазон задается левой и правой границами изменения индекса массива так что массив А состоит из 10 элементов, массив В - из 31, а массив C - из 8 элементов. За словом OF указывается тип элементов, образующих массив.     Доступ к каждому элементу массива в программе осуществляется с помощью индекса - целого числа (точнее, выражения порядкового типа), служащего своеобразным именем элемента в массиве (если левая граница типа-диапазона равна 1, индекс элемента совпадает с его порядковым номером).

2 Описание массивов

Все массивы, обрабатываемые в программе, должны быть обязательно описаны.

1 способ:

TYPE

<Имя типа>= ARRAY [<Тип индекса>] OF <Тип компонента>;

VAR

<Идентификатор>:<Имя типа>;

2 способ:

VAR

<Идентификатор>: ARRAY [<Границы изменения индекса>] OF <Тип компонента>;

ПРИМЕР:

TYPE

Klass=(k1,k2,k3,k4);

Znak=ARRAY [1..225] OF Char;

VAR

M1:Znak;

M2:ARRAY[1..60] OF Real;

M3:ARRAY [1..4] OF Klass;

M4:ARRAY[1..5,1..4] OF Integer;

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

TYPE

Vektor=ARRAY [1..4] OF Integer;

Massiv=ARRAY [1..4] OF Vektor;

VAR

Matr:Massiv;

Если в такой форме описания массива задан один индекс, массив называется одномерным. Если два индекса – двумерным, N- индексов - N- мерным.

Размерность массивов в настоящее время ограничена только объёмом оперативной памяти конкретной ЭВМ.

Для описания массива можно использовать предварительно определённые константы.

CONST

G1=4;

G2=6;

VAR

A:ARRAY [1..G1,1..G2] OF Real;

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

B:ARRAY [1..2,1..3] OF Real;

То, в памяти элементы массива будут размещены по возрастанию адресов

B[1,1] B[1,2] B[1,3] B[2,1] …

Матрица располагается в оперативной памяти по строкам.

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

Для ввода одномерного массива В из 20 элементов:

WRITELN (‘введи массив В (20)’);

FOR I:= 1 TO 20 DO READ (В[I]);

Для вывода того же массива в виде столбца с пояснительным текстом на экран:

WRITELN (‘ массив В (20)’);

FOR I:= 1 TO 20 DO WRITELN (‘B(‘, I, ‘) = ‘, B[I]: 6:2);

Если этот же массив нужно вывести на печать необходимо («подцепить» в команде USES раздел PRINTER):

WRITELN (LST, ‘массив В (20)’:8);

FOR I:= 1 TO DO WRITELN (LST, ‘B (‘ , I, ‘) =’ , B[I] : 10:2);

Для ввода матрицы М (5,6):

WRITELN (‘ введи матрицу М (5,6);

FOR I: = 1 TO 5 DO

FOR J= 1 TO 6 DO READ (M[I,J]);

Для вывода матрицы на экран, для просмотра в виде матрицы:

WRITELN (‘ матрица М (5,6) ‘: 15);

FOR I:= 1 TO 5 DO BEGIN WRITELN;

FOR J:= 1 TO 6 DO WRITE (M[I,J] :8 :2)

END;

Если нужно вывести эту же матрицу на печать:

WRITELN (LST, ‘ матрица М (5,6) ‘:15 );

FOR I:= 1 TO 5 DO BEGIN WRITELN (LST);

FOR J:= 1 TO 6 DO WRITE (LST, M[I,J] :8:2)

END;

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