- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •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.1. Целые типы
В отличие от языка Паскаль, где определен единственный целый тип Integer, в Turbo Pascal имеется пять стандартных типов целых чисел. Диапазон их возможных значений зависит от внутреннего представления числа, которое может занимать один, два или четыре байта. В таблице 2 приведены характеристики целых типов.
Таблица 2
Классификация целых типов
Длина, байт |
Название |
Диапазон |
Примечание |
1 1 2 2 4 |
BYTE SHORTINT WORD INTEGER LONGINT |
от 0 до 255 от -128 до 127 от 0 до 65535 -32768 -+32767 от -2147483648 до 2147483647 |
Короткое целое без знака Короткое целое со знаком Целое без знака Целое со знаком Длинное целое со знаком |
Описание переменных целых типов производится в разделе описаний VAR соответствующими ключевыми словами. Например:
VAR
X: INTEGER;
I, J: BYTE;
Любой компилятор языка может определить максимальное число MAXINT для типа INTEGER и при этом справедливо -MAXINT<= X<= MAXINT.
Для целых типов определены следующие операции: сложение, вычитание (имеют более низкий пpиоpитет); DIV, MOD, умножение. Функции TRUNC(X), ROUND(X) дают целый результат; также применимы к целым типам функции из табл. 3. Стандартные математические функции для целого аргумента всегда возвращают вещественные значения.
При использовании процедур и функций с целочисленными параметрами следует руководствоваться правилом «вложенности» типов, т.е. везде, где можно использовать WORD, допускается применять BYTE. При арифметических операциях, если операнды относятся к различным типам, то тип результат имеет максимальную мощность диапазона.
Таблица 3
Встроенные процедуры и функции для целых типов
Обращение |
Тип результата |
Действие |
ABS(X) SQR(X) CHR(B) HI(I),HI(W) LO(I),LO(w) ODD(L)
SWAP(X) RANDOM(W)
DEC(Х,[i]) INC(Х,[i]) |
Как у аргумента Как у аргумента CHAR BYTE, WORD BYTE, WORD BOOLEAN
INTEGER, WORD Как у аргумента
Процедура
Процедура |
Возвращает модуль числа Х Возвращает квадрат числа Х Возвращает символ по его коду Возвращает старший байт аргумента Возвращает младший байт аргумента Возвращает значение TRUE, если аргумент – нечетное число, FALSE если четное Меняет местами байты в слове Возвращает псевдослучайное число, равномерно распределенное на интервале 0<=X<=W Уменьшает Х на 1 [на i]
Увеличивает Х на 1 [на i] |
2.8.2. Логический тип
Переменные логического типа объявляются ключевым словом BOOLEAN и могут принимать два значения FALSE или TRUE (FALSE<TRUE). Для них справедливы следующие функции:
ord(FALSE) = 0;
ord(TRUE) = 1;
succ(FALSE) = TRUE;
pred(TRUE) = FALSE.
Для логического типа определены операции присваивания и сравнения.
Пример
VAR С, D: REAL;
X, Y, A, B: BOOLEAN;
BEGIN
X:=A OR B;
Y:=(C>0) AND (C<D);
END.
Логический результат дает стандартная функция ODD(x) проверки на нечетность, функции EOLN(f) проверки конца строки и EOF(f) определения конца файла.
В ТП 7.0 добавлено еще три логических типа ByteBoolean (размер 1 байт, как и у Boolean), WordBool (размер 2 байта) и LongBool (размер 4 байта). Они введены для унификации с другими языками программирования и со средой Windows. Для всех логических типов значению FALSE соответствует число 0, записанное в соответствующее количество байтов. Значению же TRUE для типа Boolean соответствует число 1, записанное в его байт, а для других типов – любое число, отличное от нуля [3].