
- •Кафедра с а п р
- •Часть 1
- •1. Алфавит языка Паскаль
- •Данные в языке Паскаль
- •2.1 Порядковые типы данных
- •2.1.1 Целые типы данных
- •2.1.2 Логический тип данных
- •Символьный тип данных
- •2.1.4 Перечислимый тип данных
- •Ограниченный тип данных
- •2.2 Вещественные типы данных
- •3. Структура программ на языке TurboPascal
- •Описание меток
- •Описание переменных
- •Var имя переменной : тип;
- •Описание типов
- •Описание простых и типизированных констант
- •Арифметические выражения
- •Логические выражения
- •Оператор присваивания
- •Составной оператор
- •Процедуры ввода и вывода данных
- •Линейные алгоритмы и программы
- •Операторы условной и безусловной передачи управления
- •Алгоритмы и программы с разветвлением
- •10. Оператор выбора
- •11. Операторы циклов
- •11.1 Оператор цикла с предусловием
- •Оператор цикла с постусловием
- •Оператор цикла с параметром
- •Циклические алгоритмы и программы
- •Вариант 3
- •Использование циклических алгоритмов и программ для вычисления суммы членов ряда
- •При составлении алгоритма и программы будем считать, что точность
- •Массивы и их описание
- •Var Имя_массива: Array[t1] of [t2];
- •Var Имя_массива: Имя_типа_массива;
- •12.1 Работа с одномерными массивами
- •12.2 Работа с двумерными массивами
- •Текст программы
- •Варианты заданий
- •Строковый тип данных. Операции над строками
- •Множества в Паскале, их описание. Операции над множествами
- •Var Имя множества:Set of базовый тип;
- •Var Имя множества:Имя типа;
- •Тип данных - записи, их описание и использование. Оператор присоединения
- •1. Var Имя записи:record
- •Var Имя записи:Имя типа для записи;
- •15.1 Работа с массивом из записей
- •16 Подпрограммы
- •16. 1 Процедуры. Описание процедур. Область действия имён Локальные и глобальные параметры
- •16.2 Подпрограммы типа function, их описание
- •17. Задача сортировки: алгоритмы и программы
- •Сортировка выбором
- •Обменная сортировка
- •Сортировка слиянием
- •18 Задача поиска: алгоритмы и программы
- •18.1 Линейный поиск
- •Двоичный поиск
Данные в языке Паскаль
В языке Паскаль любая переменная характеризуется своим типом.
Под типом, в данном случае, понимается множество значений, которые
может принимать переменная, а также множество операций, допустимых над данной переменной. Тип определяет формат внутреннего представления данных в памяти компьютера.
Тип переменной определяется при ее описании, и он не может быть
изменен в процессе выполнения программы. Переменная может участвовать только в операциях, допустимых ее типом.
Паскаль имеет развитую систему типов. Классификация типов данных,
приведенная на рисунке 1, взята из книги [1] и не является единственной. В языке предусмотрен механизм создания новых типов данных на основе базовых. Поэтому общее число типов, используемых в программе, может быть сколь угодно большим.
Рассмотрим сначала так называемые простые или базовые типы, являющиеся основой для построения других типов. Их иногда называют также стандартными типами данных.
Порядковые
Целые
Типы
Простые
Логический
Вещественные
Структурированные
Символьный
Массивы
Записи
Ссылочный
Перечислимый
Ограниченный
Множества
Строковый
Файлы
Процедурный
Объекты
Рисунок 1
2.1 Порядковые типы данных
Порядковые типы характеризуются тем, что каждый из них имеет конечное число возможных значений и с каждым из них можно сопоставить некоторое целое число - порядковый номер значения. К порядковым типам относятся:
целый тип;
логический (или булевой) тип;
символьный тип;
перечислимый (или перечисляемый) тип;
ограниченный (или интервальный) тип, который также называют тип-диапазон.
К любому из них применима стандартная функция ORD(Х), результатом которой является порядковый номер значения Х. К порядковым типам можно также применять функции:
PRED(X) - возвращает предыдущее значение порядкового типа;
SUCC(X) - возвращает следующее значение порядкового типа.
2.1.1 Целые типы данных
Эта группа типов обозначает множество целых чисел в различных диапазонах. Диапазон возможных значений целых типов зависит от их внутреннего представления, которое может занимать один, два или четыре байта.
В таблице 1 приведены имена (или названия) всех возможных целых типов (их всего 5), а также длина их внутреннего представления в байтах и диапазоны возможных значений каждого из типов.
Таблица 1
Целые типы |
||
Название |
Длина, байт |
Диапазон значений |
Byte |
1 |
0…255 |
ShortInt |
1 |
-128…+127 |
Word |
2 |
0…65535 |
Integer |
2 |
-32768…+32767 |
LongInt |
4 |
-2147483648…+2147483647 |
Значения целых типов могут изображаться в программе двумя способами: в десятичном виде (в виде последовательности цифр от 0 до 9) и в шестнадцатеричном виде (в виде последовательности цифр от 0 до 9 и букв от A до F, перед которыми ставится знак $).
Над целыми значениями допустимы следующие арифметические операции: + - сложение, - - вычитание, * - умножение, / - деление и две дополнительные операции "типа деление", а именно, Div - деление нацело, с отбрасыванием дробной части и Mod - взятие остатка от целочисленного деления.
При применении к целым значениям всех этих операций, кроме / - деления получается результат целого типа, а деление (/) всегда дает вещественный результат.
К значениям целых типов могут быть применены стандартные процедуры и функции, некоторые из них приведены в таблицах 2 и 3.
При действиях с целочисленными значениями тип результата будет соответствовать типу операндов, а если операнды относятся к различным целым типам, - типу того операнда, который имеет максимальный диапазон значений. Возможное переполнение результата никак не контролируется, что может привести к непредсказуемым результатам.
Таблица 2
Стандартные функции, применимые к целым типам |
|||
Обращение |
Тип аргумента |
Тип результата |
Действие |
Hi(X) |
Integer Word |
Byte Byte |
Возвращает старший байт аргумента |
Lo(X) |
Integer Word |
Byte Word |
Возвращает младший байт аргумента |
Odd(X) |
LongInt |
Boolean |
Возвращает значение True, если Х - если Х - нечетное |
Swap(X) |
Integer Word |
Integer Word |
Меняет местами байты в слове |
Таблица 3
Стандартные процедуры, применимые к целым типам |
||
Описание процедуры |
Тип параметров |
Назначение |
Randomize |
Без параметров |
Гарантирует несовпадение последо- вательностей случайных чисел, выдаваемых функцией Random |
Inc(X) |
X - целое |
Увеличивает значение Х на 1 |
Dec(X) |
X - целое |
Уменьшает значение Х на 1 |
Inc(X,N) |
Dec(X,N) |
Увеличивает значение Х на N |
Dec(X,N) |
Dec(X,N) |
Уменьшает значение Х на N |