Скачать презентацию ТИПЫ ДАННЫХ ПРОСТЫЕ ТИПЫ 1 Скачать презентацию ТИПЫ ДАННЫХ ПРОСТЫЕ ТИПЫ 1

Типы данных.pptx

  • Количество слайдов: 27

ТИПЫ ДАННЫХ ТИПЫ ДАННЫХ

 • ПРОСТЫЕ ТИПЫ 1. ПОРЯДКОВЫЕ ТИПЫ 2. ВЕЩЕСТВЕННЫЕ ТИПЫ • СТРУКТУРИРОВАННЫЕ ТИПЫ 1. • ПРОСТЫЕ ТИПЫ 1. ПОРЯДКОВЫЕ ТИПЫ 2. ВЕЩЕСТВЕННЫЕ ТИПЫ • СТРУКТУРИРОВАННЫЕ ТИПЫ 1. МАССИВЫ 2. ЗАПИСИ 3. МНОЖЕСТВА • СТРОКИ • СОВМЕСТИМОСТЬ И ПРЕОБРАЗОВАНИЕ ТИПОВ

 • ЛЮБЫЕ ДАННЫЕ, Т. Е. КОНСТАНТЫ, ПЕРЕМЕННЫЕ, ЗНАЧЕНИЯ ФУНКЦИЙ ИЛИ ВЫРАЖЕНИЯ, В ТУРБО • ЛЮБЫЕ ДАННЫЕ, Т. Е. КОНСТАНТЫ, ПЕРЕМЕННЫЕ, ЗНАЧЕНИЯ ФУНКЦИЙ ИЛИ ВЫРАЖЕНИЯ, В ТУРБО ПАСКАЛЕ ХАРАКТЕРИЗУЮТСЯ СВОИМИ ТИПАМИ. ТИП ОПРЕДЕЛЯЕТ МНОЖЕСТВО ДОПУСТИМЫХ ЗНАЧЕНИЙ, КОТОРЫЕ МОЖЕТ ИМЕТЬ ТОТ ИЛИ ИНОЙ ОБЪЕКТ, А ТАКЖЕ МНОЖЕСТВО ДОПУСТИМЫХ ОПЕРАЦИЙ, КОТОРЫЕ ПРИМЕНИМЫ К НЕМУ. РОМЕ ТОГО, К ТИП ОПРЕДЕЛЯЕТ ТАКЖЕ И ФОРМАТ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ ДАННЫХ В ПАМЯТИ ПК.

ПРОСТЫЕ ТИПЫ • К ПРОСТЫМ ТИПАМ ОТНОСЯТСЯ ПОРЯДКОВЫЕ И ВЕЩЕСТВЕННЫЕ ТИПЫ. ПОРЯДКОВЫЕ ТИПЫ ОТЛИЧАЮТСЯ ПРОСТЫЕ ТИПЫ • К ПРОСТЫМ ТИПАМ ОТНОСЯТСЯ ПОРЯДКОВЫЕ И ВЕЩЕСТВЕННЫЕ ТИПЫ. ПОРЯДКОВЫЕ ТИПЫ ОТЛИЧАЮТСЯ ТЕМ, ЧТО КАЖДЫЙ ИЗ НИХ ИМЕЕТ КОНЕЧНОЕ ЧИСЛО ВОЗМОЖНЫХ ЗНАЧЕНИЙ. ЭТИ ЗНАЧЕНИЯ МОЖНО ОПРЕДЕЛЕННЫМ ОБРАЗОМ УПОРЯДОЧИТЬ (ОТСЮДА -НАЗВАНИЕ ТИПОВ) И, СЛЕДОВАТЕЛЬНО, С КАЖДЫМ ИЗ НИХ МОЖНО СОПОСТАВИТЬ НЕКОТОРОЕ ЦЕЛОЕ ЧИСЛО - ПОРЯДКОВЫЙ НОМЕР ЗНАЧЕНИЯ. • ВЕЩЕСТВЕННЫЕ ТИПЫ, СТРОГО ГОВОРЯ, ТОЖЕ ИМЕЮТ КОНЕЧНОЕ ЧИСЛО ЗНАЧЕНИЙ, КОТОРОЕ ОПРЕДЕЛЯЕТСЯ ФОРМАТОМ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ ВЕЩЕСТВЕННОГО ЧИСЛА. ОДНАКО КОЛИЧЕСТВО ВОЗМОЖНЫХ ЗНАЧЕНИЙ ВЕЩЕСТВЕННЫХ ТИПОВ НАСТОЛЬКО ВЕЛИКО, ЧТО СОПОСТАВИТЬ С КАЖДЫМ ИЗ НИХ ЦЕЛОЕ ЧИСЛО (ЕГО НОМЕР) НЕ ПРЕДСТАВЛЯЕТСЯ ВОЗМОЖНЫМ.

