Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы по информатике.doc
Скачиваний:
465
Добавлен:
17.03.2015
Размер:
3.59 Mб
Скачать

31. Понятие типа данных в Турбо Паскаль

Для обработки ЭВМ данные представляются в виде величин и их совокупностей. С понятием величины связаны такая важная характеристика, как ее тип. Тип определяет:

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

  • внутреннюю форму представления данных в ЭВМ;

  • операции и функции, которые могут выполняться над величинами, принадлежащими к данному типу.

В языке Паскаль тип величины задают заранее. Все переменные, используемые в программе, должны быть объявлены в разделе описания с указанием их типа. Обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня. Иерархия типов в языке Паскаль такая:

  • Простые

    • Порядковые

      • Целые

      • Логические

      • Символьные

      • Перечисляемые

      • Интервальные

    • Вещественные

  • Структуированные

    • Массивы

    • Строки

    • Множества

    • Записи

    • Файлы

  • Указатели

  назадсодержаниевперед^

Простые типы данных

В таблице приведены простые типы данных Турбо Паскаль, объем памяти, необходимый для хранения одной переменной указанного типа, множество допустимых значений и применимые операции.

Идентификатор

Длина (байт)

Диапазон значений

Операции

^ Целые типы

integer

2

-32768..32767

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

byte

1

0..255

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

word

2

0..65535

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

shortint

1

-128..127

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

longint

4

-2147483648..2147483647

+, -, /, *, Div, Mod, >=, <=, =, <>, <, >

^ Вещественные типы

real

6

2,9x10-39- 1,7x1038

+, -, /, *, >=, <=, =, <>, <, >

single

4

1,5x10-45- 3,4x1038

+, -, /, *, >=, <=, =, <>, <, >

double

8

5x10-324- 1,7x10308

+, -, /, *, >=, <=, =, <>, <, >

extended

10

3,4x10-4932- 1,1x104932

+, -, /, *, >=, <=, =, <>, <, >

^ Логический тип

boolean

1

true, false

Not, And, Or, Xor, >=, <=, =, <>, <, >

^ Символьный тип

char

1

все символы кода ASCII

+, >=, <=, =, <>, <, >

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

  • все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество;

  • к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе;

  • к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно;

  • к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.

В языке Паскаль введены понятия эквивалентности и совместимости типов. Два типа Т1 и Т2 являются эквивалентными (идентичными), если выполняется одно из двух условий:

  • Т1 и Т2 представляют собой одно и то же имя типа;

  • тип Т2 описан с использованием типа Т1 с помощью равенства или последовательности равенств. Например:

  • type

  • T1 = Integer;

  • T2 = T1;

  • T3 = T2;

Менее строгие ограничения накладываются на совместимость типов. Так, типы являются совместимыми, если:

  • они эквивалентны;

  • являются оба либо целыми, либо действительными;

  • один тип - интервальный, другой - его базовый;

  • оба интервальные с общим базовым;

  • один тип - строковый, другой - символьный.

