- •Некоторые особенности языка TurboPascal
- •Расширения базового синтаксиса
- •Расширения типов данных
- •Объявления переменных
- •Типизированные константы
- •Выражения и операции
- •Операторы
- •Процедуры и функции
- •Модульное программирование в TurboPascal
- •Общие понятия о модулях
- •Структура модуля
- •Заголовок модуля
- •Раздел интерфейса
- •Раздел реализации
- •Раздел инициализации
- •Описание подключаемых модулей (Uses)
- •Локализация (видимость) имен
- •Компиляция и компоновка модулей
- •Пример программы с модулем
- •Библиотеки модулей
- •Стандартные модули TurboPascal
- •Перечень стандартных модулей
- •Ввод-вывод в TurboPascal
- •Понятие об объектно-ориентированном программировании
- •Концепция объектно-ориентированного программирования
- •Синтаксис объектов в TurboPascal
- •Использование объектов в программе
Пример программы с модулем
Эта программа находит корни квадратных уравнений, коэффициенты которых вводятся с дисплея, и выводит найденные вещественные корни, либо сообщение о том, что они отсутствуют, на дисплей. После решения очередного уравнения, программа предлагает решить еще одно, или закончить счет. Программа использует процедуру, которая в самой программе не описана. Процедура реализована в подключаемом модуле. Также программа использует переменные a, b, c типа Real и переменную x типа Rdim, не описанные в программе, но описанные в модуле. Тип Rdim также сконструирован в модуле.
Текст программы.
Program SqEqSolve;
Uses Roots; {подключение модуля}
Var W:char;
Begin
Writeln('Нахождение корней квадратных уравнений');
Repeat
Write('Введите коэффициенты a, b, c через пробел');
Readln(a,b,c)
SqEqRoots(a,b,c,x)
If Error=false then
Writeln('Корни: x1=',x[1],' x2=',x[2])
else
Writeln('У этого уравнения нет вещественных
корней');
Writeln('Решить еще одно уравнение? (Y/N) >');
Readln(W)
Until (W='n') or (W='N')
End.
Текст модуля.
Unit Roots;
Interface {====раздел интерфейса=====}
Type Rdim=array[1..2] of real
Var a,b,c:real; x:Rdim;Error: Boolean;
Procedure SqEqRoots(coef1, coef2, coef3:Real;
Var Root:Rdim; Var Err:Boolean);
Implementation{====раздел реализации=====}
Procedure SqEqRoots;
Var d:real;
Begin
d:=Coef2* Coef2-4* Coef1* Coef3; {вычисление
дискриминанта}
If d>=0 then begin
d:=sqrt(d);
Root[1]:=(-Coef2-d)/(2*Coef1);
Root[2]:=(-Coef2+d)/(2*Coef1);
Err:=False
End
else Err:=true
End;
Библиотеки модулей
Обычно исходные тексты модулей и откомпилированные модули хранятся в виде отдельных файлов с расширением ".tpu". В Turbo Pascal предусмотрена библиотека модулей, в которой может содержаться одновременно несколько откомпилированных модулей в виде одного файла turbo.tpl. Для управления библиотекой модулей (добавление в нее модулей и извлечение из нее модулей) предусмотрена специальная утилита-библиотекарь tpumover.exe.
Стандартные модули TurboPascal
Перечень стандартных модулей
В состав системы Turbo Pascal включены стандартные модули, которые являются аналогами библиотек стандартных подпрограмм.
Модуль Назначение
System Содержит самые необходимые типы, процедуры и функции, как характерные для стандартного Паскаля (такие, как функции sin, abs, odd и др.) так и дополнительные типы, процедуры и функции для работы со строками, файлами, динамической памятью, обеспечивающие работу с расширенным синтаксисом Turbo Pascal. Этот модуль не надо включать в описание Uses, так как он автоматически подключается ко всем программам и модулям.
Crt Содержит типы, константы, процедуры и функции для работы с дисплеем в символьном режиме. Его компоненты позволяют управлять режимами экрана, цветом символов и фона, положением курсора на экране, контролировать нажатие клавиш и вводить коды нажатых клавиш.
Dos Компоненты этого модуля предназначены для взаимодействия программы с операционной системой и ее подсистемами. С их помощью можно получать информацию о файловой системе и файлах, работать с подсистемой ввода-вывода, управлять системными часами, создавать обработчики прерываний и т.д.
Overlay Содержит средства для организации программ с оверлейной структурой.
Printer Содержит несколько констант и структур данных для работы с принтером.
Graph Содержит средства управлением дисплеем в графическом режиме – определение типа графического адаптера, выбор графического режима, управление цветом, рисование пикселов и геометрических фигур и т.п.
Обычно эти модули (кроме модуля Graph) включены в стандартную библиотеку turbo.tpl. Сюда же входят и некоторые другие модули, предназначенные для обеспечения совместимости исходных текстов, написанных для более ранних версий Turbo Pascal. Модуль Graph обычно хранится в отдельном файле graph.tpu, но как и другие модули, он может быть включен в библиотеку модулей turbo.tpl. Для работы модуля Graph требуются также так называемые графические драйверы, поставляемые в файлах с расширением ".bgi".
Все стандартные модули, кроме модуля System, нужно подключать к программе при необходимости с помощью описания Uses. Модуль System подключен по умолчанию.
Подробное описание состава модулей – константы, переменные, типы данных, процедуры и функции, которые можно использовать в программе в готовом виде, подключив каждый из модулей, можно найти во многих изданиях, и конечно, в документации на систему программирования и в ее справочной службе. Здесь мы ограничимся кратким рассмотрением особенностей ввода-вывода в Turbo Pascal.