ПОРЯДКОВЫЕ ТИПЫ • К ПОРЯДКОВЫМ ТИПАМ ОТНОСЯТСЯ: ЦЕЛЫЕ, ЛОГИЧЕСКИЙ, СИМВОЛЬНЫЙ, ПЕРЕЧИСЛЯЕМЫЙ И ТИП-ДИАПАЗОН. К ПОРЯДКОВЫЕ ТИПЫ • К ПОРЯДКОВЫМ ТИПАМ ОТНОСЯТСЯ: ЦЕЛЫЕ, ЛОГИЧЕСКИЙ, СИМВОЛЬНЫЙ, ПЕРЕЧИСЛЯЕМЫЙ И ТИП-ДИАПАЗОН. К ЛЮБОМУ ИЗ НИХ ПРИМЕНИМА ФУНКЦИЯ ORD(X), КОТОРАЯ ВОЗВРАЩАЕТ ПОРЯДКОВЫЙ НОМЕР ЗНАЧЕНИЯ ВЫРАЖЕНИЯ X. ДЛЯ ЦЕЛЫХ ТИПОВ ФУНКЦИЯ ORD(X) ВОЗВРАЩАЕТ САМО ЗНАЧЕНИЕ X, Т. Е. ORD(X) = X ДЛЯ X, ПРИНАДЛЕЖАЩЕГО ЛЮБОМУ ШЕЛОМУ ТИПУ. ПРИМЕНЕНИЕ ORD(X) К ЛОГИЧЕСКОМУ, СИМВОЛЬНОМУ И ПЕРЕЧИСЛЯЕМОМУ ТИПАМ ДАЕТ ПОЛОЖИТЕЛЬНОЕ ЦЕЛОЕ ЧИСЛО В ДИАПАЗОНЕ ОТ 0 ДО 1 (ЛОГИЧЕСКИЙ ТИП), ОТ 0 ДО 155 (СИМВОЛЬНЫЙ), ОТ 0 ДО 65535 (ПЕРЕЧИСЛЯЕМЫЙ). ТИП-ДИАПАЗОН СОХРАНЯЕТ ВСЕ СВОЙСТВА БАЗОВОГО ПОРЯДКОВОГО ТИПА, ПОЭТОМУ РЕЗУЛЬТАТ ПРИМЕНЕНИЯ К НЕМУ ФУНКЦИИ ORD(X) ЗАВИСИТ ОТ СВОЙСТВ ЭТОГО ТИПА.

К ПОРЯДКОВЫМ ТИПАМ МОЖНО ТАКЖЕ ПРИМЕНЯТЬ ФУНКЦИИ: PRED (X) - ВОЗВРАЩАЕТ ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ ПОРЯДКОВОГО К ПОРЯДКОВЫМ ТИПАМ МОЖНО ТАКЖЕ ПРИМЕНЯТЬ ФУНКЦИИ: PRED (X) - ВОЗВРАЩАЕТ ПРЕДЫДУЩЕЕ ЗНАЧЕНИЕ ПОРЯДКОВОГО ТИПА (ЗНАЧЕНИЕ, КОТОРОЕ СООТВЕТСТВУЕТ ПОРЯДКОВОМУ НОМЕРУ ORD(X)- 1), Т. Е. ORD(PRED(X)) = ORD(X) - 1; SUCC (X) - ВОЗВРАЩАЕТ СЛЕДУЮЩЕЕ ЗНАЧЕНИЕ ПОРЯДКОВОГО ТИПА, КОТОРОЕ СООТВЕТСТВУЕТ ПОРЯДКОВОМУ НОМЕРУ ORD(X) +1, Т. Е. ORD(SUCC(X)) = ORD(X) + 1. НАПРИМЕР, ЕСЛИ В ПРОГРАММЕ ОПРЕДЕЛЕНА ПЕРЕМЕННАЯ VAR С : CHAR; BEGIN С : = '5' ; END. ТО ФУНКЦИЯ PRED(C) ВЕРНЕТ ЗНАЧЕНИЕ '4', А ФУНКЦИЯ SUCC(C) - ЗНАЧЕНИЕ '6'.

Стандартные процедуры и функции, применимые к целым типам Обращение Тип результата abs (x) x Стандартные процедуры и функции, применимые к целым типам Обращение Тип результата abs (x) x chr(b) Char Действие Возвращает модуль х Возвращает символ по его коду - Уменьшает значение vx на i, а при отсутствии i -на 1 inc(vx[, i] ) - Увеличивает значение vx на i, а при отсутствии i на 1 Hi(i) Byte Hi(w) To же Lo(i) " Возвращает младший байт аргумента Lo (w) " То же odd(l) Boolean dec (vx[, i] ) Random (w) Как у параметра sgr (x) X swap ( i ) Integer Возвращает старший байт аргумента То же Возвращает True, если аргумент - нечетное число Возвращает псевдослучайное число, равномерно распределенное в диапазоне 0. . . (w-l) Возвращает квадрат аргумента Меняет местами байты в слове

ЦЕЛЫЕ ТИПЫ. ДИАПАЗОН ВОЗМОЖНЫХ ЗНАЧЕНИЙ ЦЕЛЫХ ТИПОВ ЗАВИСИТ ОТ ИХ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ, КОТОРОЕ МОЖЕТ ЦЕЛЫЕ ТИПЫ. ДИАПАЗОН ВОЗМОЖНЫХ ЗНАЧЕНИЙ ЦЕЛЫХ ТИПОВ ЗАВИСИТ ОТ ИХ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ, КОТОРОЕ МОЖЕТ ЗАНИМАТЬ ОДИН, ДВА ИЛИ ЧЕТЫРЕ БАЙТА. В ТАБЛИЦЕ ПРИВОДИТСЯ НАЗВАНИЕ ЦЕЛЫХ ТИПОВ, ДЛИНА ИХ ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ В БАЙТАХ И ДИАПАЗОН ВОЗМОЖНЫХ ЗНАЧЕНИЙ. Целые типы Название Длина, байт Диапазон значений Byte 1 0. . . 255 Short. Int 1 -128. . . +127 Word 2 0. . . 65535 Integer 2 -32768. . . +32767 Long. Int 4 -2 147 483 648. . . +2 147 483 647