В Турбо Паскаль ограничения на совместимость типов можно обойти с помощью приведения типов. Приведение типов позволяет рассматривать одну и ту же величину в памяти ЭВМ как принадлежащую разным типам. Для этого используется конструкция Имя_Типа(переменная или значение) Напрмер, Integer('Z') представляет собой значение кода символа 'Z' в двухбайтном представлении целого числа, а Byte(534) даст значение 22, поскольку целое число 534 имеет тип Word и занимает два байта, а тип Byte занимает один байт, и в процессе приведения старший байт будет отброшен. 7.Вопрос. ДАННЫЕ И ИНФОРМАЦИЯ. КОНЦЕПЦИЯ ДАННЫХ. ПОНЯТИЕ СТРУКТУР ДАННЫХ. ИЕРАРХИИ СТРУКТУР ДАННЫХ Под данными будем понимать представление фактов, идей, знании в формализованном виде, пригодном для обработки в некотором процессе. Информация — смысл, который приписывается данным посредством принятых соглашений. Обрабатываемые в программах данные фигурируют в качестве значений различных програм мных объектов. Данные, которые зафиксированы и не могут быть изменены в процессе выполнения программы, являются значениями программных объектов, именуемых константами, остальные данные — значениями объектов, называемых переменными. Данные могут объединяться в структуры. Структуру можно рассматривать как нечто целое и как объединение образующих ее элементов. В языке содержится широкий набор классов структур, в рамках которых можно создать новые структуры любой сложности. В отношении структур данных существуют следующие особенности 1) всякое данное считается входящим в ту или иную структуру, самостоятельное данное рассматривается как простейшая, или тривиальная, структура; 2) элементом, или компонентой, структуры данных может быть не только тривиальная, но и нетривиальная структура, т. e. структуры данных обладают иерархическим характером; 3) в некоторые классы структур могут объединяться данные разных типов. Как следует из пп. 1) — 3), понятие «значения» трактуется достаточно широко — это вся совокупность значений, образующих структуру. Понятие «тип значения» также понимается широко: это и количество компонент в структуре, и тип каждой из них, и способ их объединения в структуру. Любой тип определяет множество возможных значений, их свойства, а также набор допустимых операций. Вопрос.КОНЦЕПЦИЯ ДЕЙСТВИЯ Действия, реализующие алгоритм, описываются в программе с помощью операторов. Оператор — ведущее понятие языка, это наиболее крупное и содержательное понятие, так как всякий оператор — это законченная фраза языка, определяющая некоторый вполне законченный этап обработки данных. Рассмотрим классификацию операторов языка): операторы делятся на основные и производные,основные делятся на пустые, перехода, присваивания, процедуры, производные делятся на составные, выбирающие, цикла, присоединения Перечень типов данных в языке Турбо Паскаль можно представить в виде следующей схемы: Рисунок 1^ Простые (скалярные) типы данныхК скалярным (scalar - простые) типам данных относят типы данных таких величин, значения которых не содержат составных частей. Все простые данные имеют два характерных свойства: неделимость и упорядоченность их значений.^ Целочисленные типы данных

Тип

Диапазон

Требуемая память (байт)

byte

0..255

1

shortint

-128..127

1

integer

-32768..32767

2

word

0..65535

2

longint

-2147483648..2147483647

4

Целочисленные типы данных представляют собой значения, которые могут использоваться в арифметических выражениях и занимать в памяти от 1 до 4 байт. ^ Вещественные типы данных

Тип

Диапазон

Мантисса

Требуемая память (байт)

real

2.9*10E – 39..1.7*10E38

11-12

6

single

1.5*10E – 45..3.4*10E38

7-8

4

double

5.0*10E – 324..1.7*10E308

15-16

8

extended

1.9*10E – 4951..1.1*10E4932

19-20

10

comp

-2E+63+1..2E+63-1

10-20

8

