Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Программирование на языке высокого уровня Паскаль. Учебное пособие для СПО

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
каждого типа существует ключевое слово, которое используется при описании переменных, констант и т. д. Если же тип данных определяет сам программист, он описывает его характеристики и дает ему имя, которое затем применяется точно так же, как имена стандартных типов. Описание собственного типа данных должно задавать всю информацию, необходимую для его использования: внутреннее представление и допустимые действия.
ПРИМЕЧАНИЕ Типы, выделенные в таблица 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, только если оба операнда имеют
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
11
значение 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
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
12
integer
байта
–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. Освободившиеся при сдвиге влево разряды заполняются нулями, а при сдвиге вправо — знаковым разрядом.
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
13
Стандартные функции и процедуры.К целым величинам можно применять стандартные функции и процедуры, перечисленные в
таблица 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
Квадратный корень
Вещественный
записывается sqrt(x)
succ
Следующее значение
Целый succ(3) даст в результате 4
Процедуры
inc Инкремент
inc(x) — увеличить х на 1 inc(x, 3) — увеличить х на 3
dec Декремент
dec(x) — уменьшить х на 1 dec (x, 3) — уменьшить х на 3
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
14
Вещественные типы
Внутреннее представление.Вещественные типы данных хранятся в памяти компьютера иначе, чем целые. Внутреннее представление вещественного числа состоит из двух частей — мантиссы и порядка, и каждая часть имеет знак. Например, число 0,087 представляется в виде
0,87 10–1, и в памяти хранится мантисса 87 и порядок –1 (для наглядности мы пренебрегли тем, что данные на самом деле представляются в двоичной системе счисления и несколько сложнее).
Существует несколько вещественных типов, различающихся точностью и диапазоном представления данных (таблица 1.8). Точность числа определяется длиной мантиссы, а диапазон — длиной порядка.
Таблица 1.8. Вещественные типы данных
Тип Название Размер
Значащих
десятичных
цифр
Диапазон значений
real Вещественный 6 байт 11–12 2.9e–39 .. 1.7e+38
single
Одинарной точности
4 байта
7–8 1.5e–45 .. 3.4e+38
double
Двойной точности
8 байт 15–16
5.0e–324 ..
1.7e+308
extended Расширенный
10 байт
19–20
3.4e–4932 ..
1.1e+4923
comp Большое целое 8 байт 19–20
–9.22e18 .. 9.22e18 (–2
63
.. 2
63
–1)
ПРИМЕЧАНИЕ Для первых четырех типов втаблица 1.8 приведены абсолютные величины минимальных и максимальных значений.
Величины типа comp хранятся так же, как целые, но отнести его к целым мешает то, что тип comp не относится к порядковым типам. Операции. С вещественными величинами можно выполнять арифметические операции, перечисленные в таблица 1.9. Результат их выполнения — вещественный.
Таблица 1.9. Арифметические операции для
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
15
вещественных величин
Операция Знак операции Операция Знак операции
Сложение + Умножение *
Вычитание – Деление /
В общем случае при выполнении любой операции операнды должны быть одного и того же типа, но целые и вещественные величины смешивать разрешается.
ПРИМЕЧАНИЕ Обратите внимание, что целочисленное и вещественное деление записываются с помощью разных знаков операций. Если требуется получить вещественный результат деления двух целых величин, нужно использовать операцию /, если целый — операцию div.
К вещественным величинам можно также применять операции отношения.
Стандартные функции.К вещественным величинам можно применять стандартные функции, приведенные в таблице 1.10 (в тригонометрических функциях угол задается в радианах).
Таблица 1.10. Стандартные функции и процедуры для вещественных
величин
Имя Описание Результат Пояснения
abs Модуль Вещественный |x| записывается abs(x)
arctan
Арктангенс угла
Вещественный
arctg x записывается arctan(x)
cos Косинус угла Вещественный
cos x записывается cos(x)
exp Экспонента Вещественный
e x записывается exp(x)
frac
Дробная часть аргумента
Вещественный
frac(3.1) даст в
результате 0,1
int
Целая часть аргумента
Вещественный
int(3.1) даст в результате
3,0
ln
Натуральный
Вещественный
log ex записывается ln(x)
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
16
ln
логарифм Вещественный log ex записывается ln(x)
pi
Значение числа
Вещественный 3,1415926536
round
Округление до целого
Целый
round(3.1) даст в результате 3 round (3.8) даст в результате 4
sin Синус угла Вещественный sin x записывается sin(x)
sqr Квадрат Вещественный
x 2 записывается sqr(x)
sqrt
Квадратный корень
Вещественный
записывается sqrt(x)
trunc
Целая часть аргумента
Целый
trunc(3.1) даст в
результате 3
Символьный тип
Этот тип данных, обозначаемый ключевым словом char, служит для представления любого символа из набора допустимых символов. Под каждый символ отводится 1 байт. К символам можно применять операции отношения (<, <=, >, >=, =, <>), при этом сравниваются коды символов. Меньшим окажется символ, код которого меньше. Других операций с символами нет. Стандартных подпрограмм для работы с символами тоже немного (таблица 1.11
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
17
).
Таблица 1.11. Стандартные функции для символьных величин
Имя Описание Результат Пояснения
ord
chr
Порядковый номер символа
Преобразование в символ
Целый
Символьный
ord('b') даст в результате 98 ord('ю') даст в результате 238
chr(98) даст в результате 'b' chr(238) даст в результате 'ю '
Предыдущий pred('b') даст в результате
succ
Последующий символ
Символьный
succ('b') даст в
результате ' c '
upcase
Перевод в верхний регистр (только для символов из диапазона ' a ' … ' z ')
Символьный
upcase('b') даст в
результате ' B '
Порядковые типы
В группу порядковых объединены целые, символьный, логический, перечисляемый и интервальный типы. Сделано это потому, что они обладают следующими общими чертами:
все возможные значения порядкового типа представляют собой ограниченное упорядоченное множество; к любому порядковому типу может быть применена стандартная функция Ord, которая в качестве результата возвращает порядковый номер конкретного значения в данном типе; к любому порядковому типу могут быть применены стандартные функции Pred и Succ, которые возвращают предыдущее и последующее значения соответственно; к любому порядковому типу могут быть применены стандартные функции Low и High, которые возвращают наименьшее и наибольшее значения величин данного типа.
При изучении операторов Паскаля мы увидим, что в некоторых из них допускается использовать только величины порядковых типов.
Приведение типов
Иногда при программировании требуется явным образом преобразовывать величину одного типа в величины другого. Для этого служит операция приведения типа, которая записывается так:
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
18
служит операция приведения типа, которая записывается так:
имя_типа (преобразуемая_величина)
Например:
integer ('A') byte(500)
Размер преобразуемой величины должен быть равен числу байтов, отводимых под величины типа, в который она преобразуется. Исключение составляют преобразования более длинных целых типов в более короткие: в этом случае лишние биты просто отбрасываются. Приведение типа изменяет только точку зрения компилятора на содержимое ячеек памяти, никакие преобразования внутреннего представления при этом не выполняются.
Линейные программы
Линейной называется программа, все операторы которой выполняются в том порядке, в котором они записаны. Это самый простой вид программ.
Переменные
Переменная — это величина, которая во время работы программы может менять свое значение. Все переменные, используемые в программе, должны быть описаны в разделе описания переменных, начинающемся со служебного слова var. Для каждой переменной задается ее имя и тип, например:
var number : integer; x, y : real; option : char;
Имя переменной определяет место в памяти, по которому находится значение переменной. Имя дает программист. Оно должно отражать смысл хранимой величины и быть легко распознаваемым.
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
19
представления данных.
При объявлении можно присвоить переменной некоторое начальное значение, то есть инициализировать ее. Под инициализацией понимается задание значения, выполняемое до начала работы программы. Инициализированные переменные описываются после ключевого слова const.
const number : integer = 100; x : real = 0.02; option : char = 'ю';
По умолчанию все переменные, описанные в главной программе, обнуляются.
Выражения
Выражение — это правило вычисления значения. В выражении участвуют операнды, объединенные знаками операций. Операндами выражения могут быть константы, переменные и вызовы функций. Операции выполняются в определенном порядке в соответствии с приоритетами, как и в математике. Для изменения порядка выполнения операций используются круглые скобки, уровень их вложенности практически не ограничен.
Результатом выражения всегда является значение определенного типа, который определяется типами операндов. Величины, участвующие в выражении, должны быть совместимых типов. Например, допускается использовать в одном выражении величины целых и вещественных типов. Результат такого выражения будет вещественным.
Ниже приведены операции Паскаля, упорядоченные по убыванию приоритетов.
1. Унарная операция not, унарный минус –, взятие адреса @.
2. Операции типа умножения: *, /, div, mod, and, shl, shr.
3. Операции типа сложения: +, –, or, xor.
4. Операции отношения: =, <, >, <>, <=, >=, in.
Программирование на я зыке высокого уровня ПаскальТ.А. Павловская
20
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]