- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •1. Среда программирования turbo pascal 7.0
- •1.1. Структура меню среды
- •1.2. Правила оформления программ
- •1.3. Команды редактора тп
- •Команды удаления и вставки
- •1.4. Компиляция и исправление синтаксических ошибок
- •2. Элементы языка pascal
- •2.1. Алфавит языка
- •2.2. Константы. Идентификаторы
- •2.3. Операторы
- •2.3.1. Оператор присваивания
- •2.3.2. Оператор безусловного перехода
- •Стандартные функции
- •2.3.3. Условный оператор if
- •2.3.4. Опеpатоp варианта case
- •2.3.5. Составной и пустой операторы
- •2.3.6. Операторы цикла
- •2.4. Процедуры прерываний
- •2.5. Типизированные константы
- •2.6. Структура программы
- •2.7. Подпрограммы
- •2.7.1. Определение процедур и функций
- •2.7.2. Вложенные подпрограммы
- •2.7.3. Вызов подпрограмм
- •2.7.4. Процедуры
- •2.7.5. Функции
- •2.7.6. Передача в подпрограмму параметров-массивов и параметров-строк
- •2.7.7. Рекурсия
- •2.8. Типы в Турбо Паскале
- •2.8.1. Целые типы
- •Классификация целых типов
- •Встроенные процедуры и функции для целых типов
- •2.8.2. Логический тип
- •2.8.3. Символьный тип
- •Служебные символы
- •2.8.4. Строковый тип
- •Встроенные функции и процедуры для обработки строк
- •Процедуры преобразования
- •2.8.5. Перечислимый тип
- •2.8.6. Ограниченный тип (диапазон)
- •2.8.7. Вещественные типы
- •Вещественные типы
- •Встроенные функции
- •2.8.8. Структурированные типы данных. Массивы
- •2.8.9. Множества
- •2.8.10. Записи
- •2.9. Изменение типа выражения
- •2.10. Процедурные типы
- •2.11. Файлы
- •Общие процедуры и функции для работы с файлами
- •2.11.1. Текстовые файлы
- •2.11.2. Типизированные файлы
- •2.11.3. Нетипизированные файлы
- •2.12. Указатели и динамическая память
- •2.13. Модули
- •2.14. Библиотека Турбо Паскаля
- •2.14.1. Модуль crt
- •2.14.2. Модуль graph
- •Var driver, Mode: integer переменные драйвера и режима.
- •Управление графическим режимом
- •Управление экраном, окном, страницей
- •Управление цветом и палитрой
- •Работа с точками
- •Работа с линиями
- •Построение фигур из линий
- •Построение криволинейных фигур
- •Работа с текстом
- •Обмен с памятью
- •2.15. Динамические структуры данных
- •2.15.1. Связанные динамические данные. Списки
- •Чтобы сослаться на двунаправленный кольцевой список как на единый программный объект, используется указатель, значением которого является ссылка на заглавное звено списка.
- •2.15.2 Очередь
- •2.15.3. Стек
- •3. Практическое программирование Этапы подготовки и решения задач на компьютере
- •Порядок выполнения лабораторных работ
- •Лабораторная работа 1 Основы программирования в среде Турбо Паскаля.
- •Приоритет операций в выражении
- •Задание 1 (программа 1_1)
- •Лабораторная работа 2 Программирование разветвленных алгоритмов. Операторы передачи управления
- •Лабораторная работа 3 Программирование циклических алгоритмов с заданным числом повторений
- •Лабораторная работа 4 Программирование циклических алгоритмов с предусловием
- •Лабораторная работа 5 Программирование циклических алгоритмов с постусловием
- •Модифицировать программу 3_2 для вычисления функций f1(X) и f2 (X) с применением оператора цикла с постусловием. Выполнить ее и сравнить результаты с полученными ранее.
- •Лабораторная работа 6 Программирование алгоритмов обработки одномерных массивов
- •Задание 1
- •Лабораторная работа 7
- •Лабораторная работа 8 Программирование с использованием функций
- •Лабораторная работа 9 Программирование с использованием процедур
- •Лабораторная работа 10 Обработка символьных и строковых данных
- •Лабораторная работа 11 Файлы
- •Лабораторная работа 12 Записи
- •Лабораторная работа 13 Решение нелинейных уравнений
- •Задание (программа_13)
- •Лабораторная работа 14 Вычисление приближенного значения определенного интеграла
- •Лабораторная работа 15 Модульное программирование
- •Лабораторная работа 16 Графика
- •Библиографический список
- •Обозначения графические в схемах алгоритмов (гост 19.701-90)
- •Зарезервированные слова Turbo Pascal 7.0
- •Приложение в
- •Кодировка символов в соответствии с кодами ascii
- •Приложение г
- •Альтернативная кодировка госТа для кодов 128...255
- •Клавиши с кодами из двух частей
- •Содержание
2.8.6. Ограниченный тип (диапазон)
Через диапазон можно определить тип, который будет содержать значения только из ограниченного поддиапазона некоторого базового типа. Базовым типом может быть любой целочисленный тип, тип CHAR или любой из введенных программистом перечислимых типов. Определяется тип-диапазон в разделе TYPE указанием имени типа и границ диапазона, разделенных двумя точками:
TYPE <ИмяДиапазона>=<НачальноеЗначение>..<КонечноеЗначение>;
Начальное значение при определении такого типа не должно быть больше конечного.
Пример: TYPE
TEST1=(test1,test2,...,test5);
H=1..20; {поддиапазон для типа Integer}
LETERS='A'..'Я'; {базовый тип Char}
TESTOD=test2..test5; {базовый тип TEST}
Определение переменных для диапазона производится в разделе VAR. Они могут принимать любые значения из указанного диапазона, включая граничные.
При конструировании диапазона в описании типа можно использовать несложные арифметические выражения для вычисления границ. Но при этом надо следить, чтобы запись выражения не начиналась со скобки (скобка это признак начала перечисления).
Пример:
CONST
N=30;
TYPE
date=1..31;
kv2=3*N+1..6*N;
VAR
L,L1:date;
k: kv2;
BEGIN
L:=2*10+5; ...
L1:=2*10+60; {неверно, т.к. L1 выходит за пределы диапазона}
END.
Применение ограниченных типов усиливает контроль данных при выполнении программы. Значения переменных типа «диапазон» могут выводиться на экран и вводится с клавиатуры только в том случае, когда диапазон взят из базового стандартного типа.
2.8.7. Вещественные типы
В отличие от порядковых типов значения вещественных типов определяют число лишь с некоторой точностью, зависящей от внутреннего формата числа. Вещественное число в памяти ПК представляется в экспоненциальной форме и состоит из знака, мантиссы и порядка числа. Десятичная точка подразумевается перед левым (старшим) разрядом мантиссы (такая мантисса называется нормализованной). При выполнении операций десятичная точка сдвигается путем выполнения умножения мантиссы на E (экспоненту) с порядком:
<Знак><Мантисса>Е<Порядок> или <Знак><Мантисса>*10<Порядок>.
В зависимости от числа разрядов, отводимых под мантиссу и порядок, в ТП различают следующие вещественные типы (табл.5).
Все типы, кроме REAL, могут использоваться только при особых режимах компиляции среды или подключенном сопроцессоре. Подключение сопроцессора производится до выполнения программы указанием ключа $N+; отключает сопроцессор ключ $N-. Арифметический сопроцессор всегда обрабатывает числа в формате EXTENDED, другие типы получаются усечением результатов до нужных размеров.
Таблица 5
Вещественные типы
Длина, байт |
Название типа |
Значащие цифры мантиссы |
Диапазон десятичного порядка |
4 6 8 10 8 |
SINGLЕ REAL DOUBLE EXTENDED COMP |
7..8 11..12 15..16 19..20 19..20 |
-45..+38 -39..+38 -324..+308 -4951..+4932 -2E63+1..2E63-1 |
Тип COMP трактуется как "большое" целое число со знаком. В то же время в выражениях он полностью совместим с другими вещественными типами и порядковым не считается. Для работы с вещественными типами определены встроенные функции: sin, cos, arctаn, ln, exp, sqr, abs, sqrt, а также функции табл.6.
Операции +,-,*,/ дают вещественный результат, если хотя бы один из аpгументов вещественный.
Таблица 6