- •Язык Турбо-Паскаль. Общие сведения о языке
- •Структура блока описаний
- •Типы данных в языке Паскаль Понятие и классификация типов данных
- •Целочисленные типы
- •Вещественные типы
- •Символьный тип
- •Функции преобразования типов
- •Приоритеты операций
- •Выполняемые операторы языка (для программ линейной структуры)
- •Понятие и классификация
- •Классификация инструкций Паскаля
- •Оператор присваивания
- •Простые управляющие операторы
- •Оператор безусловного перехода.
- •Оператор продолжения цикла.
- •Оператор прекращения (прерывания) цикла.
- •Понятие составного оператора, операторные скобки
- •Операторы ветвлений
- •Оператор условного перехода.
- •Неполный условный оператор.
- •Полный условный оператор.
- •Операторы циклов
- •Оператор арифметического цикла
- •Операторы итеративных циклов
- •Организация цикла с помощью условного перехода
- •Оператор итеративного цикла с предусловием
- •Оператор итеративного цикла с постусловием
- •Глава 7. Составные типы данных
- •Классификация составных типов
- •Массивы Основные определения
- •Сортировки массива
- •Алгоритмы основных методов сортировок
Целочисленные типы
Особенностями работы с целыми числами в ЭВМ являются ограничения, накладываемые на значения из-за фиксированного размера памяти, выделяемой переменным. Следует учитывать три особенности при вычислениях с целочисленными данными:
1. В ЭВМ существуют команды арифметики для данных только одинакового типа и размера. (Если операнды разного типа, и один из них может быть приведен к типу второго без потери точности, перед выполнением операции автоматически будет выполнено приведение.)
2. Тип результата совпадает с типом операндов (кроме вещественного деления целых чисел). Если результат не помещается в отведенное место, старшие разряды теряются. Таким образом, множество целых чисел в ЭВМ представляет собой замкнутое кольцо – за самым большим значением следует самое малое.
3. Потеря информации при переполнении, для арифметических операций с целочисленными значениями выполняется без сообщения об ошибках.
В Turbo Pascal предусмотрено 5 разных стандартных описаний целых чисел, в зависимости от возможных диапазонов их изменения (соответственно выделяемой на числовое значение места в оперативной памяти). Их характеристики приведены в таблице.
Таблица 1. Описатели переменных целочисленных типов.
тип |
р в байтах |
формат |
диапазон |
shortint integer longint byte word |
1 2 4 1 2 |
знак. знак. знак. б/зн. б/зн. |
-128 .. 127 -32768 .. 32767 -2147483648 .. 2147483647 0 .. 255 0 .. 65535 |
Для всех целочисленных данных определены арифметические операции: сложение, умножение, вычитание, деление как вещественных данных, целочисленное деление и нахождение остатка при целочисленном делении. Результатом любой операции, кроме вещественного деления является также целое значение.
Значения целочисленных данных могут записываться в 10- и 16-тиричной форме, причем в последнем случае константе должен предшествовать знак $.
Примеры записи целочисленных констант:
534, -1, 21000000, $1С07, $7fffffff, $ABCD и др.
Существует стандартная константа MAXINT=32767, которую можно использовать не объявляя.
Обычно в разделе VAR для знаковых переменных используют тип integer, а для беззнаковых - word, например:
VAR
I,J,MaxI,Period : integer;
Number,NegativCount : word;
При описании целочисленных переменных, следует иметь ввиду, что этот тип используется в абстрактных математических задачах, а в физических - только для объектов задачи, про которых можно спросить: "Какой он по порядку?" и "Сколько их всего штук?".
Вещественные типы
Для объектов, описывающих любую физическую измеряемую величину в программе должны заводиться переменные вещественного типа. В памяти значения вещественных чисел хранятся в нормализованной экспоненциальной форме в 3-х полях: знаковом, поле для порядка числа и поле для цифр мантиссы. В зависимости от размеров выделяемых полей меняется как диапазон возможных чисел, так и точность их представления. В Turbo Pascal предусмотрены следующие стандартные описатели для вещественных переменных:
Таблица 2. Описатели переменных вещественных типов.
тип |
размер (байт) |
цифр |
диапазон возможных значений |
real single double |
6 4 8 |
11-12 7-8 15-16 |
2.9e-39..1.7e38 1.5e-45..3.4e38 5.0e-324..1.7e308 |
Обычно используют тип real, два других типа можно использовать только при специальной настройке. Важно помнить, что другие языки (фортран, C) используют 4-х или 8-ми байтовые представления вещественных чисел, поэтому, если нужна совместимость по данным, Паскаль-программа должна использовать описатели single или double.
Для вещественных данных определены операции сложения, вычитания, умножения и деления (кроме деления на 0), причем результатом любой операции является вещественное число.
Вещественные константы записывают в двух формах: с фиксированной точкой и с плавающей точкой (последняя форма еще называется экспоненциальной). Примеры первой формы записи:
3.1416, 0.0735, -21.0
Вторая форма получается из первой дописыванием десятичного порядка, отделяя его от мантиссы символом "Е" или "е", например:
0.5e7, -4.57e-3, 1E10 и т.д.