Общая структура типов данных. Простые типы в языке Паскаль
Вопросы для проверки знаний.
1. Какие символы могут входить в идентификаторы языка Паскаль и на какой позиции в записи имени допускается их использование?
2. Выделить среди предложенных записей правильно записанные идентификаторы языка Паскаль и неверные имена (у них указать, в чем заключается ошибка):
а) name№1; б) number_2; в) 1_const; г) const_1_2; д) var_1*; е) _ var_; ж) VAR1_; з) NA_0_.
3. Что означает комментарий в алгоритмических языках и как он оформляется в языке Паскаль?
4. В каких системах счисления в языке Паскаль можно записывать целые числа ?
5. Что такое строки в языке Паскаль?
При составлении алгоритмов решения расчетных задач необходимые данные представляют собой одиночные величины и их совокупности. Важнейшей характеристикой данных является их тип.
Принадлежность данных к определенному типу автоматически в соответствии с соглашениями самого алгоритмического языка задает для них следующие свойства:
- математическую форму представления соответствующих величин и их диапазон изменения;
- внутреннюю форму представления данных в ЭВМ;
- операции и функции, которые могут выполняться над величинами данного типа.
Каждая одиночная величина в алгоритмических языках занимает целое число байтов (совокупностей из 8 подряд стоящих двоичных разрядов - бит).
В общем случае в алгоритмических языках присвоение типов переменным (которое также называют декларацией переменных) может производиться:
- явно - при помощи полного описания, которое обычно помещают в начало программы, но в некоторых языках (например, в Visual Basic) описание может стоять в произвольном месте программы;
- неявно(косвенно) простым указанием имени переменной, у которой тип задается начальной ее буквой (Fortran), окончанием специального вида-суффиксом (Visual Basic) либо другими способами.
В языке Паскаль типы всех используемых величин задают обязательно явно в начале программы (в разделе описаний). Все переменные, используемые в программе, должны быть указаны (объявлены) в данном разделе с указанием их типа. Объявления типов величин в программе дают компилятору необходимую информацию о свойствах данных величин, в соответствии с которой он отводит им необходимое место в памяти, задает форму представления в ней и порядок выполнения операций.
Обязательное описание типа в Паскале приводит к некоторой избыточности в тексте программ. Однако, в то же время, оно позволяет избежать целый ряд коллизий, возникающих при различного рода случаях неявного описания.
Основными разновидностями типов в Паскале являются:
- простые (скалярные) типы, задающие одиночные величины;
- структурированные типы, задающие совокупности из величин одного или нескольких типов;
- указатели - переменные, которые содержат адреса других переменных или более сложных объектов.
Простой (скалярный)тип данных. Этой разновидности принадлежат следующие типы одиночных величин: 1)целые, 2)логические, 3)символьные, 4)перечисляемые, 5)интервальные, 6)вещественные.
По способу образования у одиночных величин выделяют стандартныетипы-1) целые, 2) логические, 3) символьные, 6) вещественные. Такие типы пользователь может выбирать только из заданных в языке вариантов. Помимо них есть типы,определяемые пользователем - 4) перечисляемые и 5) интервальные.
Также среди простых выделяют порядковые(1-5)и вещественные(6)типы. Порядковые величины характеризуются тем, что множества их значений ограничены и могут быть упорядочены, что позволяет использовать различные функции для установления и изменения порядка, организации различных выборок.
Стандартные типы языка Паскале даны в Таблице 3.1.
Таблица 3.1. Стандартные типы простых типов данных в Паскале
Идентификатор | Длина (байт) | Диапазон значений | Операции |
Целые типы | |||
integer | -32768..32767 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > | |
byte | 0..255 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > | |
word | 0..65535 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > | |
shortint | -128..127 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > | |
longint | -2147483648..2147483647 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > | |
Вещественные типы | |||
real | 2,9x10-39 - 1,7x1038 | +, -, /, *, >=, <=, =, <>, <, > | |
single | 1,5x10-45 - 3,4x1038 | +, -, /, *, >=, <=, =, <>, <, > | |
double | 5x10-324 - 1,7x10308 | +, -, /, *, >=, <=, =, <>, <, > | |
extended | 3,4x10-4932 - 1,1x104932 | +, -, /, *, >=, <=, =, <>, <, > | |
Логический тип | |||
boolean | true, false | Not, And, Or, Xor, >=, <=, =, <>, <, > | |
Символьный тип | |||
char | все символы кода ASCII | +, >=, <=, =, <>, <, > |
Переменные типа shortint, integer и longint являются целыми числами со знаком, переменные byte и word - целые числа без знака.
Структурированные типы имеют четыре разновидности: массивы, строки, множества, записи и файлы.
В виде схемы общая система типов в языке Pascal показана на рис.3.1.
Рис.3.1. Общая система типов в языке Pascal