- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •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. Типы в Турбо Паскале
Любые данные (константы, переменные, значения функций или выражений) характеризуются своими типами. Тип определяет множество значений, которые может иметь тот или иной объект, операции, применимые к нему, а также формат внутреннего представления.
Турбо Паскаль является языком с развитой системой типизации. Любые данные до их использования должны быть предварительно объявлены.
Типы в Турбо Паскале делятся на простые, стрктурированные, процедурные, указатели и строки. В свою очередь простые типы включают порядковые и вещественные данные, а структурированные делятся на массивы, записи, множества и файлы.
Порядковые типы как стандартные, так и введенные программистом отлича- ются тем, что каждый из них содержит конечное число возможных значений. Эти значения можно определенным образом упорядочить или перенумеровать. Для таких типов для каждой пары элементов можно всегда определить, какой из них предшествует другому. Для порядковых типов определены следующие три функции:
ORD(X) возвращает порядковый номер значения выражения X;
PRED(X) возвращает значение, предшествующее х в его типе, т.е.
ORD(PRED(X)) = ORD(X) - 1;
SUCC(X) определяет следующее по порядку за X значение:
ORD(SUCC(X)) = ORD(X) + 1.
К вещественным типам указанные функции применить нельзя, количество возможных значений вещественных типов настолько велико, что сопоставить с каждым из них число (его номер) невозможно.
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] |