Вещественные типы данных представляют собой вещественные значения, которые могут использоваться в арифметических выражениях и занимать в памяти от 4 до 6 байт. Паскаль допускает представление вещественных значений и с плавающей запятой, и с фиксированной точкой. Вещественные значения могут изображаться в форме с фиксированной точкой, например 7.32, 456.721 или 0.015, а также в форме с плавающей точкой, т.е. парой чисел вида <мантисса>Е<порядок> (7.32Е+00, 4.56721Е+02, 1.5Е-02). Литерный (символьный) типЛитерный (символьный) тип char определяется множеством значений кодовой таблицы ПЭВМ. Каждому символу приписывается целое число в диапазоне от 0 до 255. Для размещения в памяти переменной литерного типа требуется один байт.^ Булевский типБулевским типом называют тип данных, представляемый двумя значениями true (истина) и false (ложь). Он широко применяется в логических выражениях и выражениях отношения. Для размещения в памяти переменной булевского типа требуется 1 байт.^ Пользовательские типыКроме стандартных типов данных Паскаль поддерживает скалярные типы, определенные самим пользователем. К ним относятся перечисляемый и интервальный типы. Данные этих типов занимают в памяти один байт, поэтому скалярные пользовательские типы не могут содержать более 256 элементов. Их применение значительно улучшает наглядность программы, делает более легким поиск ошибок, экономит память.^ Интервальный тип (диапазон)Интервальный тип позволяет задавать две константы, определяющие границы диапазона значений для данной переменной. Компилятор при каждой операции с переменной интервального типа генерирует подпрограммы проверки, определяющие, остается ли значение переменной внутри установленного для нее диапазона. Обе константы должны принадлежать одному из стандартных типов (тип real недопустим). Значение первой константы должно быть значительно меньше значения второй. Например: 1..12 (номер месяца может принимать значения от 1 до 12) или ‘а’..’я’ (буквы русского алфавита – от а до я)^ Перечисляемый типПеречисляемый тип (enumerated type) – тип данных, заданных списком принадлежащих ему значений. Объявление перечисляемого типа описывает множество идентификаторов, которые являются возможными значениями перечисляемого типа. Идентификаторы в описании типа представляют собой константы. Отдельные значения указываются через запятую, а весь список заключается в круглые скобки. Перечисляемый тип ограничен больше чем интервальный, он задается перечислением своих значений. Например, в виде строковых констант: color=(red, blue, green, black). В приведенном примере создается новый (нестандартный) тип данных color. Переменные этого типа могут принимать всего 4 значения: red, blue, green, black. Такая возможность создания новых пользовательских типов данных имеется в языке Turbo Pascal.^ 9-11.Порядковые типыотличаются тем, что каждый из них имеет конечное число возможных значений. Эти значения можно определенным образом упорядочить и, следовательно, с каждым из них можно сопоставить некоторое целое число - порядковый номер значения. В Паскале есть следующие порядковые типы:Integer- целый тип, представляет собой подмножество множества целых чисел, определяемое конкретной реализацией. Во внутреннем представлении он занимает 2 байта, диапазон возможных значений - от -32768 до +32767, данные представляются точно.Char- символьный тип, представляет собой набор символов, определяемый конкретной реализацией. Во внутреннем представлении он занимает 1 байт, множество значений этого типа фиксировано и упорядочено. Все символы считаются перенумерованными, начиная с нуля. Такой набор символов определен в каждой вычислительной сисеме. Он необходим, по крайней мере, для связи системы с внешним миром. Константой символьного типа является один из допустимых символов, взятый в апострофы. Если апостроф сам является символом, то  апостроф, являющийся значением константы, записывается дважды, например‘7’ ,  ‘+’ , ‘F’ , ‘’’’ , ‘j’ , ‘?’ .Boolean- логический тип, определяет диапазон логических значений, который содержит два элемента^ False (ложь) и True (истина). Во внутреннем представлении он занимает 1 байт.Перечисляемый тип- задается перечислением тех значений, которые он может получать. Каждое значение именуется некоторым идентификатором и располагается в списке, обрамленном круглыми скобками, например:^ Type  colors = (red, white, blue, black);Тип-диапазон- подмножество своего базового типа, в качестве которого может быть любой порядковый тип, кроме типа-диапазон. Тип- диапазон задается границами своих значений внутри базового типа <минимальное значение> . .<максимальное значение> При определении типа-диапазон нужно руководствоваться следующими правилами: -".."  рассматриваются как один символ, поэтому между точками пробелы недопустимы; - левая граница не должна превышать правую границу. Пример:^ Type month = 1 ..12;lat = ’a’ .. ’z’;Перечислимый тип может использоваться в объявлениях переменных и формальных параметров функций (процедур, методов). Значения перечислимого типа могут присваиваться соответствующим переменным и передаваться через параметры соответствующих типов в функции. Кроме того, всегда поддерживается сравнение значений перечислимого типа на равенство и неравенство. Некоторые языки поддерживают также другие операции сравнения для значений перечислимых типов. Результат сравнения двух перечислимых значений в таких случаях определяется, как правило, порядком следования этих значений в объявлении типов — значение, которое в объявлении типа встречается раньше, считается «меньше» значения, встречающегося позже. Иногда перечислимый тип или некоторый диапазон значений перечислимого типа также может быть использован в качестве типа индекса для массива. В этом случае для каждого значения выбранного диапазона в массиве имеется один элемент, а реальный порядок следования элементов соответствует порядку следования значений в объявлении типа. 12. Выражениеэто формальное правило для вычисления некоторого значения. Выражение строится как совокупность операндов, объединенных знаками операций, выполнение которых приводит к вычислению значения выражения. Главное совйство выражений - возможность иметь значение. В зависимости от типа значения выражения можно разделить на три вида:

  • численные (арифметические);

  • логические;

  • символьные.

Рассмотри правила построения выражений каждого из этих видов.

32. Выражениеэто формальное правило для вычисления некоторого значения. Выражение строится как совокупность операндов, объединенных знаками операций, выполнение которых приводит к вычислению значения выражения. Главное совйство выражений - возможность иметь значение. В зависимости от типа значения выражения можно разделить на три вида:

  • численные (арифметические);

  • логические;

  • символьные.

Рассмотри правила построения выражений каждого из этих видов. ^