Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lec_05

.pdf
Скачиваний:
8
Добавлен:
11.05.2015
Размер:
1.48 Mб
Скачать

Пример

22

TYPE

{Начало раздела определения типов}

VEKTOR = ARRAY [1 .. 20] OF REAL;

MATR = ARRAY [1 .. 20, 1 .. 30] OF INTEGER; STROKA = STRING [10];

VAR

{Начало раздела определения переменных}

А, В : VEKTOR;

С, D : MATR;

Е, F : STROKA;

VAR А, В : ARRAY [1 .. 20] OF REAL;

Перечисляемый тип данных

23

Определяется в виде упорядоченного списка констант, заданных их перечислением. Каждое значение константы - идентификатор.

Определение типа может быть в разделах TYPE или VAR.

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

Последовательность перечисления констант автоматически нумеруется от 0 до N, где N < 255.

Т.о., максимальная мощность перечисляемого типа = 256.

Форма определения:

TYPE имя-типа = ( список-значений-констант );

Примеры операций, допустимых над данными перечисляемого типа

24

Type MONTH=(Feb,Mar,Apr,May); COLOR=(Red,Green,Blue);

Var X:MONTH; Y:COLOR;

...

X:=Mar; Y:=Green;

Pred(X)=Feb; {предыдущий элемент перечня}

Succ(Y)=Blue; {последующий элемент перечня}

Ord(X)=1; {номер элемента в перечне}

Диапазонный тип данных

25

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

Диапазонный тип данных может быть задан как интервал ранее определенного перечисляемого или стандартного типа, кроме REAL.

Диапазонный тип сохраняет все свойства исходного типа с учетом ограниченного диапазона его значений. Для него применимы все операции и функции исходного (базового) типа.

Диапазонный тип данных можно определить в разделах

TYPE или VAR.

Диапазонный тип данных

26

Форма определения диапазонного типа данных:

TYPE имя-типа = <н.г.> .. <в.г.>;

где н. г. и в. г. - значения нижней и верхней границ подмножества ординальных значений базового типа (н. г. должна быть меньше в. г.),

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

Если на одном базовом типе определено несколько интервальных типов, то переменные этих типов можно использовать в одном выражении.

Примеры операций, допустимых над данными интервального типа

27

Type MONTH = (Feb,Mar,Apr,May); Var X : Feb..Apr;

Y : Mar..May; Day : 1..31;

Year : 1990..1998;

Y:=Apr; Pred(Y)=Mar Day:=12; Dec(Day,10)=22

{изменение аргумента Day на 10)

Year:=1990; Inc(Year)=1991 {увеличение аргумента Year на 1)

Day:=10; Day:=Day+12; {Day=22 операция сложения}

Задачи…

28

2.1) Написать программу определения названия дня недели по его порядковому номеру.

2.2) Написать программу проверки корректности введенной даты.

2.3) Написать программу определяющую язык алфавита для введенного символа/текста.

МАССИВЫ

29

Массив – это совокупность фиксированного количества (конечного числа) компонентов (элементов) одного и того же типа.

Тип элементов массива называется базовым типом. Он может быть любым: простым или сложным.

Каждый элемент массива имеет индекс, который определяет его местоположение в ОП.

Элементы массива упорядочены по индексам.

Массивы можно определить в разделах TYPE

или VAR.

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

30

Форма объявления массива:

ТYРЕ Т = ARRAY [ T1 ] OF T2;

,где Т - имя типа массива; Т1 - тип индексов в виде списка типов, по одному для каждого измерения; обычно тип индексов диапазонный; Т2 - базовый тип: тип элементов массива.

Примеры объявления массивов данных различных типов:

TYPE ТА =

ARRAY [1 .. 10] OF INTEGER;

{ Тип массива А }

MN = SET OF 2 ..100;

 

{ Тип множества }

VAR

{ Массивы данных: }

А : ТА;

 

{ А - целого типа }

В : ARRAY

[1 .. 20] OF REAL;

{ В - вещественного }

С : ARRAY

[1..10,1..20] OF REAL;

{ С - двумерный, веществ.}

D : ARRAY

[-10 .. 10] OF BOOLEAN;

{ D - логического }

E : ARRAY

[0 .. 30] OF CHAR;

{ E - символьного }

F : ARRAY [1 .. 15] OF STRING[30];

{ F - строковых данных}

G : ARRAY

[1 .. 20] OF MN;

{ G - множеств }

Работа с массивами

31

Массивы с переменными границами в Паскале использовать нельзя.

Над элементами массивов допускаются те же операции, что и над просты­ми переменными базового типа.

Операции над массивами в Паскале запрещены.

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

Ввод-вывод элементов массивов можно производить только поэлементно, т. е. с помощью циклов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]