- •Ю.П. Чернов, о.П. Шафеева программирование для начинающих
- •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.14. Библиотека Турбо Паскаля
Библиотека включает сервисные подпрограммы, предоставляющие пользователю дополнительные возможности при разработке программ. Библиотека ТП содержит стандартные модули SYSTEM, CRT, DOS, GRAPH, STRING, PRINTER, WinDOS, OVERLAY.
Модуль SYSTEM (основная библиотека) подключается к любой программе автоматически. В него входят все типовые функции и процедуры стандартного Паскаля и дополнительные функции Turbo Pascal. Этот модуль содержит подпрограммы для ввода/вывода, обработки строк, эмуляции арифметического сопроцессора и другие.
Модуль DOS позволяет использовать возможности системы MS DOS, не предусмотренные в стандарте языка Паскаль.
Модуль STRING используется только в версии 7.0 для совместимости с программами обработки строк в среде WinDows.
Модуль PRINTER включает в себя переменную Lst типа Text, которая связана с принтером. Ее можно использовать в качестве файловой переменной в процедурах Write и WriteLn.
Модуль WinDOS используют вместо модуля DOS, когда в программе применяются строки, завершающиеся нулями, при выполнении программы в среде Windows.
Модуль OVERLAY предназначен для организации оверлейных программ, которые загружаются в оперативную память отдельными частями - секциями.
Модули Turbo3 и Graph3 ТП 7.0 служат соответственно для связи с программами и графикой Turbo Pascal 3.0.
2.14.1. Модуль crt
Модуль CRT содержит константы, переменные и подпрограммы, предназначенные для работы с консолью. Включает процедуры и функции, которые управляют текстовым режимом работы дисплея. С помощью подпрограмм модуля можно перемещать курсор по экрану дисплея, менять цвет выводимых символов и фона, создавать окна на экране, управлять звуком, работать с клавиатурой.
Функции управления клавиатурой
KeyPressed: Boolean возвращает True, если в текущий момент на клавиатуре была нажата клавиша, иначе False. Не приостанавливает выполение программы. Используется при организации работы циклов.
ReadKey: Char читает и возвращает в программу символ с клавиатуры (без отображения на экране). Приостанавливает исполнение программы до нажатия на любую клавишу символа. Используется в операторах IF для проверки символов.
WhereX: Byte возвращает горизонтальную координату текущей позиции курсора относительно окна.
WhereY: Byte возвращает вертикальную координату текущей позиции курсора относительно окна.
Процедуры управления дисплеем
AssignCrt(Var F:Text); связывает с файловой переменной устройство CON (клавиатуру для ввода и дисплей для вывода).
ClrEol; удаляет все символы справа от курсора до конца строки без перемещения курсора.
ClrScr; очищает экран (окно на экране) и помещает курсор в верхний левый угол.
Delay(D: word); приостанавливает работу программы на D миллисекунд.
GotoXY(X,Y:byte); перемещает курсор в нужное место экрана (окна). Левый верхний угол экрана (окна) имеет координаты (1,1). Отсчет координат идет слева направо и сверху вниз. Количество символов в строке и самих строк зависит от типа дисплея (обычно 25 строк и 80 символов).
InsLine; вставляет пустую строку в позицию курсора.
HighVideo; устанавливает высокую яркость символов.
LowVideo; устанавливает низкую яркость символов.
NormVideo; устанавливает нормальную яркость символов.
Window(X1,Y1,X2,Y2:byte); определяет размеры окна на экране для вывода текста. X1,Y1 - координаты левого верхнего угла, X2,Y2 правого нижнего угла.
TextBackGround(Color:byte); устанавливает цвет фона экрана (окна) от 0 (черный) до 15 (белый).
TextColor(Color:byte); устанавливает цвет символа.
TextMode(Mode:word); устанавливает необходимый текстовый режим работы дисплея (0,1,2,...).
Управление звуковым генератором
Sound(F:word); включает звук генератора, F - частота звука в герцах.
Delay(T:word); устанавливает продолжительность звучания в миллисекундах.
NoSound; выключает звук генератора.
Пример: Program Text;
Uses CRT;
Begin
ClrScr; {очистка экpана}
TextBackGround(10); {ярко-зеленый фон}
TextColor(5); {фиолетовые символы}
GotoXY(20,10);
WriteLn('Включен звук !');
Sound(12500); {включить звук}
Delay(10000);
NoSound {выключить звук}
End.