ВЕЩЕСТВЕННЫЕ ТИПЫ В ОТЛИЧИЕ ОТ ПОРЯДКОВЫХ ТИПОВ, ЗНАЧЕНИЯ КОТОРЫХ ВСЕГДА СОПОСТАВЛЯЮТСЯ С РЯДОМ ЦЕЛЫХ ВЕЩЕСТВЕННЫЕ ТИПЫ В ОТЛИЧИЕ ОТ ПОРЯДКОВЫХ ТИПОВ, ЗНАЧЕНИЯ КОТОРЫХ ВСЕГДА СОПОСТАВЛЯЮТСЯ С РЯДОМ ЦЕЛЫХ ЧИСЕЛ И, СЛЕДОВАТЕЛЬНО, ПРЕДСТАВЛЯЮТСЯ В ПК АБСОЛЮТНО ТОЧНО, ЗНАЧЕНИЯ ВЕЩЕСТВЕННЫХ ТИПОВ ОПРЕДЕЛЯЮТ ПРОИЗВОЛЬНОЕ ЧИСЛО ЛИШЬ С НЕКОТОРОЙ КОНЕЧНОЙ ТОЧНОСТЬЮ, ЗАВИСЯЩЕЙ ОТ ВНУТРЕННЕГО ФОРМАТА ВЕЩЕСТВЕННОГО ЧИСЛА. Диапазон десятичного порядка Длина, байт Название Количество значащих цифр 6 Real 11. . . 12 -39. . . +38 8 Double 15. . . 16 -324. . . +308 10 extended 19. . . 20 -4951. . . +4932 8 comp 19. . . 20 -2*1063+1. . . +2*63 -1

Стандартные математические функции Турбо Паскаля Обращение Тип параметра Тип результата abs (x) Real, Integer Стандартные математические функции Турбо Паскаля Обращение Тип параметра Тип результата abs (x) Real, Integer Тип аргумента Аrс. Таn (х) Real cos (х) To же То же ехр (х) " " Экспонента frас (х) " " Дробная часть числа int(x) " " Целая часть числа ln(x) " " Логарифм натуральный Pi - " п = 3. 141592653. . . " Псевдослучайное число, равномерно распределенное в диапазоне 0. . . [1] Псевдослучайное целое число, равномерно распределенное в диапазоне 0. . . (х-1) Random - Примечание Модуль аргумента Арктангенс ( значение в радианах) Косинус, угол в радианах Pandom(x) Integer Randomize - - Инициация генератора псевдослучайных чисел sin(x) Real Синус, угол в радианах sqr (x) To же То же Квадрат аргумента sqrt (x) " " Корень квадратный

