Тема: Язык программирования (продолжение)
План:
1. Типы данных
Что определяет тип данных?
Данные, с которыми работает программа, хранятся в оперативной памяти. Естественно, что необходимо точно знать, сколько места они занимают, как именно закодированы и какие действия с ними можно выполнять. Все это задается при описании данных с помощью типа. Тип данных однозначно определяет:
· внутреннее представление данных, а следовательно и диапазон их возможных значений;
· допустимые действия над данными (операции и функции).
Например, целые и вещественные числа, даже если они занимают одинаковый объем памяти, имеют совершенно разный диапазон возможных значений; целые числа можно умножать друг на друга, а, к примеру, символы - нельзя.
Каждое выражение в программе имеет определенный тип.
Классификация типов
Стандартные типы не требуют предварительного определения. Для каждого типа существует ключевое слово, которое используется при описании переменных, констант и т. д. Если же программист определяет собственный тип данных, он описывает его характеристики и сам дает ему имя, которое затем применяется точно так же, как имена стандартных типов.
|
|
Типы, выделенные в таблице подчеркиванием, объединяются термином "порядковые" (подробнее>>).
Стандартные типы данных
Логические типы
Внутреннее представление
Основной логический тип данных Паскаля называется boolean. Величины этого типа занимают в памяти 1 байт и могут принимать всего два значения: true (истина) или false (ложь). Внутреннее представление значения false - 0 (нуль), значения true - 1.
Операции
К величинам логического типа применяются логические операции and, or, xor и not. Они описаны ниже. Для наглядности вместо значения false используется 0, а вместо true - 1.
Операция and - "логическое И", логическое умножение. Операция or - "логическое ИЛИ", логическое сложение. Операция xor- так называемое исключающее ИЛИ, или операция неравнозначности. Логическое отрицание not является унарной операцией.
Кроме этого, величины логического типа можно сравнивать между собой с помощью операций отношения, перечисленных в таблице:
Результат этих операций имеет логический тип.
Целые типы
Внутреннее представление
Целые числа представляются в компьютере в двоичной системе счисления. В Паскале определено несколько целых типов данных, отличающихся длиной и наличием знака:
Операции
С целыми величинами можно выполнять арифметические операции, перечисленные ниже. Результат их выполнения всегда целый (при делении дробная часть отбрасывается).
К целым величинам можно также применять операции отношения, перечисленные в разделе "Логические типы" (подробнее>>). Результат этих операций имеет логический тип.
|
|
Кроме этого, к целым величинам можно применять поразрядные операции and, or, xor и not. При выполнении этих операций каждая величина представляется как совокупность двоичных разрядов. Действие выполняется над каждой парой соответствующих разрядов операндов. Например, результатом операции 3 and 2 будет 2, поскольку двоичное представление числа 3 - 11, числа 2 - 10.
Для работы с целыми величинами предназначены также и операции сдвига влево shl и вправо shr. Слева от знака операции указывается, с какой величиной будет выполняться операция, а справа - на какое число двоичных разрядов требуется сдвинуть величину. Например, результатом операции 12 shr 2 будет значение 3, поскольку двоичное представление числа 12 - 1100.
Стандартные функции и процедуры
К целым величинам можно применять стандартные функции и процедуры, перечисленные ниже.
Вещественные типы
Внутреннее представление
Вещественные типы данных хранятся в памяти компьютера иначе, чем целые. Внутреннее представление вещественного числа состоит из двух частей - мантиссы и порядка, и каждая часть имеет знак. Например, число 0,087 представляется в виде 0,87*10-1, и в памяти хранится мантисса 87 и порядок -1 (для наглядности мы пренебрегли тем, что данные на самом деле представляются в двоичной системе счисления и несколько сложнее).
Существует несколько вещественных типов, различающихся точностью и диапазоном представления данных. Точность числа определяется длиной мантиссы, а диапазон - длиной порядка.
Операции
С вещественными величинами можно выполнять арифметические операции, перечисленные в таблице. Результат их выполнения - вещественный.
В общем случае при выполнении любой операции операнды должны быть одного и того же типа, но целые и вещественные величины смешивать разрешается.
К вещественным величинам можно применять стандартные функции, перечисленные ниже:
Символьный тип
Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт. К символам можно применять операции отношения (<, <=, >,>=, =, <>), при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше.
Стандартных функций для работы с символами тоже немного:
Порядковые типы
В группу порядковых объединены целые, символьный, логический, перечисляемый и интервальный типы. Сделано это потому, что они обладают следующими общими чертами:
· все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;
· к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;
· к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;
· к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.
Контрольные вопросы по теме:
1. Для чего используется указание типа данных величины?
2. Какие типы данных относят к скалярным типам данных?
3. Охарактеризуйте целочисленные типы данных: какие они могут принимать значения, в каких операциях могут принимать участие, сколько места занимают в памяти.
4. Какие типы отношений определены для данных целого типа? Какие стандартные функции определены для целых чисел?
5. Чем отличаются вещественные числа от целых?
6. Какие функции преобразуют вещественный аргумент в целое число? Чем они отличаются?
|
|
7. Охарактеризуйте символьный тип данных.
8. Где применяется булевский тип данных, какие он принимает значения, сколько места требуется для его размещения в памяти?
9. Что такое пользовательские типы данных, чем они отличаются от стандартных типов данных? Приведите примеры данных перечисляемого и интервального типов.
10. Что такое структурированные типы данных?
11. Почему от программиста требуется знание и правильное применение понятия тождественности и совместимости типов величин?
12. Каковы признаки тождественности и условия совместимости типов?