Тип данных- это множество величин, объединенных совокупностью допустимых операций.
Каждый тип имеет свое диапазон значений и зарезервированное слово для своего описания.
В языке Turbo Pascal существует развитая система стандартных (описанных в модуле System) типов. Кроме того, пользователь может сам создать свой собственный тип, используя служебное слово Type. Формат записи нового типа, определенного пользователем следующий:
Type <имя типа>=<описание типа>;
Рассмотрим стандартные типы.
Типы данных Turbo Pascal.
Простые(скалярные) Структурированные:
Порядковые: Вещественные строковый- string
Целые регулярный- array
логический записи- record
символьный множества- set
перечисляемые файлы-file, text
интервальный
К скалярным типам данных относятся типы, которые не содержат составных частей.
Порядковые типы- типы данных, для которых всегда можно назвать число, непосредственно следующее за данным.
Целые типы- представляют собой совокупность данных, которые могут быть использованы в арифметических выражениях и занимают в памяти от 1 до 4 байт.
Идентификатор
типа
| Диапазон
| Требуемая
память
|
Byte
| [0..255]
|
|
Word
| [0..65535]
|
|
Shotint
| [-128..127]
|
|
Integer
| [-32768..31767]
|
|
longint
| [-2’147’483’648.. 2’147’483’647]
|
|
Над данными целого типа определены следующие арифметические операции:
+, -, *, div, mod. Результатом всегда является целое число.
Над данными целого типа всегда определены следующие операции отношения:
<, >, <=, >=, <>, =.
Char - символьный тип, представляет собой набор символов кодовой таблицы ASCII. Во внутреннем представлении он занимает 1 байт, множество значений этого типа фиксировано и упорядочено. Все символы считаются перенумерованными, от 0 до 255.
Константой символьного типа является один из допустимых символов, взятый в апострофы. Если апостроф сам является символом, то апостроф, являющийся значением константы, записывается дважды, например ‘7’ , ‘+’ , ‘F’ , ‘’’’ , ‘j’ , ‘?’ .
Над данными символьного типа можно производить операции сравнения. Тот символ больше, чей порядковый номер в ASCII больше.
Зам! В таблицы ASCII прописаны сначала управляющие символы, затем специальные, потом идут цифры, латинские заглавные, потом маленькие буквы, русские заглавные, русские маленькие буквы.
Пример. ‘A’<’a’
‘5’<’b’
5 <’b’-НЕДОПУСТИМО!
‘A’<’A’
часто, при работе с символьным типом, применяются следующие стандартные функции:
chr(x)- преобразует выражение типа byte в символ, соответствующий выражению по коду.
Chr(65)-‘A’
Chr(7)- писк
ord(ch)- возражает ASCII- код символа
ord(‘A’)=65
ord(‘A’)=128
pred(ch)- возвращает предыдущий ch символ
pred(‘5’)=’4’
pred(‘a’)=’Z’
pred(‘о’)=’н’
pred(‘9’)=8 НЕДОПУСТИМО!
succ(ch)- возвращает следующий за ch символ.
Boolean - логический тип, определяет диапазон логических значений, который содержит два элемента False (ложь) и True (истина). Во внутреннем представлении он занимает 1 байт. Применяется в операциях отношения и логический операциях. Над данными типа можно производить операции сравнения.
False<True
Перечисляемый тип - задается перечислением тех значений, которые он может получать. Существуют явно и анонимно описанные перечисляемые типы.
При явном описании типу дается имя, в разделе описании типов. Каждое значение именуется некоторым идентификатором и располагается в списке, обрамленном круглыми скобками, например:
Type gaz=(ge,h,o,n);
Metal=(fe, zn, li);
Var a,b,c: gaz;
D,I,g:metal;
Переменные a,b,c могут принимать только значения ge,h,o,n. Попутка присвоить любое другое значение вызовет ошибки.
Анонимно(без имени) описанный тип :
Var season:(winter, summer);
Идентификатор season- это имя переменной. Значения, которые может принимать данная переменная это winter, summer
Для переменных одного и того же перечисляемого типа определены операции отношения. Сравнение происходит по порядковым номерам в списке описания типов или переменных.
Например, winter< summer
Или
A:= ge;
B:=o;
A<B-true
Тип-диапазон(интервальный) - подмножество своего базового типа, в качестве которого может быть любой порядковый тип, кроме типа-диапазон. Тип- диапазон задается границами своих значений внутри базового типа
<минимальное значение> . .<максимальное значение>
При определении интервального типа нужно руководствоваться следующими правилами:
-".." рассматриваются как один символ, поэтому между точками пробелы недопустимы;
- левая граница не должна превышать правую границу.
Пример: Type month = 1 ..12;
lat = ’a’ .. ’z’;
var mo: month;
a,b:lat;
Переменные mo может принимать любые значения из диапазона 1..12, a,b из ’a’ .. ’z’. Выход из диапазона приведет к программному прерыванию.
Вещественный тип, строго говоря, имеет конечное число значений, которое определяется форматом внутреннего представления вещественного числа. Однако количество возможных значений вещественного числа настолько велико, что сопоставить с каждым из них целое число не представляется возможным . Во внутреннем представлении он занимает от 4 до 10 байт, диапазон возможных значений - от 1.5E-45 до1.1E4932, точность представления данных - 7..20 значащих цифр.