Опубликован: 03.09.2010 | Уровень: для всех | Доступ: свободно
Лекция 1:

Основные понятия языка

Лекция 1: 12345 || Лекция 2 >

Типы данных

Данные, с которыми работает программа, хранятся в оперативной памяти. Компилятору необходимо точно знать, сколько места они занимают, как именно закодированы и какие действия с ними можно выполнять. Все это задается при описании данных с помощью типа. Тип данных однозначно определяет:

  • внутреннее представление данных, а следовательно и множество их возможных значений;
  • допустимые действия над данными (операции и функции).

Например, целые и вещественные числа, даже если они занимают одинаковый объем памяти, имеют совершенно разные диапазоны возможных значений; целые числа можно умножать друг на друга, а, например, символы — нельзя. Каждое выражение в программе имеет определенный тип. Компилятор использует информацию о типе при проверке допустимости описанных в программе действий.

Классификация типов

Рассмотрим классификацию типов в таблица 1.2.

Таблица 1.2. Типы данных Паскаля
Стандартные Определяемые программистом
Простые Составные
Логические
Целые
Вещественные Перечисляемый Массивы Файлы
Символьный Интервальный Строки Процедурные типы
Строковый Адресные Записи Объекты
Адресный Множества
Файловые

Стандартные типы не требуют предварительного определения. Для каждого типа существует ключевое слово, которое используется при описании переменных, констант и т. д. Если же тип данных определяет сам программист, он описывает его характеристики и дает ему имя, которое затем применяется точно так же, как имена стандартных типов. Описание собственного типа данных должно задавать всю информацию, необходимую для его использования: внутреннее представление и допустимые действия.

ПРИМЕЧАНИЕ Типы, выделенные в таблица 1.2 полужирным шрифтом, объединяются термином 'порядковые'. Этот термин рассмотрен далее в этой лекции.

Стандартные типы данных

Логические типы

Внутреннее представление. Основной логический тип данных Паскаля называется boolean. Величины этого типа занимают в памяти 1 байт и могут принимать всего два значения: true (истина) или false (ложь). Внутреннее представление значения false — 0 (нуль), значения true — 1.

Операции. К величинам логического типа применяются логические операции and, or, xor и not ( таблица 1.3). Для наглядности вместо значения false в таблице используется 0, а вместо true — 1.

Таблица 1.3. Логические операции
a b a and b a or b a xor b not a
0 0 0 0 0 1
0 1 0 1 1 1
1 0 0 1 1 0
1 1 1 1 0 0

Операция and называется ' логическое И ', или логическое умножение. Ее результат имеет значение true, только если оба операнда имеют значение true.

Результат операции or ( логическое ИЛИ, логическое сложение) имеет значение true, если хотя бы один из операндов имеет значение true. Например, false or true true, true or true true.

Операция xor — так называемое исключающее ИЛИ, или операция неравнозначности. Ее результат истинен, когда значения операндов не совпадают.

Логическое отрицание not является унарной операцией, то есть имеет один операнд, который и инвертирует. Например, not true даст в результате false.

Величины логического типа можно сравнивать между собой с помощью операций отношения, перечисленных в таблица 1.4. Результат этих операций имеет логический тип.

Таблица 1.4. Операции отношения
Операция Знак операции Операция Знак операции
Больше > Меньше или равно <=
Больше или равно >= Равно =
Меньше < Не равно <>
Целые типы

Внутреннее представление. Целые числа представляются в компьютере в двоичной системе счисления. В Паскале определены несколько целых типов данных, отличающиеся длиной и наличием знака: старший двоичный разряд либо воспринимается как знаковый, либо является обычным разрядом числа ( таблица 1.5). Внутреннее представление определяет диапазоны допустимых значений величин (от нулей до единиц во всех двоичных разрядах).

Таблица 1.5. Целые типы данных
Тип Название Размер Знак Диапазон значений
integer Целое 2 байта Есть –32 768 .. 32 767 (–215 .. 215–1)
shortint Короткое целое 1 байт Есть –128 .. 127 (–2 7 .. 27–1)
byte Байт 1 байт Нет 0 .. 255 (0 .. 28–1)
word Слово 2 байта Нет 0 .. 65 535 (0 .. 2 16–1)
longint Длинное целое 4 байта Есть –2 147 483 648 .. 2 147 483 647 (–2 31 .. 231–1)

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

Таблица 1.6. Арифметические операции для целых величин
Операция Знак операции Операция Знак операции
Сложение + Деление div
Вычитание Остаток от деления mod
Умножение *

К целым величинам можно также применять операции отношения, а также поразрядные операции and, or, xor и not. При выполнении этих операций каждая величина представляется как совокупность двоичных разрядов. Действие выполняется над каждой парой соответствующих разрядов операндов: первый разряд с первым, второй — со вторым, и т. д. Например, результатом операции 3 and 2 будет 2, поскольку двоичное представление числа 3 — 11, числа 2 — 10.

Для работы с целыми величинами предназначены также операции сдвига влево shl и вправо shr. Слева от знака операции указывается, с какой величиной будет выполняться операция, а справа — на какое число двоичных разрядов требуется сдвинуть величину. Например, результатом операции 12 shr 2 будет значение 3, а выполнив операцию 12 shl 1, то есть сдвинув это число влево на 1 разряд, получим 24. Освободившиеся при сдвиге влево разряды заполняются нулями, а при сдвиге вправо — знаковым разрядом.

Стандартные функции и процедуры.К целым величинам можно применять стандартные функции и процедуры, перечисленные в таблица 1.7 (в тригонометрических функциях угол задается в радианах).

Таблица 1.7. Стандартные функции и процедуры для целых величин
Имя Описание Результат Пояснения
Функции
abs Модуль Целый |x| записывается abs(x)
arctan Арктангенс угла Вещественный arctg x записывается arctan(x)
cos Косинус угла Вещественный cos x записывается cos(x)
exp Экспонента Вещественный e x записывается exp(x)
ln Натуральный логарифм Вещественный log ex записывается ln(x)
odd Проверка на четность Логический odd(3) даст в результате true
pred Предыдущее значение Целый pred(3) даст в результате 2
sin Синус угла Вещественный sin x записывается sin(x)
sqr Квадрат Целый x 2 записывается sqr(x)
sqrt Квадратный корень Вещественный \surd x записывается sqrt(x)
succ Следующее значение Целый succ(3) даст в результате 4
Процедуры
inc Инкремент
inc(x) — увеличить х на 1
inc(x, 3) — увеличить х на 3
dec Декремент
dec(x) — уменьшить х на 1
dec (x, 3)  — уменьшить х на 3
Лекция 1: 12345 || Лекция 2 >
София Шишова
София Шишова

Я завершила экзамен 90 баллов на 5. Сертификат не заказала. Сейчас пытаюсь найти как его заказать. у меня указано экзамен пройден баллы оценка видно, а чтоб заказать сертификат нигде не видно.

Юрий Макушин
Юрий Макушин
Россия, Москва, РЭА им. Плеханова, 2004