СТРУКТУРИРОВАННЫЕ ТИПЫ • ЛЮБОЙ ИЗ СТРУКТУРИРОВАННЫХ ТИПОВ (А ВТУРБО ПАСКАЛЕ ИХ ЧЕТЫРЕ: МАССИВЫ, ЗАПИCИ, СТРУКТУРИРОВАННЫЕ ТИПЫ • ЛЮБОЙ ИЗ СТРУКТУРИРОВАННЫХ ТИПОВ (А ВТУРБО ПАСКАЛЕ ИХ ЧЕТЫРЕ: МАССИВЫ, ЗАПИCИ, МНОЖЕСТВА И ФАЙЛЫ) ХАРАКТЕРИЗУЕТСЯ МНОЖЕСТВЕННОСТЬЮ ОБРАЗУЮЩИХ ЭТОТ ТИП ЭЛЕМЕНТОВ, Т. Е. ПЕРЕМЕННАЯ ИЛИ КОНСТАНТА СТРУКТУРИРОВАННОГО ТИПА ВСЕГДА ИМЕЕТ НЕCКОЛЬКО КОМПОНЕНТОВ. КАЖДЫЙ КОМПОНЕНТ, В СВОЮ ОЧЕРЕДЬ, МОЖЕТ ПРИНАДЛЕЖАТЬ CТРУКТУРИРОВАННОМУ ТИПУ, ЧТО ПОЗВОЛЯЕТ ГОВОРИТЬ О ВОЗМОЖНОЙ ВЛОЖЕННОСТИ ТИПОВ. В ТУРБО ПАСКАЛЕ ДОПУСКАЕТСЯ ПРОИЗВОЛЬНАЯ ГЛУБИНА ВЛОЖЕННОСТИ ТИПОВ, ОДНАКО СУММАРНАЯ ДЛИНА ЛЮБОГО ИЗ НИХ ВО ВНУТРЕННЕМ ПРЕДСТАВЛЕНИИ НЕ ДОЛЖНА ПРЕВЫШАТЬ -5520 БАЙТ. • В ЦЕЛЯХ СОВМЕСТИМОСТИ СО СТАНДАРТНЫМ ПАСКАЛЕМ В ТУРБО ПАСКАЛЕ РАЗРЕШАЕТСЯ ПЕРЕД ОПИСАНИЕМ СТРУКТУРИРОВАННОГО ТИПА СТАВИТЬ ЗАРЕЗЕРВИРОВАННОЕ СЛОВО PACKED, ПРЕДПИСЫВАЮЩЕЕ КОМПИЛЯТОРУ, ПО ВОЗМОЖНОСТИ, ЭКОНОМИТЬ ПАМЯТЬ, ОТВОДИМУЮ ПОД ОБЪЕКТЫ СТРУКТУРИРОВАННОГО ТИПА; НО КОМПИЛЯТОР ФАКТИЧЕСКИ ИГНОРИРУЕТ ЭТО УКАЗАНИЕ: «УПАКОВКА» ДАННЫХ В УРБО ПАСКАЛЕ ОСУЩЕСТВЛЯЕТСЯ Т АВТОМАТИЧЕСКИ ВЕЗДЕ, ГДЕ ЭТО ВОЗМОЖНО.

МАССИВЫ • МАССИВЫ В ТУРБО ПАСКАЛЕ ВО МНОГОМ СХОЖИ С АНАЛОГИЧНЫМИ ТИПАМИ ДАННЫХ В МАССИВЫ • МАССИВЫ В ТУРБО ПАСКАЛЕ ВО МНОГОМ СХОЖИ С АНАЛОГИЧНЫМИ ТИПАМИ ДАННЫХ В ДРУГИХ ЯЗЫКАХ ПРОГРАММИРОВАНИЯ. ОТЛИЧИТЕЛЬНАЯ ОСОБЕННОСТЬ МАССИВОВ ЗАКЛЮЧАЕТСЯ В ТОМ, ЧТО ВСЕ ИХ КОМПОНЕНТЫ СУТЬ ДАННЫЕ ОДНОГО ТИПА (ВОЗМОЖНО, СТРУКТУРИРОВАННОГО). ЭТИ КОМПОНЕНТЫ МОЖНО ЛЕГКО УПОРЯДОЧИТЬ И ОБЕСПЕЧИТЬ ДОСТУП К ЛЮБОМУ ИЗ НИХ ПРОСТЫМ УКАЗАНИЕМ ЕГО ПОРЯДКОВОГО НОМЕРА, НАПРИМЕР:

TYPE DIGIT =ARRAY[0. . 9] OF HAR ; C MATRIX =ARRAY[ YTE] OF SINGLE; TYPE DIGIT =ARRAY[0. . 9] OF HAR ; C MATRIX =ARRAY[ YTE] OF SINGLE; B VAR M : MATRIX; D : DIGIT; I : INTEGER; BEGIN . . . . M[17] . . . . END. : = ORD(D[I-L])/10 ;

ОПИСАНИЕ ТИПА МАССИВА ЗАДАЕТСЯ СЛЕДУЮЩИМ ОБРАЗОМ: <ИМЯ ТИПА> =ARRAY [ <СП. ИНД. ТИПОВ> ] ОПИСАНИЕ ТИПА МАССИВА ЗАДАЕТСЯ СЛЕДУЮЩИМ ОБРАЗОМ: <ИМЯ ТИПА> =ARRAY [ <СП. ИНД. ТИПОВ> ] OF <ТИП > ЗДЕСЬ <ИМЯ ТИПА> - ПРАВИЛЬНЫЙ ИДЕНТИФИКАТОР ; ARRAY, OF - ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА (МАССИВ, ИЗ ); <СП. ТД. ТИПОВ> - СПИСОК ИЗ ОДНОГО ИЛИ НЕСКОЛЬКИХ ИНДЕКСНЫХ ТИПОВ, РАЗДЕЛЕННЫХ ЗАПЯТЫМИ; КВАДРАТНЫЕ СКОБКИ, ОБРАМЛЯЮЩИЕ СПИСОК, - ТРЕБОВАНИЕ СИНТАКСИСА ; <ТИП> - ЛЮБОЙ ТИП ТУРБО ПАСКАЛЯ. В КАЧЕСТВЕ ИНДЕКСНЫХ ТИПОВ В ТУРБО ПАСКАЛЕ МОЖНО ИСПОЛЬЗОВАТЬ ЛЮБЫЕ ПОРЯДКОВЫЕ ТИПЫ, КРОМЕ LONGINT И ТИПОВ-ДИАПАЗОНОВ С БАЗОВЫМ ТИПОМ LONGINT. ОПРЕДЕЛИТЬ ПЕРЕМЕННУЮ КАК МАССИВ МОЖНО И НЕПОСРЕДСТВЕННО ПРИ ОПИСАНИИ ЭТОЙ ПЕРЕМЕННОЙ, БЕЗ ПРЕДВАРИТЕЛЬНОГО ОПИСАНИЯ ТИПА МАССИВА, НАПРИМЕР : VAR А, B : ARRAY [1. . 10] OFEAL; R

Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов. Так Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов. Так как тип <тип>, идущий за словом OF, - любой тип Турбо Паскаля, то он может быть, в частности, и другим массивом, например: type mat = array [0. . 5] of array [-2. . 2] of array [Char] of Byte; Такую запись можно заменить более компактной: type mat = array [0. . 5, -2. . 2, Char] of Byte;

ГЛУБИНА ВЛОЖЕННОСТИ СТРУКТУРИРОВАННЫХ ТИПОВ ВООБЩЕ, А СЛЕДОВАТЕЛЬНО, И МАССИВОВ ПРОИЗВОЛЬНАЯ, ПОЭТОМУ КОЛИЧЕСТВО ЭЛЕМЕНТОВ В ГЛУБИНА ВЛОЖЕННОСТИ СТРУКТУРИРОВАННЫХ ТИПОВ ВООБЩЕ, А СЛЕДОВАТЕЛЬНО, И МАССИВОВ ПРОИЗВОЛЬНАЯ, ПОЭТОМУ КОЛИЧЕСТВО ЭЛЕМЕНТОВ В СПИСКЕ ИНДЕКСНЫХ ТИПОВ (РАЗМЕРНОСТЬ МАССИВА) НЕ ОГРАНИЧЕНО, ОДНАКО СУММАРНАЯ ДЛИНА ВНУТРЕННЕГО ПРЕДСТАВЛЕНИЯ ЛЮБОГО МАССИВА, КАК УЖЕ ГОВОРИЛОСЬ, НЕ МОЖЕТ БЫТЬ БОЛЬШЕ 65520 БАЙТ. ПАМЯТИ ПК ЭЛЕМЕНТЫ В МАССИВА СЛЕДУЮТ ДРУГ ЗА ДРУГОМ ТАК, ЧТО ПРИ ПЕРЕХОДЕ ОТ МЛАДШИХ АДРЕСОВ К СТАРШИМ НАИБОЛЕЕ БЫСТРО МЕНЯЕТСЯ САМЫЙ ПРАВЫЙ ИНДЕКС МАССИВА. ЕСЛИ, НАПРИМЕР, VAR А : ARRAY[1. . 2, 1. . 2] OF ; BYTE BEGIN A [1, 1]: =1; A [2, 1]: =2; A [L, A 2]: =3; [2, 2]: =4; END. ТО В ПАМЯТИ ПОСЛЕДОВАТЕЛЬНО ДРУГ ЗА ДРУГОМ БУДУТ РАСПОЛОЖЕНЫ БАЙТЫ СО ЗНАЧЕНИЯМИ 1, 3, 2, . ЭТО ОБСТОЯТЕЛЬСТВО МОЖЕТ ОКАЗАТЬСЯ ВАЖНЫМ ПРИ ИСПОЛЬЗОВАНИИ СТАНДАРТНОЙ ПРОЦЕДУРЫ КОПИРОВАНИЯ ПАМЯТИ MOVE. 4

В ТУРБО ПАСКАЛЕ МОЖНО ОДНИМ ОПЕРАТОРОМ ПРИСВАИВАНИЯ ПЕРЕДАТЬ ВСЕ ЭЛЕМЕНТЫ ОДНОГО МАССИВА ДРУГОМУ МАССИВУ В ТУРБО ПАСКАЛЕ МОЖНО ОДНИМ ОПЕРАТОРОМ ПРИСВАИВАНИЯ ПЕРЕДАТЬ ВСЕ ЭЛЕМЕНТЫ ОДНОГО МАССИВА ДРУГОМУ МАССИВУ ТОГО ЖЕ ТИПА, НАПРИМЕР : VAR А, B: ARRAY [1. . 5] OF INGLE; S BEGIN . . . A : = B ; . . . END. ПОСЛЕ ЭТОГО ПРИСВАИВАНИЯ ВСЕ ПЯТЬ ЭЛЕМЕНТОВ МАССИВАА ПОЛУЧАТ ТЕ ЖЕ ЗНАЧЕНИЯ, ЧТО И В МАССИВЕ ОПЕРАЦИИ ОТНОШЕНИЯ. НЕЛЬЗЯ, НАПРИМЕР, ЗАПИСАТЬ IF A = B THEN. . . СРАВНИТЬ ДВА МАССИВА МОЖНО ПОЭЛЕМЕНТНО, НАПРИМЕР : VAR A, B: ARRAY [1. . 5] OF INGLE; S EQ: BOOLEAN; I: BYTE; BEGIN . . . EQ : =TRUE; FOR I : = 1 TO 5 DO IF A[I] EQ <> B[ITHEN ] : =FALSE; IF EQ THEN . . . END. В. ОДНАКО НАД МАССИВАМИ НЕ ОПРЕДЕЛЕНЫ

ЗАПИСИ • ЗАПИСЬ - ЭТО СТРУКТУРА ДАННЫХ, СОСТОЯЩАЯ ИЗ ФИКСИРОВАННОГО ЧИСЛА КОМПОНЕНТОВ, НАЗЫВАЕМЫХ ПОЛЯМИ ЗАПИСИ • ЗАПИСЬ - ЭТО СТРУКТУРА ДАННЫХ, СОСТОЯЩАЯ ИЗ ФИКСИРОВАННОГО ЧИСЛА КОМПОНЕНТОВ, НАЗЫВАЕМЫХ ПОЛЯМИ ЗАПИСИ. В ОТЛИЧИЕ ОТ МАССИВА, КОМПОНЕНТЫ (ПОЛЯ) ЗАПИСИ МОГУТ БЫТЬ РАЗЛИЧНОГО ТИПА. ТОБЫ МОЖНО БЫЛО Ч ССЫЛАТЬСЯ НА ТОТ ИЛИ ИНОЙ КОМПОНЕНТ ЗАПИСИ, ПОЛЯ ИМЕНУЮТСЯ.

СТРУКТУРА ОБЪЯВЛЕНИЯ ТИПА ЗАПИСИ ТАКОВА: <ИМЯ ТИПА> = RECORD <СП. ПОЛЕЙ> END ЗДЕСЬ <ИМЯ СТРУКТУРА ОБЪЯВЛЕНИЯ ТИПА ЗАПИСИ ТАКОВА: <ИМЯ ТИПА> = RECORD <СП. ПОЛЕЙ> END ЗДЕСЬ <ИМЯ ТИПА> - ПРАВИЛЬНЫЙ ИДЕНТИФИКАТОР; RECORD, END - ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА (ЗАПИСЬ, КОНЕЦ); <СП. ПОЛЕЙ> СПИСОК ПОЛЕЙ; ПРЕДСТАВЛЯЕТ СОБОЙ ПОСЛЕДОВАТЕЛЬНОСТЬ РАЗДЕЛОВ ЗАПИСИ, МЕЖДУ КОТОРЫМИ СТАВИТСЯ ТОЧКА С ЗАПЯТОЙ.

КАЖДЫЙ РАЗДЕЛ ЗАПИСИ СОСТОИТ ИЗ ОДНОГО ИЛИ НЕСКОЛЬКИХ ИДЕНТИФИКАТОРОВ ПОЛЕЙ, ОТДЕЛЯЕМЫХ ДРУГ ОТ ДРУГА КАЖДЫЙ РАЗДЕЛ ЗАПИСИ СОСТОИТ ИЗ ОДНОГО ИЛИ НЕСКОЛЬКИХ ИДЕНТИФИКАТОРОВ ПОЛЕЙ, ОТДЕЛЯЕМЫХ ДРУГ ОТ ДРУГА ЗАПЯТЫМИ. ЗА ИДЕНТИФИКАТОРОМ (ИДЕНТИФИКАТОРАМИ) СТАВИТСЯ ДВОЕТОЧИЕ И ОПИСАНИЕ ТИПА ПОЛЯ (ПОЛЕЙ), НАПРИМЕР: TYPE BIRTHDAY = RECORD DAY, MONTH YEAR : BYTE; : WORD END; VAR A, B : BIRTHDAY; . . . . В ЭТОМ ПРИМЕРЕ ТИП BIRTHDAY (ДЕНЬ РОЖДЕНИЯ) ЕСТЬ ЗАПИСЬ С ПОЛЯМИ DAY, MONTH И YEAR (ДЕНЬ, МЕСЯЦ И ГОД); ПЕРЕМЕННЫЕ А И В СОДЕРЖАТ ЗАПИСИ ТИПА BIRTHDAY.

КАК И В МАССИВЕ, ЗНАЧЕНИЯ ПЕРЕМЕННЫХ ТИПА ЗАПИСИ МОЖНО ПРИСВАИВАТЬ ДРУГИМ ПЕРЕМЕННЫМ ТОГО ЖЕ КАК И В МАССИВЕ, ЗНАЧЕНИЯ ПЕРЕМЕННЫХ ТИПА ЗАПИСИ МОЖНО ПРИСВАИВАТЬ ДРУГИМ ПЕРЕМЕННЫМ ТОГО ЖЕ ТИПА, НАПРИМЕР А : = B ; К КАЖДОМУ ИЗ КОМПОНЕНТОВ ЗАПИСИ МОЖНО ПОЛУЧИТЬ ДОСТУП, ЕСЛИ ИСПОЛЬЗОВАТЬ СОСТАВНОЕ ИМЯ, Т. Е. УКАЗАТЬ ИМЯ ПЕРЕМЕННОЙ, ЗАТЕМ ТОЧКУ И ИМЯ ПОЛЯ : А. DAY : = 27; B. YEAR : = 1939 ; ДЛЯ ВЛОЖЕННЫХ ПОЛЕЙ ПРИХОДИТСЯ ПРОДОЛЖАТЬ УТОЧНЕНИЯ : TYPE BIRTHDAY = RECORD DAY, MONTH: BYTE; YEAR : WORD END; VAR С : RECORD NAME BD : STRING; : BIRTHDAY END; BEGIN . . . IF C. BD. YEAR END. = 1939 THEN. . .

МНОЖЕСТВА • МНОЖЕСТВА - ЭТО НАБОРЫ ОДНОТИПНЫХ ЛОГИЧЕСКИ СВЯЗАННЫХ ДРУГ С ДРУГОМ ОБЪЕКТОВ. ХАРАКТЕР МНОЖЕСТВА • МНОЖЕСТВА - ЭТО НАБОРЫ ОДНОТИПНЫХ ЛОГИЧЕСКИ СВЯЗАННЫХ ДРУГ С ДРУГОМ ОБЪЕКТОВ. ХАРАКТЕР СВЯЗЕЙ МЕЖДУ ОБЪЕКТАМИ ЛИШЬ ПОДРАЗУМЕВАЕТСЯ ПРОГРАММИСТОМ И НИКАК НЕ КОНТРОЛИРУЕТСЯ ТУРБО ПАСКАЛЕМ. КОЛИЧЕСТВО ЭЛЕМЕНТОВ, ВХОДЯЩИХ В МНОЖЕСТВО, МОЖЕТ МЕНЯТЬСЯ В ПРЕДЕЛАХ ОТ 0 ДО 256 (МНОЖЕСТВО, НЕ СОДЕРЖАЩЕЕ ЭЛЕМЕНТОВ, НАЗЫВАЕТСЯ ПУСТЫМ). ИМЕННО НЕПОСТОЯНСТВОМ КОЛИЧЕСТВА СВОИХ ЭЛЕМЕНТОВ МНОЖЕСТВА ОТЛИЧАЮТСЯ ОТ МАССИВОВ И ЗАПИСЕЙ. • ДВА МНОЖЕСТВА СЧИТАЮТСЯ ЭКВИВАЛЕНТНЫМИ ТОГДА И ТОЛЬКО ТОГДА, КОГДА ВСЕ ИХ ЭЛЕМЕНТЫ ОДИНАКОВЫ, ПРИЧЕМ ПОРЯДОК СЛЕДОВАНИЯ ЭЛЕМЕНТОВ В МНОЖЕСТВЕ БЕЗРАЗЛИЧЕН. ЕСЛИ ВСЕ ЭЛЕМЕНТЫ ОДНОГО МНОЖЕСТВА ВХОДЯТ ТАКЖЕ И В ДРУГОЕ, ГОВОРЯТ О ВКЛЮЧЕНИИ ПЕРВОГО МНОЖЕСТВА ВО ВТОРОЕ. ПУСТОЕ МНОЖЕСТВО ВКЛЮЧАЕТСЯ В ЛЮБОЕ ДРУГОЕ.

ПРИМЕР ОПРЕДЕЛЕНИЯ И ЗАДАНИЯ МНОЖЕСТВ : TYPE DIGITCHAR= SET OF DIGIT '0'. . '9 ПРИМЕР ОПРЕДЕЛЕНИЯ И ЗАДАНИЯ МНОЖЕСТВ : TYPE DIGITCHAR= SET OF DIGIT '0'. . '9 '; = SET OF 0. . 9; VAR SL, S 2, S 3 : DIGIT HAR; C S 4, S 5, S 6 : DIGIT ; BEGIN . . . S 1: =['1', '2', '3 ']; S 2: =['3', '2', '1 ']; S 3: =['2', '3 ']; S 4: =[0. . 3, 6 ]; S 5: =[4, 5 ]; S 6: =[3. . 9 ]; . . . END. В ЭТОМ ПРИМЕРЕ МНОЖЕСТВА S 1 И S 2 ЭКВИВАЛЕНТНЫ, А МНОЖЕСТВО S 3 ВКЛЮЧЕНО В S 2 , НО НЕ ЭКВИВАЛЕНТНО ЕМУ ОПИСАНИЕ ТИПА МНОЖЕСТВА ИМЕЕТ ВИД : <ИМЯ ТИПА> = SET OF <БАЗ. ТИП > ЗДЕСЬ <ИМЯ ТИПА> - ПРАВИЛЬНЫЙ ИДЕНТИФИКАТОР ; SET, OF - ЗАРЕЗЕРВИРОВАННЫЕ СЛОВА (МНОЖЕСТВО, ИЗ ); <БАЗ. ТИП> - БАЗОВЫЙ ТИП ЭЛЕМЕНТОВ МНОЖЕСТВА, В КАЧЕСТВЕ КОТОРОГО ИСПОЛЬЗОВАТЬСЯ ЛЮБОЙ ПОРЯДКОВЫЙ ТИП, КРОМЕWORD, INTEGER, LONGINT. МОЖЕТ .

СТРОКИ • ТИП STRING (СТРОКА) В ТУРБО ПАСКАЛЕ ШИРОКО ИСПОЛЬЗУЕТСЯ ДЛЯ ОБРАБОТКИ ТЕКСТОВ. ОН СТРОКИ • ТИП STRING (СТРОКА) В ТУРБО ПАСКАЛЕ ШИРОКО ИСПОЛЬЗУЕТСЯ ДЛЯ ОБРАБОТКИ ТЕКСТОВ. ОН ВО МНОГОМ ПОХОЖ НА ОДНОМЕРНЫЙ МАССИВ СИМВОЛОВARRAY[O. . N] OF CHAR, ОДНАКО, В ОТЛИЧИЕ ОТ ПОСЛЕДНЕГО, КОЛИЧЕСТВО СИМВОЛОВ В СТРОКЕ-ПЕРЕМЕННОЙ МОЖЕТ МЕНЯТЬСЯ ОТ 0 ДО N, ГДЕ N - МАКСИМАЛЬНОЕ КОЛИЧЕСТВО СИМВОЛОВ В СТРОКЕ. ЗНАЧЕНИЕ N ОПРЕДЕЛЯЕТСЯ ОБЪЯВЛЕНИЕМ ТИПА STRING [N] И МОЖЕТ БЫТЬ ЛЮБОЙ КОНСТАНТОЙ ПОРЯДКОВОГО ТИПА, НО НЕ БОЛЬШЕ 255. УРБО ПАСКАЛЬ РАЗРЕШАЕТ НЕ УКАЗЫВАТЬ N, В ЭТОМ СЛУЧАЕ ДЛИНА СТРОКИ Т ПРИНИМАЕТСЯ МАКСИМАЛЬНО ВОЗМОЖНОЙ, А ИМЕННОN=255. СТРОКА В ТУРБО ПАСКАЛЕ ТРАКТУЕТСЯ КАК ЦЕПОЧКА СИМВОЛОВ. К ЛЮБОМУ СИМВОЛУ В СТРОКЕ МОЖНО ОБРАТИТЬСЯ ТОЧНО ТАК ЖЕ, КАК К ЭЛЕМЕНТУ ОДНОМЕРНОГО МАССИВА ARRAY [0. . N] OF CHAR, НАПРИМЕР: VAR ST : STRING; BEGIN . . . IF ST[5] END. =A' THEN. . . '

СОВМЕСТИМОСТЬ И ПРЕОБРАЗОВАНИЕ ТИПОВ • ТУРБО ПАСКАЛЬ - ЭТО ТИПИЗИРОВАННЫЙ ЯЗЫК. ОН ПОСТРОЕН НА СОВМЕСТИМОСТЬ И ПРЕОБРАЗОВАНИЕ ТИПОВ • ТУРБО ПАСКАЛЬ - ЭТО ТИПИЗИРОВАННЫЙ ЯЗЫК. ОН ПОСТРОЕН НА ОСНОВЕ СТРОГОГО СОБЛЮДЕНИЯ КОНЦЕПЦИИ ТИПОВ, В СООТВЕТСТВИИ С КОТОРОЙ ВСЕ ПРИМЕНЯЕМЫЕ В ЯЗЫКЕ ОПЕРАЦИИ ОПРЕДЕЛЕНЫ ТОЛЬКО НАД ОПЕРАНДАМИ СОВМЕСТИМЫХ ТИПОВ. РИ П ОБСУЖДЕНИИ ОПЕРАЦИЙ НАД ВЕЩЕСТВЕННЫМИ ДАННЫМИ МЫ УЖЕ ЗАТРАГИВАЛИ ПРОБЛЕМУ СОВМЕСТИМОСТИ ВЕЩЕСТВЕННЫХ И ЦЕЛЫХ ТИПОВ. АНАЛОГИЧНЫЕ ПРОБЛЕМЫ ВОЗНИКАЮТ ПРИ ОПЕРАЦИЯХ НАД СТРОКАМИ РАЗНОЙ ДЛИНЫ, СТРОКАМИ И СИМВОЛАМИ И Т. Д. НИЖЕ ПРИВОДИТСЯ БОЛЕЕ ПОЛНОЕ ОПРЕДЕЛЕНИЕ СОВМЕСТИМОСТИ ТИПОВ.

 • ДВА ТИПА СЧИТАЮТСЯ СОВМЕСТИМЫМИ, ЕСЛИ: • • • ОБА ОНИ ЕСТЬ ОДИН • ДВА ТИПА СЧИТАЮТСЯ СОВМЕСТИМЫМИ, ЕСЛИ: • • • ОБА ОНИ ЕСТЬ ОДИН И ТОТ ЖЕ ТИП; • ОБА ЯВЛЯЮТСЯ УПАКОВАННЫМИ СТРОКАМИ (ОПРЕДЕЛЕНЫ С ПРЕДШЕСТВУЮЩИМ СЛОВОМ PACKED) ОДИНАКОВОЙ МАКСИМАЛЬНОЙ ДЛИНЫ; • • • ОДИН ТИП ЕСТЬ ТИП-СТРОКА, А ДРУГОЙ • ОБА ЕСТЬ ПРОЦЕДУРНЫЕ ТИПЫ С ОДИНАКОВЫМИ ТИПОМ РЕЗУЛЬТАТА (ДЛЯ ТИПА-ФУНКЦИИ), КОЛИЧЕСТВОМ ПАРАМЕТРОВ И ТИПОМ ВЗАИМНО СООТВЕТСТВУЮЩИХ ПАРАМЕТРОВ. ОБА ВЕЩЕСТВЕННЫЕ; ОБА ЦЕЛЫЕ; ОДИН ТИП ЕСТЬ ТИП-ДИАПАЗОН ВТОРОГО ТИПА; ОБА ЯВЛЯЮТСЯ ТИПАМИ-ДИАПАЗОНАМИ ОДНОГО И ТОГО ЖЕ БАЗОВОГО ТИПА; ОБА ЯВЛЯЮТСЯ МНОЖЕСТВАМИ, СОСТАВЛЕННЫМИ ИЗ ЭЛЕМЕНТОВ ОДНОГО И ТОГО ЖЕ БАЗОВОГО ТИПА; - ТИП-СТРОКА, УПАКОВАННАЯ СТРОКА ИЛИ СИМВОЛ; ОДИН ТИП ЕСТЬ ЛЮБОЙ УКАЗАТЕЛЬ, А ДРУГОЙ - НЕТИПИЗИРОВАННЫЙ УКАЗАТЕЛЬ; ОДИН ТИП ЕСТЬ УКАЗАТЕЛЬ НА ОБЪЕКТ, А ДРУГОЙ ОБЪЕКТ; - УКАЗАТЕЛЬ НА РОДСТВЕННЫЙ ЕМУ

http: //pascal. dnovo. ru/index. html http: //pascal. dnovo. ru/index. html