Ученика 11-А класса
ТИПЫ ДАННЫХ
Любые данные, т.е. константы, переменные, значения функций или выражения, в Турбо Паскале характеризуются своими типами. Тип определяет множество допустимых значений, которые может тот или иной объект, а также множество допустимых операций, которые применимы к нему. Кроме того, тип определяет формат внутреннего представления данных в памяти ПК.
Турбо Паскаль характеризуется разветвлённой структурой типов данных.
В Турбо Паскале предусмотрен механизм создания новых типов данных, благодаря чему общее количество типов, используемых в программе, может быть сколько угодно большим.
ПРОСТЫЕ ТИПЫ
К простым типам относятся порядковые и вещественные типы.
Порядковые типы отличаются тем, что каждый из них имеет конечное число возможных значений. Эти значения можно определённым образом упорядочить (отсюда – название типов) и, следовательно, с каждым из них можно сопоставить некоторое целое число – порядковый номер значения.
Вещественные типы тоже имеют конечное число значений, которое определяется форматом внутреннего представления вещественного числа. Однако количество возможных значений вещественных типов настолько велико, что сопоставить с каждым из них целое число (его номер) не представляется возможным.
К порядковым типам относятся целые, логический, символьный, перечисляемый и тип-диапазон.
Целые типы. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта
ЦЕЛЫЕ ТИПЫ | ||
НАЗВАНИЕ | Длина,байт | Диапазон значений |
Byte | 1 | 0…255 |
ShortInt | 1 | -128…+127 |
Word | 2 | 0…65535 |
Integer | 2 | -32768…+32767 |
LongInt | 4 | -2 147 483 648…+2 147 483 647 |
При использовании процедур и функций с целочисленными параметрами следует руководствоваться «вложенностью» типов, т.е. везде, где может использоваться Word, допускается использование Byte (но не наоборот), в LongInt “входит” Integer, который, в свою очередь, включает в себя ShortInt.
При дейстйствии с целыми чмслами тип результата будет соответствовать типу операндов, ф если операнды относятся к различным целым типам,- типу того операнда, который имеет максимальную мощность (максимальный диапазон значений). Возможное переполнение никак не контролируется, что может привести к недорозумениям.
Логический тип
ЛОГИЧЕСКИЕ ТИПЫ | |||
Название | Длина, Байт | OS | Значение |
BOOLEAN | 1 | Linux, DOS | False, True |
BYTEBOOL | 1 | Совместим с С | False, True |
WORDBOOL | 2 | Win | False, True |
LONGBOOL | 4 | Win | False, True |
. Значениями логического типа может быть одна из предварительно объявленных констант FALSE (ложь) или TRUE (истина).
Поскольку логический тип относится к порядковым типам, его можно использовать в операторе счётного типа.
Символьный тип. CHAR – занимает 1 байт. Значением символьного типа является множество всех символов ПК. Каждому символу присваивается целое число в диапозоне 0…255. Это число служит кодом внутреннего представления символа.
Для кодировки испоьзуется код ASCII (American Standart Code for Information Interchange – американский стандартный код для обмена информацией). Это 7-битный код, т.е. с его помощью можн озакодировать лишь 128 символов в диапозоне от 0 до 127. В то же время в 8-битном байте, отведенном для хранения символа в Турбо Паскале, можно закодировать в два раза больше символов в дапозоне от 0 до 255. Первая половина символов ПК с кодами 0…127 соответствует стандарту ASCII. Вторая половина символов с кодами 128ююю255 не ограничена жёсткими рамками стандарта и может менятся на ПК разных типов.
Символы с кодами 0…31 относятся к слжебным кодам. Если эти коды использовать в символьном тексте программы, они считаются пробелами.
Перечисляемый тип. Перечисляемый тип задаётся перечислением тех значений, которые он может получать. Каждое значение именуется некоторым идентификатором и рапологается в списке, обрамлённом круглыми скобками, напримерЖ
Type
Colors = (red, white, blue);
Применение перечисляемых типов делает программы нагляднее.
Соответствие между значениями перечисляемого типа и порядковыми номерами этих значений устанавливается порядком перечисления: первое значение списке получает порядковый номер 0, второе – 1 и т.д. максимальная мощность перечисляемого типа составляет 65536 значений, поэтому фактически перечисляемый тип задаёт некоторое подмножество целого типа WORD и может рассматриваться как компактное объявление сразу группы целочисленных констант со значениями 0,1 и т.д.
Использование перечисляемых типов повышает надёжность программы, благодаря возможности контроля тех значений, которые получают соответствующие переменные.
Тип-диапазон. Тип-диапазон есть подмножество своего базового типа, в качестве которого может выступать любой порядковый тип, кроме типа-диапазона.
Тип-диапазон задаётся границами своих значений внутри базового типа:
<мин.знач.>..<макс.знач.>
Здесь <мин.знач.> - минимальное значение типа-диапазона.
<макс.знач.> - максимальное его значение.
Type
Digit = ‘0’ ..’9’;
Dig2 = 48 .. 57;
1. два символа «..» рассматриваются как один символ, поэтому между ними недопустимы пробелы.
2. левая граница диапазона не должна превышать его правую границу.
Тип-диапазон наследует все свойства базового итпа, но с ограничениями, связанными с его меньшей мощностью.
В отличие от порядковых типов, значения которых всегда сопоставляются с рядом целых чисел и, следовательно, представляется в ПК абсолютно точно, значения вещественных типов определяют произвольное число лишь с некоторой конечной точностью, зависящей от внутреннего формата вещественного числа.
Длина, байт | Название | Количество значащих цифр | Диапазон десятичного порядка |
6 | Real | 11…12 | -39…+38 |
4 | Single | 7…8 | -45…+38 |
8 | Double | 15…16 | -324…+308 |
10 | Extended | 19…20 | -4951…+4932 |
8 | comp | 19…20 | -2*1063+1…+2*1063-1 |
СТРУКТУРИРОВАННЫЕ ТИПЫ
Любой из структурированных типов характеризуется множественностью образующих этот тип элементов, т.е. переменная или сонстанта структурированного типа всегда имеет несколько компонентов. Каждый компонент, в свою очередь, может принадлежать структурированному типу, что позволяет говорить о возможной вложености типов. В Турбо Паскале допускается произвольная глубина вложености типов, однако суммарная длина любого из них во внутреннем представлении не должна превышать 65520 байт.
МАССИВЫ
Массиывы в Турбо Паскале во многом схожи с аналогичными типами данных в других языках програмирования. Отличительная особенность массивов заключается в том, что все их компоненты суть данные одного типа (возможно структурированного). Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием порядкового номера.
Описание массива задаётся следующим образом:
<имя типа> = array [<сп.инд.типов>] of <тип>
Здесь <имя типа> - правильный индификатор;
Array, of – зарезирвированые слова (массив, из);
<спюиндютипов> - список из одного или нескольких индексных типов, разделённых запятыми; квадратные скобки, обрамляющие список, - требование синтаксиса;
<тип> - любой тип Турбо Паскаля.
В качестве индексных типов в Турбо Паскале можно использовать любые порядковые типы, кроме LongInt и типов-диапазонов с базовым типом LongInt.
Глубина вложенности структурированных типов вообще, а следовательно, и массивов – произвольная, поэтому количество элементов в списке индексов типов (размерность массива) не ограничено, однако суммарная длина внутреннего представления любого массива не может быть больше 65520 байт.
ЗАПИСИ
Запись – это структура данных, состоящая из фиксированного числа компонентов, называемыхполями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.