КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Стандартные модули
END. Implementation Interface END. Unit Разработка модулей Интерфейсная часть, Interface (описание глобальных имен типов, меток, констант, переменных, а также заголовков процедур, доступных основной программе). Исполняемая часть, Implementation (описание процедур: заголовок, разделы описания и выполнения, заголовки которых перечислены в интерфейсной части, а также локальных имен типов, меток, констант и переменных, используемых в инициирующей части). Инициирующая часть, Begin.. End. ( блок операторов, выполняемых при подключении модуля к основной программе). Фрагмент 1. Структура модуля имеет вид: Unit Name_M; { Name_M - имя модуля } {-----------------------------------------------------------------------------------------------------------------} Interface { Интерфейсная часть модуля} {------------------------------------------------------------ раздел описания глобальных имен} Type MM=array[1..10, 1..10] of real; {описание типа} Var Max_F, Min_F: real; {описание глобальных переменных} {------------------------------------------------------------------------------------------------------------------} Procedure Name_P(p1: real; p2: MM); {описание заголовков процедуры} Function Name_f(p3,p4:real):real; { и функции} {-----------------------------------------------------------------------------------------------------------------} Implementation {Исполняемая часть модуля} {--------------------------------------------------------------- раздел описания локальных имен} Const C = 'Подключен модуль Name_M'; { задание локальной константы} Procedure Name_P; {Полное описание процедуры} { Раздел описания процедуры} Begin { Раздел выполнения процедуры} End; Function Name_f: real; {Полное описание функции} { Раздел описания функции} Begin { Раздел выполнения функции} End; {----------------------------------------------------------------------------------------------------------------- } BEGIN { Инициирующая часть модуля} Writeln(C); {операторы модуля} Модуль записывается в файл с именем модуля, например, Name_M. pas. Затем файл компилируется, например, Name_M. tpu, и записывается в каталог, указанный в опции Options, Directories, EXE & TPU, иначе - в текущий каталог. При запуске программы, использующей модуль, файл с расширением ". tpu" ищется в каталоге, указанном в опции Options, Directories, EXE & TPU или Unit Directories, либо в текущем каталоге. Program Pr_1; Uses Name_M1, Name_M2;
Фрагмент 2. Пример разработки и подключения модуля работы с матрицами. Unit MATR_1; {--------------------------------------------------------------------------------------------------------------} {--------------------------------------------------------------------------------------------------------------} Type M = array[1..10, 1..10] of real; M1 = array[1..10] of real; Procedure MAT_1(a:M; var b:M; n: word); Procedure MAT_2(a:M; var b:M1; n: word); {--------------------------------------------------------------------------------------------------------------} {--------------------------------------------------------------------------------------------------------------} Procedure MAT_1; {создание матрицы "B", транспонированной к "A"} var i, j: word; begin for i:=1 to N do for j:=1 to N do b[i,j]:=a[j,i] end; {-------------------------------------------------------------------------------------------------------------} Procedure MAT_2; {расчет квадратов диагональных элементов} var i, j: word; begin for i:=1 to N do b[i]:=a[i,i]*a[i,i] end; {---------------------------------------------------------------------------------------------------------------} Пояснение работы: В основной программе PR_1 подключается модуль MATR_1 и используются процедуры MAT_1 и MAT_2. Program PR_1; Uses MATR_1; Type MM = M; MM1 = M1; Var a1,a2,a3: MM; b1,b2: MM1; i,j,n: word; Begin Writeln('введите размерность матрицы N='); Readln(n); Randomize; for i:=1 to n do for j:=1 to n do a1[i,j]:=random(20)+1; MAT_1(a1, a2, n); MAT_1(a2, a3, n); MAT_2(a1, b1, n); MAT_2(a2, b2, n) end. В результате двойного транспонирования исходной матрицы "a1" (из "a1" в "a2", из "a2" в "a3") получается матрица "a3" тождественная "a1". Матрицы "b1" и "b2" содержат квадраты диагональных элементов матриц "a1" и "a2". Типы массивов фактических параметров должны соответствовать типам массивов формальных параметров, описанных в модуле MATR_1. Можно использовать имена типов, заданные в интерфейсной части модуля или задавать новые имена типов.
Дата добавления: 2014-01-07; Просмотров: 273; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |