Лекция №8. Тема: Язык программирования (продолжение)

Тема: Язык программирования (продолжение)

План:

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. Каковы признаки тождественности и условия совместимости типов?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: