Персональная страничка
| ||
Предыдущий раздел:
Следующий раздел:
Разработка больших программ невозможна без их структурирования. Первым шагом в этом направлении было использование процедур и функций, в которые можно помещать решения отдельных подзадач. При этом часть программы и необходимые для ее работы переменные выделяются в независимый (по крайней мере, к этому следует стремиться) от главной программы блок – подпрограмму. Следующим шагом в структурировании является объединение логически связанных подпрограмм, а также типов, переменных и констант в общую структуру – модуль.
Модуль – это отдельный файл, содержащий описания констант, типов, переменных, процедур и функций. Главная программа может использовать модуль, при этом описанные в модуле константы типы и переменные становятся глобальными для программы, а процедуры и функции доступными для вызова. Чтобы подключить модуль к программе используется ключевое слово uses (использует), после чего идет перечисление имен используемых программой модулей. Это подключение располагается в разделе описаний программы, традиционно в самом его начале. Например:
program P1; uses {Ключевое слово, начинающее подключение модулей} Modul1, Modul2; {Перечисление имен модулей} var <и т.д.>
Модуль создается в отдельном pas-файле и имеет следующую структуру:
Unit <Имя модуля>; interface <Интерфейсная часть> implementation <Реализация или исполняемая часть> begin <Инициирующая часть> end.
Имя модуля произвольное, но должно совпадать с именем pas-файла, где модуль хранится.
В интерфейсной части располагаются описания констант, типов и переменных, которые будут доступны главной программе после подключения модуля. Также здесь располагаются заголовки (только заголовки, без тел) процедур и функций, доступных главной программе. Полностью процедуры и функции прописываются в исполняемой части. Там же могут быть описаны константы, типы и переменные, которые будут глобальными для модуля, но не будут доступны в главной программе. Также в исполняемой части могут располагаться описания процедур и функций, заголовки которых не помещены в интерфейсную часть. Они доступны для вызова другими процедурами и функциями модуля, но не доступны в главной программе.
И интерфейсная и исполняемая часть могут содержать подключения других модулей.
В инициирующей части располагаются операторы, которые будут выполнены при подключении модуля к главной программе, то есть еще до того как начнут выполняться операторы главной программы. Например, в инициирующей части часто располагают присваивания начальных значений переменных. Инициирующая часть может отсутствовать.
Если вы работаете в среде Turbo Pascal, то после того как pas-файл модуля создан, его следует откомпилировать. Это делается нажатием клавиши F9. В результате будет создан файл с расширением tpu (Turbo Pascal Unit), который фактически, и будет подключаться к программе.
Переключаясь с написания модуля на написание основной программы, обязательно сохранитесь. Если этого не сделать к программе будет подключен последний сохраненный вариант модуля, без последних внесенных вами изменений.
Следующий раздел:
Предыдущий раздел:
Излазил весь интернет, но ни как не увидел как его запустить
Может я чего-то не понял… Прошу помочь мне.
program modul;
uses crt,RndDmg2;
var xyz:integer;
begin
xyz:=RndDmg2;
writeln(xyz);
end.
Как мне в этой программе запустить модул RndDmg2?
Модуль RndDmg имеет такое содержание:
Unit RndDmg2;
interface
uses crt;
var v3,i1,ud_r,ud_r1,atk,atk1,mn,mn1:integer;
ud1,ud2,ud3:string;
hp:=100;
hp1:=100;
name:=’kellso’;
name2:=’mellso’;
dm:=45;
dm1:=45;
dmg:integer;
kl,kl2:string;
implementation
begin
randomize;
dmg:=random(45);
hp1:=hp1-dmg;
end;
end.
Заранее благодарю =)
В модуле должны быть процедуры и функции. И именно их, а не сам модуль тебе надо запускать. То есть должно быть что-то вроде
Ну и сама программа
Написал небольшой модуль. Хотелось бы узнать, будут какие нибудь замечания, или я пока на верном пути)
unit Massive;
interface
const
n=25;
type
TMass = array [1..n] of integer;
procedure ZapMass(var a: TMass);
implementation
procedure ZapMass(var a: TMass);
var
i: integer;
begin
for i:=1 to n do
a[i]:=random(100);
end;
begin
end.
программа:
program test_modul_1;
uses
Massive;
var
x: TMass;
begin
ZapMass(x);
writeln(x);
end.