Это методическое пособие предназначено для желающих самостоятельно научиться решать задачи по основным разделам предмета на языках Бейсик и Паскаль. Предлагаемая методика включает
Вид материала | Методическое пособие |
- Учебно-методическое пособие таганрог 2005 ббк 67. 01 Составитель, 578.81kb.
- Курс. 01;Мпк. 01;3 методическое пособие по курсовой работе методика воспитательной, 230.31kb.
- Методика преподавания хореографических дисциплин Учебно-методическое пособие для специальности, 1490.89kb.
- Ниязов Олег Нургалиевич Ниязов О. Н. Н60 методическое пособие, 75.1kb.
- Учебно-методическое пособие Йошкар-Ола, 2009 ббк п 6 удк 636, 3772.57kb.
- Учебно-методическое пособие и ситуационные задачи по урологии для студентов волгоград,, 482.99kb.
- Панасенко Александр Иванович, профессор кафедры органической и биологической химии, 259.01kb.
- Учебное пособие по курсу «управление банковским продуктом» Составитель: к э. н., доцент, 955.86kb.
- Предлагаемая работа представляет собой попытку в краткой форме изложить теоретический, 1296.91kb.
- Российской федерации, 664.65kb.
XII.5.Что такое модуль?
Турбо-Паскаль обеспечивает вам доступ к большому числу встроенных констант, типов данных, переменных, процедур и функций. Некоторые из них специфичны для Турбо-Паскаля, другие специфичны для персонального компьютера IBM PC (и совместимых с ним компьютеров) или для операционной системы. Их количество велико, однако в своей программе вы редко используете их все сразу. Поэтому они разделены на связанные группы, называемые модулями. В этом случае можно использовать только те модули, которые необходимы в программе.
Программный модуль представляет собой набор констант, типов данных, переменных, процедур и функций. Каждый модуль аналогичен отдельной программе на Паскале, он может иметь основное тело, которое вызывается перед запуском вашей программы и осуществляет необходимую инициализацию. Короче говоря, модуль представляет собой библиотеку описаний, которую можно вставить в свою программу и которая позволит разбить программу на части, компилируемые отдельно.
Все описания внутри модуля связаны друг с другом. Например, модуль Crt содержит все описания, необходимые для подпрограмм работы с экраном на вашей персональном компьютера.
XII.6.Структура модуля
Модуль обеспечивает набор средств благодаря процедурам и функциям при поддержке констант, типов данных и переменных, однако действительная реализация этих средств скрыта в силу того, что модуль разделен на две секции: интерфейса и реализации. Если программа использует модуль, то все описания модуля становятся доступными этой программе, как если бы они были определены в ней самой.
Структура модуля аналогична структуре программы, однако есть несколько существенных различий. Например, рассмотрим модуль:
unit -<идентификатор>;
interface
uses <список модулей>; { Необязательный }
{ открытые описания }
implementation
{ закрытые описания }
{ процедуры и функции }
begin { код инициализации } end.
Заголовок модуля начинается зарезервированным словом unit, за которым следует имя модуля (идентификатор) точно так же, как и в случае имени программы. Следующим элементом в модуле является ключевое слово interface. Оно обозначает начало интерфейсной секции модуля - секции, видимой всем другим модулям или программам, в которых он используется.
Программный модуль может использовать другие модули, для этого они определяются в предложении uses. Предложение uses, если имеет место, то следует сразу после ключевого слова interface. Отметим, что здесь выполняется общее правило использования предложения uses; если модуль, имя которого показано в предложении uses, использует другие модули, то имена этих модулей также должны быть указаны в предложении uses, причем до того, как они будут использованы.
XII.6.1.Интерфейсная секция
Интерфейсный раздел - "общедоступная" часть в модуле начинается зарезервированным словом interface, следует сразу после заголовка модуля и заканчивается перед зарезервированным словом implementation. Интерфейс определяет, что является "видимым" для любой программы (или модуля), использующей данный модуль. Любая программа, использующая этот модуль, имеет доступ к этим "видимым" элементам.
В интерфейсе модуля можно определять константы, типы данных, переменные, процедуры и функции. Как и в программе, они могут быть расположены в любом порядке, и секции могут встречаться повторно (например, type ... var ... <процедуры> ... const ... type
Процедуры и функции, видимые для любой программы, использующей данный модуль, описываются в секции интерфейса, однако их действительные тела - реализации - находятся в секции реализации. Если процедура (или функция) является внешней, то в интерфейсе должно быть указано ключевое слово external, а в секции реализации не нужно повторно указывать описание процедуры. Если процедура (или функция) является директивой inline, то в секции интерфейса будет находиться машинный код (список целочисленных констант).
"Компиляция" (Compile) - клавиши Alt-F9
Этот элемент меню является командой. Выполняется компиляция последнего файла, загруженного в редактор. При этом выводится окно с информацией о компиляции; имя основного файла, имя компилируемого файла, количество откомпилированных строк, объем доступной памяти и успешно или нет выполнена компиляция программы. Если компиляция прошла успешно, нажмите любу» клавишу. При этом данное информационное окно исчезнет. В случае ошибки вы автоматически переходите в редактор на ошибочную строку.
"Создание" (Make) - клавиша F9
При выборе этого элемента меню вызывается последовательность Make Турбо-Паскаля. Если основному файлу присвоено имя, то компилируется этот файл. В противном случае компилируется последний файл, загруженный в редактор. Турбо-Паскаль проверяет все файлы, от которых зависит компилируемый файл. Если в исходный файл некоторого модуля были внесены изменения со времени создания файла с расширением .TPU (объектный код), то этот модуль компилируется заново. Если была изменена интерфейсная секция некоторого модуля, то заново транслируются все модули, зависящие от указанного модуля. Если модуль компонуется с объектным Файлом .OBJ (внешние подпрограммы) и этот объектный файл является более новым, чем файл с расширением .TPU данного модуля, то этот модуль транслируется заново. Если модуль содержит включаемый Файл (файл типа include) и этот файл является более новым, чем файл с расширением .TPU данного модуля, то этот модуль транслируется заново.
Если исходный код модуля (файл .TPU) найти не удается, то этот модуль не компилируется, а используется, в неизменном виде.
следующие описания:
procedure Iswap (var VI,V: integer);
function IMax(Vl,V2: integer): integer;
Секция реализации тогда будет иметь вид:
procedure ISwap; var
Temp:= integer; begin
Temp:= VI; VI:= V2; V2:= Temp end; { конец процедуры Swap }
function IMax(V1,V2: integer) : integer; begin
if VI > V2
then IMax:= VI
else IMax:= V2 end; { конец функции Мах }
Подпрограммы, локальные для секции реализации (то есть не описанные в секции реализации), должны иметь полный, несокращенный заголовок procedure/function.
XII.6.2.Секция инициализации
Обычно вся секция реализации модуля заключена между зарезервированными словами implementation и end. Однако, если перед end поместить зарезервированное слово begin, а между ними - операторы, то получившийся составной оператор, очень похожий на основное тело программы, становится секцией инициализации модуля.
Секция инициализации представляет собой место, где инициализируются структуры данных (переменных), которые использует программный модуль или которые он делает доступными программе, использующей данный модуль. Вы можете использовать эту секцию для открытия файлов, которые программа использует позже. Например, стандартный модуль Printer использует секцию инициализации для выполнения запросов на открытие (для вывода) текстового файла Lst, который затем можно использовать в операторах Write и Writeln в вашей программе.
Если программа использует более одного модуля, то секции инициализации всех модулей вызываются (в порядке, указанном в операторе uses в программе) перед тем, как выполнить основное тело программы.